11 基於consul的服務註冊與發現

2021-10-04 08:00:49 字數 3358 閱讀 4890

<

!--springcloud提供的基於consul的服務發現--

>

org.springframework.cloud<

/groupid>

spring-cloud-starter-consul-discovery<

/artifactid>

<

/dependency>

<

!--actuator用於心跳檢查--

>

org.springframework.boot<

/groupid>

spring-boot-starter-actuator<

/artifactid>

<

/dependency>

其中 spring-cloud-starter-consul-discovery 是springcloud提供的對consul支援的相關依賴。

spring-boot-starter-actuator 適用於完成心跳檢測響應的相關依賴。

server

:port

:9001

#埠spring::

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伺服器的ip位址

discovery

:#是否需要註冊

register

:true

#註冊的例項id (唯一標誌)

instance-id-1

#服務的名稱

service-name

#服務的請求埠

port

: $#指定開啟ip位址註冊

prefer-ip-address

:true

#當前服務的請求ip

!--springcloud提供的基於consul的服務發現--

>

org.springframework.cloud<

/groupid>

spring-cloud-starter-consul-discovery<

/artifactid>

<

/dependency>

<

!--actuator用於心跳檢查--

>

org.springframework.boot<

/groupid>

spring-boot-starter-actuator<

/artifactid>

<

/dependency>

server

:port

:9002

#埠spring::

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-1

#服務的名稱

service-name

#服務的請求埠

port

: $#指定開啟ip位址註冊

prefer-ip-address

:true

#當前服務的請求ip

ip-address

: $

因為引入了spring-cloud-starter-consul-discovery依賴,此時springcloud已經對consul進行了進一步的封裝,向其中整合了ribbon的支援,所以可以使用@loadblanced註解

@entityscan

("cn.itcast.order.entity"

)public

class

public

static

void

main

(string[

] args)

}所以在controller中不需要寫死服務提供者的ip,可以通過服務提供者的服務名稱進行呼叫。

@restcontroller

("/order"

)public

class

ordercontroller

",method = requestmethod.get)

public product findbyid

(@pathvariable long id)

}

consul服務註冊

這是定義服務的根級引數。您可以指定引數來配置服務。範圍描述 預設必需的 id 指定服務 id 的字串值。如果未指定,name將使用該字段的值。每個節點的服務必須具有唯一的 id,因此如果預設值name會與其他服務衝突,您應該指定唯一的值。name引數值 可選的name 指定服務的名稱。如果id未指定...

Consul服務註冊中心 Consul工作原理

consul工作原理如下圖所示 當服務producer啟動時,會將自己的ip host等資訊通過傳送請求告知consul,consul接收到producer的註冊資訊後,每個10s 預設 會向producer傳送乙個健康檢查的請求,檢驗producer是否監控。當consumer請求producer...

服務註冊之Consul

consul是hashicorp公司推出的開源工具,consul由go語言開發,部署起來非常容易,只需要極少的可執行程式和配置檔案,具有綠色 輕量級的特點。consul是分布式的 高可用的 可橫向擴充套件的用於實現分布式系統的服務發現與配置。consul的應用場景包括服務發現 服務隔離 服務配置 這...