Nacos安裝、服務註冊和服務發現
一、Nacos安裝
1.下載
在Nacos的GitHub頁面,提供有下載連結,可以下載編譯好的Nacos服務端或者原始碼:
GitHub主頁:https://github.com/alibaba/nacos
GitHub的Release下載頁:https://github.com/alibaba/nacos/releases
windows版本使用nacos-server-1.4.1.zip
包即可。
2.目錄說明:
- bin:啟動指令碼
- conf:配置檔案
3.埠配置
Nacos的預設埠是8848,如果你電腦上的其它程序佔用了8848埠,請先嚐試關閉該程序。
如果無法關閉佔用8848埠的程序,也可以進入nacos的conf目錄,修改配置檔案中的埠
4.啟動
啟動非常簡單,進入bin目錄
然後執行命令即可:
-
windows命令:
startup.cmd -m standalone
執行後的效果如圖:
5.登入nacos
瀏覽器訪問:http://localhost:8848/nacos/index.html進入登入頁面
賬號密碼均為:nacos
二、服務註冊到nacos
Nacos是SpringCloudAlibaba的元件,而SpringCloudAlibaba也遵循SpringCloud中定義的服務註冊、服務發現規範。因此使用Nacos和使用Eureka對於微服務來說,並沒有太大區別。
主要差異在於:
- 依賴不同
- 服務地址不同
1.引入依賴
在父工程的pom檔案中的<dependencyManagement>
中引入SpringCloudAlibaba的依賴:
<dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-alibaba-dependencies</artifactId> <version>2.2.6.RELEASE</version> <type>pom</type> <scope>import</scope> </dependency>
然後在user-service和order-service中的pom檔案中引入nacos-discovery依賴:
<dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> </dependency>
2.配置nacos地址
在user-service和order-service的application.yml中新增nacos地址:
spring: cloud: nacos: server-addr: localhost:8848
3.重啟
重啟微服務後,登入nacos管理頁面,可以看到微服務資訊:
三、服務發現
在order-service的OrderApplication中,給RestTemplate這個Bean新增一個@LoadBalanced註解:
@Bean @LoadBalanced public RestTemplate restTemplate(){ return new RestTemplate(); }
修改order-service服務中的cn.itcast.order.service包下的OrderService類中的queryOrderById方法。修改訪問的url路徑,用服務名代替ip、埠:
String url="http://userservice/user/"+ order.getUserId(); User user = restTemplate.getForObject(url, User.class);