1. 依賴
1)提供健康檢查,度量等接口,比如/info,/health等
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
2)提供服務註冊和發現功能
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-consul-discovery</artifactId>
</dependency>
2. 建立bootstrap.yml配置文件(經測試,consul相關配置必須在bootstrap.yml中),內容如下
spring:
cloud:
consul:
host: 10.40.66.144
port: 80
discovery:
tags: v1
healthCheckPath: /${spring.application.name}/info
healthCheckInterval: 15s
instanceId: ${spring.application.name}:${vcap.application.instance_id:${spring.application.instance_id:${random.value}}}
#健康檢查info返回內容,默認空對象{}
info:
app:
name: ${spring.application.name}
port: ${server.port}
#spring.cloud.consul.discovery.enabled=false 關閉服務發現
#spring.cloud.consul.discovery.register=false 關閉服務註冊
#management.health.consul.enabled=false 關閉健康檢查
#${spring.application.name} 服務名稱
#${server.port} 服務端口
#instanceId: ${spring.application.name}:${vcap.application.instance_id:${spring.application.instance_id:${random.value}}}
application.yml
server:
port: 8080
sessionTimeout: 30
contextPath: /${spring.application.name}/ #服務訪問根路徑,即服務名稱,必須以/.../兩個斜槓開頭和結尾
spring:
application:
name: example #服務名稱
type: ethan-example
profiles:
active: prod
3. 本實例說明
服務啓動後即自動向consul地址:10.40.66.144:80註冊服務,服務名稱爲example,端口爲8080,實例名稱爲格式類似 example-13be030adf4a6bb498d967830bc7ee05,並通過http://service-ip:service-port/example/info健康檢查。