Dubbo整合Nacos
生活随笔
收集整理的這篇文章主要介紹了
Dubbo整合Nacos
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Dubbo項目將Nacos作為其注冊中心和配置中心
Nacos提供了四個主要功能
- 服務發現和服務運行狀況檢查(服務治理):Nacos使服務易于注冊自己并通過DNS或HTTP接口發現其他服務。Nacos還提供服務的實時運行狀況檢查,以防止向不正常的主機或服務實例發送請求。
- 動態配置管理:動態配置服務使您可以在所有環境中以集中和動態的方式管理所有服務的配置。Nacos消除了在更新配置時重新部署應用程序和服務的需求,這使配置更改更加有效和敏捷。
- 動態DNS服務:Nacos支持加權路由,使您可以更輕松地在數據中心內的生產環境中實施中間層負載平衡,靈活的路由策略,流控制和簡單的DNS解析服務。它可以幫助您輕松實現基于DNS的服務發現,并防止應用程序耦合到特定于供應商的服務發現API。
- 服務和元數據管理(分布式配置):Nacos提供了易于使用的服務儀表板,可幫助您管理服務元數據,配置,kubernetes
DNS,服務運行狀況和指標統計信息。
Nacos既可以作為服務治理中心(可以替代 Spring Cloud Eureka)也可以作為配置中心(可替代 Spring Cloud Config)。
Nacos作為一個單獨的服務進行部署,不需要用戶搭建項目作為服務治理節點。
Dubbo整合Nacos
服務提供者的相關配置
注入依賴
<!--dubbo依賴--> <dependency><groupId>com.alibaba</groupId><artifactId>dubbo</artifactId><version>2.6.6</version> </dependency><!-- Nacos Spring dependency --> <dependency><groupId>com.alibaba</groupId><artifactId>dubbo-registry-nacos</artifactId><version>0.0.2</version> </dependency><dependency><groupId>com.alibaba.nacos</groupId><artifactId>nacos-client</artifactId><version>0.6.1</version> </dependency><dependency><groupId>io.netty</groupId><artifactId>netty-all</artifactId> </dependency><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId><version>2.1.2.RELEASE</version> </dependency>dubbo-provider.xml:以xml形式配置dubbo
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:dubbo="http://dubbo.apache.org/schema/dubbo"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-4.3.xsdhttp://dubbo.apache.org/schema/dubbohttp://dubbo.apache.org/schema/dubbo/dubbo.xsd"><dubbo:application name="springcloud-alibaba-producer" /><dubbo:registry id="nacos_service" address="nacos://127.0.0.1:8848" timeout="15"/><!-- 用dubbo協議在20880端口暴露服務 --><dubbo:protocol name="dubbo" port="20880" threads="1000" /><!-- dubbo監控配置 --><dubbo:monitor protocol="registry" /><!-- dubbo管理平臺接口 --><bean id="UserService" class="com.luo.producer.service.impl.UserServiceImpl" /><dubbo:service interface="com.luo.api.service.IUserService" ref="UserService" cluster="failfast"registry="nacos_service" /></beans>調用接口
public interface IUserService {public String ceshi(String input); }服務的實現類
public class UserServiceImpl implements IUserService {@Overridepublic String ceshi(String input) {return "Hello World,"+input;} }服務調用者的相關配置
注入依賴
<!--dubbo依賴--> <dependency><groupId>com.alibaba</groupId><artifactId>dubbo</artifactId><version>2.6.6</version> </dependency><!-- Nacos Spring dependency --> <dependency><groupId>com.alibaba</groupId><artifactId>dubbo-registry-nacos</artifactId><version>0.0.2</version> </dependency><dependency><groupId>com.alibaba.nacos</groupId><artifactId>nacos-client</artifactId><version>0.6.1</version> </dependency><dependency><groupId>io.netty</groupId><artifactId>netty-all</artifactId> </dependency><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId><version>2.1.2.RELEASE</version> </dependency>bootstrap.properties 配置Nacos配置中心
#應用名 spring.application.name=springcloud-alibaba-consumer #配置文件的前綴 spring.cloud.nacos.config.prefix=springcloud-alibaba-consumer #當前生效的配置文件 spring.profiles.active=Test#配置中心路徑 spring.cloud.nacos.config.server-addr=127.0.0.1:8848 #配置文件后綴 spring.cloud.nacos.config.file-extension=properties服務降級的實現類
public class MockUserService implements IUserService {public MockUserService(){}@Overridepublic String ceshi(String input) {return "服務暫時不可用,請重試";} }Controller層
@RestController @RefreshScope public class DubboComsumerController {@AutowiredIUserService userService;@Value("${name:未知者}")private String name;@RequestMapping("/hello")public String hello(){return userService.ceshi(name);} }啟動項目,進行驗證
第一步:Nacos管理平臺,查看到服務的注冊信息
第二步:訪問localhost:8081/hello,進行驗證
第三步:配置Nacos分布式配置文件
第四步:再次訪問localhost:8081/hello,進行驗證
第五步:關閉服務提供者后,再次訪問:localhost:8081/hello,進行驗證
該項目源碼:github
總結
以上是生活随笔為你收集整理的Dubbo整合Nacos的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 大话设计模式笔记
- 下一篇: 初探ViewBinding