2023-03-11  阅读(0)
原文作者:柒's Blog 原文地址:https://blog.52itstyle.vip/archives/1304/

202303111617267691.png

前言

在之前的 Dubbo 服务开发中,我们一般使用 Zookeeper 作为注册中心,同时还需要部署 Dubbo 监控中心和管理后台。

Nacos 注册中心

Nacos 是阿里巴巴的开源的项目,全称 Naming Configuration Service ,专注于服务发现和配置管理领域。

Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。

Nacos 生态图

202303111617274832.png

如 Nacos 全景图所示,Nacos 无缝支持一些主流的开源生态,例如

Spring Cloud
Apache Dubbo and Dubbo Mesh TODO
Kubernetes and CNCF TODO。
使用 Nacos 简化服务发现、配置管理、服务治理及管理的解决方案,让微服务的发现、管理、共享、组合更加容易。

Nacos Spring Boot 快速开始

    <!-- Dubbo Nacos registry dependency -->
    <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>dubbo-registry-nacos</artifactId>
        <version>2.6.7</version>
    </dependency>
    <!-- Dubbo dependency -->
    <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>dubbo</artifactId>
        <version>2.6.5</version>
    </dependency>
    <!-- Alibaba Spring Context extension -->
    <dependency>
        <groupId>com.alibaba.spring</groupId>
        <artifactId>spring-context-support</artifactId>
        <version>1.0.2</version>
    </dependency>
    <!--Dubbo 依赖-->
    <dependency>
        <groupId>io.netty</groupId>
        <artifactId>netty-all</artifactId>
        <version>4.1.32.Final</version>
    </dependency>

配置文件:

    ## application
    dubbo.application.name = spring-boot-pay
    dubbo.registry.address = nacos://47.104.197.9:8848
    dubbo.protocol.name=dubbo
    dubbo.protocol.port=-1

启动类引入 Dubbo 注解:

    @EnableDubbo
    @SpringBootApplication
    public class Application {
    
        private static final Logger logger = LoggerFactory.getLogger(AliPayServiceImpl.class);
    
        public static void main(String[] args){
            SpringApplication.run(Application.class, args);
            logger.info("启动成功");
        }
    }

接口实现:

    //省略部分代码
    import com.alibaba.dubbo.config.annotation.Service;
    @Service(group = "itstyle-nacos", retries = 1, timeout = 10000)
    public class AliPayServiceImpl implements IAliPayService {
    
    }

打包接口:

    <!-- 打包接口 https://blog.52itstyle.vip -->
           <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-jar-plugin</artifactId>
                    <executions>
                        <execution>
                            <id>service</id>
                            <phase>package</phase>
                            <goals>
                                <goal>jar</goal>
                            </goals>
                            <configuration>
                                <classesDirectory>${project.build.directory}/classes</classesDirectory>
                                <finalName>pay-service</finalName>
                                <outputDirectory>${project.build.directory}</outputDirectory>
                                <includes>
                                    <include>com/itstyle/modules/alipay/service/*.*</include>
                                    <include>com/itstyle/modules/unionpay/service/*.*</include>
                                    <include>com/itstyle/modules/weixinpay/service/*.*</include>
                                    <include>com/itstyle/common/model/*.*</include>
                                </includes>
                            </configuration>
                        </execution>
                    </executions>
            </plugin>

服务引用:

    /**
     * 支付宝支付
     * 创建者 爪哇笔记 https://blog.52itstyle.vip
     * 创建时间    2019年7月20日
     */
    @Controller
    @RequestMapping(value = "alipay")
    public class AliPayController {
        @Reference
        private IAliPayService aliPayService;
        
    }

启动项目,登录到管理控制中心,如果发现有数据,说明注册成功。

202303111617291793.png

小结

一个 Nacos 就轻松搞定了,还捎带着配置管理中心,一举两得,何乐不为。

参考案例

https://gitee.com/52itstyle/spring-boot-pay/tree/spring-boot-nacos-pay


Java 面试宝典是大明哥全力打造的 Java 精品面试题,它是一份靠谱、强大、详细、经典的 Java 后端面试宝典。它不仅仅只是一道道面试题,而是一套完整的 Java 知识体系,一套你 Java 知识点的扫盲贴。

它的内容包括:

  • 大厂真题:Java 面试宝典里面的题目都是最近几年的高频的大厂面试真题。
  • 原创内容:Java 面试宝典内容全部都是大明哥原创,内容全面且通俗易懂,回答部分可以直接作为面试回答内容。
  • 持续更新:一次购买,永久有效。大明哥会持续更新 3+ 年,累计更新 1000+,宝典会不断迭代更新,保证最新、最全面。
  • 覆盖全面:本宝典累计更新 1000+,从 Java 入门到 Java 架构的高频面试题,实现 360° 全覆盖。
  • 不止面试:内容包含面试题解析、内容详解、知识扩展,它不仅仅只是一份面试题,更是一套完整的 Java 知识体系。
  • 宝典详情:https://www.yuque.com/chenssy/sike-java/xvlo920axlp7sf4k
  • 宝典总览:https://www.yuque.com/chenssy/sike-java/yogsehzntzgp4ly1
  • 宝典进展:https://www.yuque.com/chenssy/sike-java/en9ned7loo47z5aw

目前 Java 面试宝典累计更新 400+ 道,总字数 42w+。大明哥还在持续更新中,下图是大明哥在 2024-12 月份的更新情况:

想了解详情的小伙伴,扫描下面二维码加大明哥微信【daming091】咨询

同时,大明哥也整理一套目前市面最常见的热点面试题。微信搜[大明哥聊 Java]或扫描下方二维码关注大明哥的原创公众号[大明哥聊 Java] ,回复【面试题】 即可免费领取。

阅读全文