一、服務的注冊中心
自己設計一個服務的注冊中心

(1)注冊:服務啟動的時候將服務信息注冊到注冊中心;(insert)
(2)心跳:服務內部的定時任務 Timer1 定時發送心跳給注冊中心,更新 last_heatTime 字段;(update)
(3)服務間調用:因為 Timer2 定時從注冊中心獲取其他服務的信息並緩存到服務內部,所以服務1調用服務2的時候直接從服務1內存緩存中得到服務2的ip及端口號。(select)
(4)清理無心跳的服務:Timer3 定時任務將長時間沒有收到心跳的實例狀態修改為 down。(update)
(5)服務注銷:服務在停止的時候注銷實例信息。(delete)
二、nacos的安裝
1、nacos的下載
wget https://github.com/alibaba/nacos/releases/download/1.1.4/nacos-server-1.1.4.tar.gz
2、解壓nacos的包: tar -zxvf nacos-server-1.1.4.tar.gz

3、啟動nacos
cd nacos/bin
sh startup.sh -m standalone

4、檢查nacos是否啟動起來: lsof -i:8848

5、在瀏覽器訪問 nacos 的地址:http://192.168.1.1:8848/nacos
用戶名和密碼: nacos/nacos

注意:
(1)虛擬機要把防火牆關閉或者將對應的端口打開;
(2)瀏覽器使用 360的極速模式,兼容模式會有問題(登錄頁面不顯示)。(坑~~~)
三、服務注冊到nacos
nacos的官方文檔:https://nacos.io/zh-cn/docs/quick-start.html
1、父工程的maven坐標
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.3.RELEASE</version>
<relativePath/>
</parent>
<dependencyManagement>
<dependencies>
<!--引入springcloud的版本-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Greenwich.SR3</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<!-- 引入spring cloud alibaba -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>2.1.1.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
2、服務的maven坐標引入
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- nacos client -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-nacos-discovery</artifactId>
</dependency>
</dependencies>
3、啟動類增加 @EnableDiscoveryClient 注解
@SpringBootApplication
@EnableDiscoveryClient
public class OrderApplication {
public static void main(String[] args) {
SpringApplication.run(OrderApplication.class, args);
}
}
4、配置文件
spring: cloud: nacos: discovery: server-addr: 192.168.172.20:8848 application: name: order-center server: port:8001
5、啟動服務

