
前言
在之前的 Dubbo 服務開發中,我們一般使用 Zookeeper 作為注冊中心,同時還需要部署 Dubbo 監控中心和管理背景。
Nacos 注冊中心
Nacos 是阿裡巴巴的開源的項目,全稱 Naming Configuration Service ,專注于服務發現和配置管理領域。
Nacos 緻力于幫助您發現、配置和管理微服務。Nacos 提供了一組簡單易用的特性集,幫助您快速實作動态服務發現、服務配置、服務中繼資料及流量管理。
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;
}
啟動項目,登入到管理控制中心,如果發現有資料,說明注冊成功。
小結
一個 Nacos 就輕松搞定了,還捎帶着配置管理中心,一舉兩得,何樂不為。