天天看點

SpringBoot開發案例之Nacos注冊中心管理

SpringBoot開發案例之Nacos注冊中心管理

前言

在之前的 Dubbo 服務開發中,我們一般使用 Zookeeper 作為注冊中心,同時還需要部署 Dubbo 監控中心和管理背景。

Nacos 注冊中心

Nacos 是阿裡巴巴的開源的項目,全稱 Naming Configuration Service ,專注于服務發現和配置管理領域。

Nacos 緻力于幫助您發現、配置和管理微服務。Nacos 提供了一組簡單易用的特性集,幫助您快速實作動态服務發現、服務配置、服務中繼資料及流量管理。

Nacos 生态圖

SpringBoot開發案例之Nacos注冊中心管理

如 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;
    
}           

啟動項目,登入到管理控制中心,如果發現有資料,說明注冊成功。

SpringBoot開發案例之Nacos注冊中心管理

小結

一個 Nacos 就輕松搞定了,還捎帶着配置管理中心,一舉兩得,何樂不為。

參考案例

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