SpringBoot 服務註冊 (Consul)

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健康檢查。

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