摘要:配置應(yīng)用名稱,在注冊(cè)中心中顯示的服務(wù)注冊(cè)名稱。配置為為喜歡,即連接注冊(cè)中心使用地址形式,也可以使用,但生產(chǎn)環(huán)境不推薦。配置注冊(cè)中心清理無(wú)效節(jié)點(diǎn)的時(shí)間間隔,默認(rèn)毫秒,即秒。
Spring Cloud的注冊(cè)中心可以由Eureka、Consul、Zookeeper、ETCD等來(lái)實(shí)現(xiàn),這里推薦使用Spring Cloud Eureka來(lái)實(shí)現(xiàn)注冊(cè)中心,它基于Netfilix的Eureka做了二次封裝,完成分布式服務(wù)中服務(wù)治理的功能,微服務(wù)系統(tǒng)中的服務(wù)注冊(cè)與發(fā)現(xiàn)都通過(guò)這個(gè)注冊(cè)中心來(lái)進(jìn)行管理。
引入Eureka Server依賴之前的文章基礎(chǔ)上加入Spring Cloud的依賴,現(xiàn)在再加入注冊(cè)中心Eureka Server的依賴。
添加啟動(dòng)類(lèi),開(kāi)啟Eureka Server功能org.springframework.cloud spring-cloud-starter-eureka-server
在包根目錄下加入啟動(dòng)類(lèi):
@EnableEurekaServer @SpringBootApplication public class RegisterApplication { public static void main(String[] args) { new SpringApplicationBuilder(RegisterApplication.class).bannerMode(Banner.Mode.LOG) .run(args); } }
@EnableEurekaServer注解即開(kāi)啟注冊(cè)中心服務(wù)器的功能。
添加Eureka配置在application.yml中加入如下配置:
spring: application: name: register-center profiles: active: register-center1 eureka: instance: prefer-ip-address: true instance-id: ${spring.cloud.client.ipAddress}:${server.port} lease-expiration-duration-in-seconds: ${lease-expiration-duration-in-seconds} lease-renewal-interval-in-seconds: ${lease-renewal-interval-in-seconds} server: enable-self-preservation: ${enable-self-preservation} eviction-interval-timer-in-ms: ${eviction-interval-timer-in-ms} client: register-with-eureka: true fetch-registry: true serviceUrl: defaultZone: ${register-center.urls} --- spring: profiles: register-center1 server: port: ${register-center1.server.port} --- spring: profiles: register-center2 server: port: ${register-center2.server.port}
這里做了兩臺(tái)注冊(cè)中心的高可用配置register-center1,register-center2,也可以做多臺(tái),既然是高可用,每個(gè)注冊(cè)中心都向別的注冊(cè)中心注冊(cè)自己。
Maven filter配置${}里面的配置由maven resource filter來(lái)打包進(jìn)行控制,不同的環(huán)境使用不同的配置文件。
如filter-dev.properties的配置參考如下:
#url register-center1.server.ip=192.168.1.22 register-center2.server.ip=192.168.1.23 register-center.urls=http://${register-center1.server.ip}:${register-center1.server.port}/eureka/,http://${register-center2.server.ip}:${register-center2.server.port}/eureka/ #port register-center1.server.port=7001 register-center2.server.port=7002 #config enable-self-preservation=false eviction-interval-timer-in-ms=5000 lease-expiration-duration-in-seconds=20 lease-renewal-interval-in-seconds=6Spring Cloud配置詳解
Spring Boot的配置參考Spring Boot系列文章,這里只對(duì)Spring Cloud用到的配置解釋。
spring.application.name:配置應(yīng)用名稱,在注冊(cè)中心中顯示的服務(wù)注冊(cè)名稱。
spring.cloud.client.ipAddress:獲取客戶端的IP地址。
eureka.instance.prefer-ip-address:配置為true為喜歡IP,即連接注冊(cè)中心使用IP地址形式,也可以使用HOSTNAME,但生產(chǎn)環(huán)境不推薦。
eureka.instance.instance-id:配置在注冊(cè)中心注冊(cè)的唯一實(shí)例ID。
eureka.instance.lease-expiration-duration-in-seconds:指示eureka服務(wù)器在接收到最后一個(gè)心跳之后等待的時(shí)間(秒),然后才能從此視圖中刪除此實(shí)例,并禁止此實(shí)例的流量。將此值設(shè)置得太長(zhǎng)可能意味著流量可以路由到實(shí)例,即使實(shí)例不存在。設(shè)置此值太小可能意味著,由于臨時(shí)網(wǎng)絡(luò)故障,實(shí)例可能會(huì)被取消流量。此值將設(shè)置為至少高于lease-renewal-interval-in-seconds中指定的值。
eureka.instance.lease-renewal-interval-in-seconds:指示eureka客戶端需要向eureka服務(wù)器發(fā)送心跳以指示它仍然存在的頻率(以秒為單位)。如果在lease-expiration-duration-in-seconds中指定的時(shí)間段內(nèi)未收到心跳線,則eureka服務(wù)器將從其視圖中刪除該實(shí)例,因此不允許此實(shí)例的流量。請(qǐng)注意,如果該實(shí)例實(shí)現(xiàn)HealthCheckCallback,然后決定使其本身不可用,則該實(shí)例仍然可能無(wú)法訪問(wèn)流量。
eureka.server.enable-self-preservation:配置注冊(cè)中心是否開(kāi)啟服務(wù)的自我保護(hù)功能。
eureka.server.eviction-interval-timer-in-ms:配置注冊(cè)中心清理無(wú)效節(jié)點(diǎn)的時(shí)間間隔,默認(rèn)60000毫秒,即60秒。
eureka.client.register-with-eureka:配置為true指示此實(shí)例將其信息注冊(cè)到eureka服務(wù)器以供其他人發(fā)現(xiàn)。在某些情況下,您不希望發(fā)現(xiàn)實(shí)例,而您只想發(fā)現(xiàn)其他實(shí)例配置為false。
eureka.client.fetch-registry:指示該客戶端是否應(yīng)從eureka服務(wù)器獲取eureka注冊(cè)表信息。。
eureka.client.serviceUrl.defaultZone:Eureka服務(wù)器地址。
啟動(dòng)注冊(cè)中心這樣一個(gè)兩個(gè)注冊(cè)心的Eureka Server就搭好了,啟動(dòng)的時(shí)候使用不同的Profile來(lái)指定不同的端口。
spring-boot:run -Drun.profiles=register-center1 -P dev spring-boot:run -Drun.profiles=register-center2 -P dev
推薦:Spring Boot & Cloud 最強(qiáng)技術(shù)教程
掃描關(guān)注我們的微信公眾號(hào),干貨每天更新。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/71302.html
摘要:本文通過(guò)連接倉(cāng)庫(kù)來(lái)實(shí)現(xiàn)配置中心,除了還可以使用或者系統(tǒng)本地目錄都行。配置中心做到高可用本身也需要向注冊(cè)中心注冊(cè)自己的實(shí)例,所以需求引用依賴。啟動(dòng)配置中心分別啟動(dòng)以下配置中心,使用不同的指定端口。 本文通過(guò)config server連接git倉(cāng)庫(kù)來(lái)實(shí)現(xiàn)配置中心,除了git還可以使用svn或者系統(tǒng)本地目錄都行。 引入依賴 org.springframework....
在微服務(wù)架構(gòu)中,注冊(cè)中心是一個(gè)必不可少的組件 前面我們搭建的注冊(cè)中心只適合本地開(kāi)發(fā)使用,在生產(chǎn)環(huán)境必須搭建一個(gè)集群來(lái)保證高可用 Eureka的集群搭建很簡(jiǎn)單,每一臺(tái)Eureka都需要在配置中指定另外N個(gè)Eureka的地址就可以 下面我們以2個(gè)節(jié)點(diǎn)來(lái)說(shuō)明 我們有master和slaveone 2臺(tái)機(jī)器,需要做的就是: master注冊(cè)到slaveone上面 slaveone注冊(cè)到master上面即...
摘要:是一個(gè)相對(duì)比較新的微服務(wù)框架,年才推出的版本雖然時(shí)間最短但是相比等框架提供的全套的分布式系統(tǒng)解決方案。提供線程池不同的服務(wù)走不同的線程池,實(shí)現(xiàn)了不同服務(wù)調(diào)用的隔離,避免了服務(wù)器雪崩的問(wèn)題。通過(guò)互相注冊(cè)的方式來(lái)進(jìn)行消息同步和保證高可用。 Spring Cloud 是一個(gè)相對(duì)比較新的微服務(wù)框架,...
摘要:接下來(lái)繼續(xù)介紹三種架構(gòu)模式,分別是查詢分離模式微服務(wù)模式多級(jí)緩存模式。分布式應(yīng)用程序可以基于實(shí)現(xiàn)諸如數(shù)據(jù)發(fā)布訂閱負(fù)載均衡命名服務(wù)分布式協(xié)調(diào)通知集群管理選舉分布式鎖和分布式隊(duì)列等功能。 SpringCloud 分布式配置 SpringCloud 分布式配置 史上最簡(jiǎn)單的 SpringCloud 教程 | 第九篇: 服務(wù)鏈路追蹤 (Spring Cloud Sleuth) 史上最簡(jiǎn)單的 S...
摘要:今天整理了一下近大半年以來(lái)的一些文章,和我的預(yù)期一樣,很多文章我都忘記自己曾經(jīng)寫(xiě)過(guò)了,這個(gè)記錄的過(guò)程讓我也有了新的理解。希望大家,收藏,點(diǎn)贊,加轉(zhuǎn)發(fā)。 今天整理了一下近大半年以來(lái)的一些文章,和我的預(yù)期一樣,很多文章我都忘記自己曾經(jīng)寫(xiě)過(guò)了,這個(gè)記錄的過(guò)程讓我也有了新的理解。希望大家,收藏,點(diǎn)贊,加轉(zhuǎn)發(fā)。 面試必備 面試必備:深入Spring MVC DispatchServlet 源碼...
閱讀 2497·2021-10-14 09:43
閱讀 2544·2021-09-09 09:34
閱讀 1666·2019-08-30 12:57
閱讀 1267·2019-08-29 14:16
閱讀 790·2019-08-26 12:13
閱讀 3259·2019-08-26 11:45
閱讀 2357·2019-08-23 16:18
閱讀 2734·2019-08-23 15:27