SpringCloudAlibaba(四):使用Nacos作爲註冊中心


前一篇已經寫到了利用Nacos作爲配置中心來構建一個項目,畢竟需求有很大一部分的比重就是配置中心。所以就先利用Nacos構建了基於配置中心的項目。
Nacos作爲註冊中心是更加常用的。下面創建項目註冊到Nacos中。

服務提供者

  1. 創建一個項目作爲服務的提供者 「nacos-discovery-http-provider」
  2. maven引入相關依賴
<dependencies>
    <dependency>
        <groupId>com.alibaba.cloud</groupId>
        <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-actuator</artifactId>
    </dependency>
</dependencies>
  1. 創建相關服務類
    「NacosHttpServerApplication.java」
@SpringBootApplication
@EnableDiscoveryClient
public class NacosHttpServerApplication {
    public static void main(String[] args) {
        SpringApplication.run(NacosHttpServerApplication.class, args);
    }
}
**UserController.java**
@RestController
public class UserController {
    //提供相關服務
    @RequestMapping(value = "selectOne",method = RequestMethod.GET)
    public String selectOne(@RequestParam String id){
        return "Hello:"+id;
    }
}
*@EnableDiscoveryClient*表示開啓SpringCloud服務註冊註冊發現功能。主要是由**pom.xml**中引入的 *spring-cloud-starter-alibaba-nacos-discovery* 模塊實現.
  1. 配置文件
server.port=8081
# 註冊中心
spring.cloud.nacos.discovery.server-addr=localhost:8848
# 配置中心展現的服務名稱
spring.application.name=nacos-discovery-http-provider
  1. 啓動應用程序&查看Nacos控制檯 啓動應用程序,當控制檯輸出以下內容時表示服務註冊&啓動成功
2020-05-19 21:15:22.471  INFO 4568 --- [           main] c.a.c.n.registry.NacosServiceRegistry    : nacos registry, DEFAULT_GROUP nacos-discovery-http-provider 192.168.1.16:8081 register finished
登陸Nacos控制檯服務列表即可看到如下內容。、


服務消費者

  1. 創建服務消費項目 「NacosHttpConsumerApplication」
  2. 編輯pom.xml文件,內容與provider的pom文件內容一致
  3. 創建相關類 「NacosHttpConsumerApplication.java」
@SpringBootApplication
@EnableDiscoveryClient
@EnableFeignClients("top.anydata.products.web.example.nacos_discovery_http_consumer.service")
public class NacosHttpConsumerApplication {
    public static void main(String[] args) {
        SpringApplication.run(NacosHttpConsumerApplication.class,args);
    }
}
**IServerUserServiceFeign.class**
@FeignClient(value = "nacos-discovery-http-provider")
public interface IServerUserServiceFeign {

    @RequestMapping(value = "selectOne",method = RequestMethod.GET)
    String selectOne(@RequestParam("id")String id);

}
**ClientUserController.java**
@RestController
public class ClientUserController {
    @Autowired
    IServerUserServiceFeign serverUserServiceFeign;

    @RequestMapping(value = "selectOne",method = RequestMethod.GET)
    public String selectOne(String id){

        return serverUserServiceFeign.selectOne(id);
    }

}
  1. 配置文件配置服務名稱與Nacos相關,實現發現Nacos中的服務
spring.cloud.nacos.discovery.server-addr=localhost:8848
# 配置中心展現的服務名稱
spring.application.name=nacos-discovery-http-consumer
# 默認選擇的配置環境,當前把環境劃分爲4套, dev[開發環境],test[測試環境],pre[預發環境],prod[生產環境]
spring.profiles.active=dev
management.endpoints.web.exposure.include='*'
  1. 啓動服務&測試調用
    啓動consumer服務,調用rest相關接口進行測試。

「自此即實現了使用Nacos作爲註冊中心來進行服務的管理」

「本篇源碼示例:」

https://github.com/CainGao/SpringCloudAlibabaExample

本文分享自微信公衆號 - 指尖數蟲(zhijianshuchong)。
如有侵權,請聯繫 [email protected] 刪除。
本文參與“OSC源創計劃”,歡迎正在閱讀的你也加入,一起分享。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章