一、下載
官網:https://www.consul.io/downloads.html。
二、開啓consul
我們可以下載windows版本的,然後呢,直接命令行啓動就可以了
如果下面這樣 就是啓動成功
我們可以輸入http://localhost:8500/ui/dc1/services,查看頁面
consul給我們提供了一些api。比如:
(1)註冊服務:通過postman發送put請求到localhost:8500/v1/catalog/register地址可以完成服務
{
"Datacenter": "dc1",
"Node": "node01",
"Address": "192.168.74.102",
"Service": {
"ID":"mysql-01",
"Service": "mysql",
"tags": ["master","v1"],
"Address": "192.168.74.102",
"Port": 3306
}
}
但是由於是api註冊的,進行心跳健康檢查的時候,發現沒有。
(2)服務查詢:通過postman發送get請求到 localhost:8500/v1/catalog/services查看所有的服務列表
通過postman發送get請求到 localhost:8500/v1/catalog/service/服務名 查看具體的服務詳情
(3)服務刪除:通過postman發送put請求到localhost:8500/v1/catalog/deregister刪除服務
三、微服務註冊到consul
跟之前的基礎項目是一樣的
添加product_service依賴
<!--springcloud 提供的對基於consul的服務發現-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-consul-discovery</artifactId>
</dependency>
<!--actuator的健康檢查-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
修改product_service配置
server:
port: 9001 #端口
spring:
application:
name: service-product #服務名稱
datasource:
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://localhost:3306/shop?useUnicode=true&characterEncoding=utf8
username: root
password: 111111
jpa:
database: MySQL
show-sql: true
open-in-view: true
###開始配置consul的服務註冊
cloud:
consul:
host: 127.0.0.1 #consul服務器的主機地址
port: 8500 #consul服務器的端口有
discovery:
#是否需要註冊
register: true
#註冊的實例ID (唯一標誌)
instance-id: ${spring.application.name}-1
#服務的名稱
service-name: ${spring.application.name}
#服務的請求端口
port: ${server.port}
#指定開啓ip地址註冊
prefer-ip-address: true
#當前服務的請求ip
ip-address: ${spring.cloud.client.ip-address}
直接啓動項目
四、消費者調用提供者
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.32</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<!--springcloud 提供的對基於consul的服務發現-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-consul-discovery</artifactId>
</dependency>
<!--actuator的健康檢查-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
</dependencies>
server:
port: 9002 #端口
spring:
application:
name: service-order #服務名稱
datasource:
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://localhost:3306/shop?useUnicode=true&characterEncoding=utf8
username: root
password: 111111
jpa:
database: MySQL
show-sql: true
open-in-view: true
###開始配置consul的服務註冊
cloud:
consul:
host: 127.0.0.1 #consul服務器的主機地址
port: 8500 #consul服務器的ip地址
discovery:
#是否需要註冊
register: true
#註冊的實例ID (唯一標誌)
instance-id: ${spring.application.name}-1
#服務的名稱
service-name: ${spring.application.name}
#服務的請求端口
port: ${server.port}
#指定開啓ip地址註冊
prefer-ip-address: true
#當前服務的請求ip
ip-address: ${spring.cloud.client.ip-address}
啓動項目:
成功!!!
源碼:[email protected]:Zesystem/springclouddemoconsul.git