电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

Spring Cloud引入Eureka組件,完善服務治理

瀏覽:122日期:2023-07-23 15:59:38
簡介

Netflix Eureka 是一款由 Netflix 開源的基于 REST 服務的注冊中心,用于提供服務發(fā)現(xiàn)功能。Spring Cloud Eureka 是 Spring Cloud Netflix 微服務套件的一部分,基于 Netflix Eureka 進行了二次封裝,主要負責完成微服務架構中的服務治理功能。

Spring Cloud Eureka 是一個基于 REST 的服務,并提供了基于 Java 的客戶端組件,能夠非常方便的將服務注冊到 Spring Cloud Eureka 中進行統(tǒng)一管理。

部署 Eureka Server

1.創(chuàng)建一個名為 eureka-server 的 Spring Cloud 的項目(略)

2.引入 eureka-server 依賴(maven)

<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId></dependency>

3.開啟 EurekaServer在啟動類上添加 @EnableEurekaServer注解,開啟 EurekaServer 的自動裝配功能。

4.修改服務端口為8761

5.修改 register-with-eureka 配置添加一個eureka.client.register-with-eureka=false的配置,作為EurekaServer可以不將自己的實例注冊到 Eureka Server 中,如果是集群部署設置為true(不配置默認值也是true)。

6.修改 fetch-registry 配置添加一個 eureka.client.fetch-registry=false 的配置,表示不從 Eureka Server 中獲取 Eureka 的注冊表信息,如果是集群部署設置為true(不配置默認值也是true)。

7.添加defaultZone配置添加一條配置eureka.client.service-url.defaultZone=http://localhost:8761/eureka/(如果不加這個的話又自定義了端口,可能會報錯Connect to localhost:8761 timed out)

8.啟動 Eureka Server,訪問 http://localhost:8761/,如果順利的話可以看到如下成功頁面

Spring Cloud引入Eureka組件,完善服務治理

至此,一個簡單的Eureka注冊中心就完成了,后面實戰(zhàn)中的 Eureka Client 都會注冊到這個注冊中心。上面的demo只是一個單機部署,接下里我們看看我們要部署多個Eureka節(jié)點時怎么做。

Eureka Server 集群部署

集群部署一般有兩種情況,一是偽集群部署,二是真正的集群部署。

集群部署,我們可以在多臺物理機上部署,這樣多個實例可以用同一個端口,不會出現(xiàn)偽集群端口沖突的問題,更推薦這種方式,性能更高,穩(wěn)定性也更好。

偽集群部署一般說的是在同一臺物理機器上部署多個節(jié)點,這時候端口就必須不一樣,否則啟動的時候會出現(xiàn)端口沖突;

偽集群部署示例:

假設要部署3個節(jié)點:master/slave1/slave2

1.在application.yml配置定義三個節(jié)點的端口:

port: master: 8761 slave1: 8762 slave2: 8763

2.我們可以分別創(chuàng)建三個配置文件application-master.yml、application-slave1.yml、application-slave2.yml,三個配置文件除了有沖突的地方端口不一樣,其他配置完全一樣

# application-master.ymlserver: port: ${port.slave1} # 服務端口# application-master.ymlserver: port: ${port.slave1} # 服務端口# application-slave2slave2.ymlserver: port: ${port.slave2} # 服務端口# 以下配置三個配置文件都一樣eureka: client: register-with-eureka: true #不將自己的實例注冊到 Eureka Server fetch-registry: true #不從 Eureka Server 中獲取 Eureka 的注冊表信息 service-url: defaultZone: http://127.0.0.1:${port.master}/eureka/,http://127.0.0.1:${port.slave1}/eureka/,http://127.0.0.1:${port.slave2}/eureka/ instance: hostname: eureka-server server: enable-self-preservation: true # 開啟自我保護機制,默認也是開啟的

3.IDEA 分別以三個不同的profiles啟動

Spring Cloud引入Eureka組件,完善服務治理

4.訪問 http://localhost:8761/ 或者 http://localhost:8762/ 或者 http://localhost:8761/,出現(xiàn)以下類似頁面則代表成功

Spring Cloud引入Eureka組件,完善服務治理

觀察上面的頁面,發(fā)現(xiàn) Eureka Server 節(jié)點均出現(xiàn)在 unavailable-replicas 下,說明集群搭建還是失敗了,那這個問題怎么解決呢?

1.在host添加以下配置

127.0.0.1 eureka-server-master127.0.0.1 eureka-server-slave1127.0.0.1 eureka-server-slave2

2.修改三個配置文件的defaultZone信息

eureka: client: service-url: defaultZone: http://eureka-server-master:${port.master}/eureka/,http://eureka-server-slave1:${port.slave1}/eureka/,http://eureka-server-slave2:${port.slave2}/eureka/

3.配置eureka.instance.hostname信息(尤其是在同一臺物理機上配置三個節(jié)點時,需要修改為不同的host)

eureka:instance: hostname: eureka-server-mastereureka:instance: hostname: eureka-server-slave1**eureka:instance: hostname: eureka-server-slave2

4.重新啟動,訪問http://localhost:8761/ ,其他兩個節(jié)點君出現(xiàn)在 available-replicas 選項

Spring Cloud引入Eureka組件,完善服務治理

注意:如果執(zhí)行完上面還是出現(xiàn)在,請檢查是否配置了 prefer-ip-address = true,true #以IP地址注冊到服務中心,相互注冊使用IP地址,如果是在一臺物理機上,IP都是一個,所以建議設置成false,或者不配置再試試。

部署 Eureka Client

1.創(chuàng)建一個名為eureka-client 的SprintBoot的項目(略)

2.引入eureka-client依賴(maven)

<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId></dependency>

3.引入spring-boot-starter-web依賴,如果沒有加上spring-boot-starter-web,服務無法正常啟動

<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId></dependency>

4.開啟 EurekaClient在啟動類上加入注解@EnableEurekaClient,用于啟用Eureka發(fā)現(xiàn)配置

5.配置端口為8081

server.port = 8081port.master = 8761port.slave1 = 8762port.slave2 = 8763

6.配置注冊中心地址

添加配置 eureka.client.serviceUrl.defaultZone=http://eureka-server-master:${port.master}/eureka/,http://eureka-server-slave1:${port.slave1}/eureka/,http://eureka-server-slave2:${port.slave2}/eureka/

7.啟動服務,刷新 http://localhost:8761/ 頁面,如果看到了EUREKA-CLIENT應用則表示注冊成功

Spring Cloud引入Eureka組件,完善服務治理

Eureka自我保護機制

自我保護機制是為了避免因網(wǎng)絡分區(qū)故障而導致服務不可用的問題。具體現(xiàn)象為當網(wǎng)絡故障后,所有的服務與 Eureka Server 之間無法進行正常通信,一定時間后,Eureka Server 沒有收到續(xù)約的信息,將會移除沒有續(xù)約的實例。這個時候正常的服務也會被移除掉,所以需要引入自我保護機制來解決這種問題。

當服務提供者出現(xiàn)網(wǎng)絡故障,無法與 Eureka Server 進行續(xù)約,Eureka Server 會將該實例移除,此時服務消費者從 Eureka Server 拉取不到對應的信息,實際上服務提供者處于可用的狀態(tài),問題就是這樣產生的。

開啟自我保護機制

eureka.server.enable-self-preservation=true # 開啟自我保護機制,默認也是開啟的

當服務提供者出現(xiàn)網(wǎng)絡故障,無法與 Eureka Server 進行續(xù)約時,雖然 Eureka Server 開啟了自我保護模式,但沒有將該實例移除,服務消費者還是可以正常拉取服務提供者的信息,正常發(fā)起調用。

但是自我保護機制也有不好的地方,如果服務提供者真的下線了,由于 Eureka Server 自我保護還處于打開狀態(tài),不會移除任務信息,當服務消費者對服務提供者 B 進行調用時,就會出錯。

自我保護模式有利也有弊,但我們建議在生產環(huán)境中還是開啟該功能,默認配置也是開啟的。

完整代碼實例:

Eureka Server 代碼實例 Eureka Client 代碼示例 總結 使用@EnableEurekaServer 注解實現(xiàn)注冊中心 使用@EnableEurekaClient 注冊到注冊中心 Eureka Server 集群部署的時候需要保證register-with-eureka和 fetch-registry 為true,單機部署可以為false 生產環(huán)境建議開啟自我保護機制

以上就是Spring Cloud引入Eureka組件,完善服務治理的詳細內容,更多關于Spring Cloud引入Eureka組件的資料請關注好吧啦網(wǎng)其它相關文章!

標簽: Spring
主站蜘蛛池模板: 单电机制砂机,BHS制砂机,制沙机设备,制砂机价格-正升制砂机厂家 单级/双级旋片式真空泵厂家,2xz旋片真空泵-浙江台州求精真空泵有限公司 | PE一体化污水处理设备_地埋式生活污水净化槽定制厂家-岩康塑业 | 水冷散热器_水冷电子散热器_大功率散热器_水冷板散热器厂家-河源市恒光辉散热器有限公司 | 优秀的临床医学知识库,临床知识库,医疗知识库,满足电子病历四级要求,免费试用 | 电加热导热油炉-空气加热器-导热油加热器-翅片电加热管-科安达机械 | 压砖机、液压制砖机、静压砖机、环保砖机生产厂家—杜甫机械 | 不锈钢水箱生产厂家_消防水箱生产厂家-河南联固供水设备有限公司 | 凝胶成像系统(wb成像系统)百科-上海嘉鹏 | 10吨无线拉力计-2吨拉力计价格-上海佳宜电子科技有限公司 | 螺旋叶片_螺旋叶片成型机_绞龙叶片_莱州源泽机械制造有限公司 | 沈阳激光机-沈阳喷码机-沈阳光纤激光打标机-沈阳co2激光打标机 | 生物风-销售载体,基因,质粒,ATCC细胞,ATCC菌株等,欢迎购买-百风生物 | SMC-SMC电磁阀-日本SMC气缸-SMC气动元件展示网| 美国PARKER齿轮泵,美国PARKER柱塞泵,美国PARKER叶片泵,美国PARKER电磁阀,美国PARKER比例阀-上海维特锐实业发展有限公司二部 | 电子天平-华志电子天平厂家 | 常州企业采购平台_常州MRO采购公司_常州米孚机电设备有限公司 | 上海恒驭仪器有限公司-实验室平板硫化机-小型平板硫化机-全自动平板硫化机 | 皮带机_移动皮带机_大倾角皮带机_皮带机厂家 - 新乡市国盛机械设备有限公司 | 高考志愿规划师_高考规划师_高考培训师_高报师_升学规划师_高考志愿规划师培训认证机构「向阳生涯」 | 数控走心机-走心机价格-双主轴走心机-宝宇百科 | 沧州友城管业有限公司-内外涂塑钢管-大口径螺旋钢管-涂塑螺旋管-保温钢管生产厂家 | 沈阳缠绕包装机厂家直销-沈阳海鹞托盘缠绕包装机价格 | 创富网-B2B网站|供求信息网|b2b平台|专业电子商务网站 | 电镀整流器_微弧氧化电源_高频电解电源_微弧氧化设备厂家_深圳开瑞节能 | 别墅图纸超市|别墅设计图纸|农村房屋设计图|农村自建房|别墅设计图纸及效果图大全 | 深圳市索富通实业有限公司-可燃气体报警器 | 可燃气体探测器 | 气体检测仪 | 玉米深加工设备-玉米深加工机械-新型玉米工机械生产厂家-河南粮院机械制造有限公司 | 河南正规膏药生产厂家-膏药贴牌-膏药代加工-修康药业集团官网 | 扫地车厂家-山西洗地机-太原电动扫地车「大同朔州吕梁晋中忻州长治晋城洗地机」山西锦力环保科技有限公司 | 小型UV打印机-UV平板打印机-大型uv打印机-UV打印机源头厂家 |松普集团 | 塑钢课桌椅、学生课桌椅、课桌椅厂家-学仕教育设备首页 | 圆形振动筛_圆筛_旋振筛_三次元振动筛-河南新乡德诚生产厂家 | 塑胶跑道施工-硅pu篮球场施工-塑胶网球场建造-丙烯酸球场材料厂家-奥茵 | 机构创新组合设计实验台_液压实验台_气动实训台-戴育教仪厂 | 带压开孔_带压堵漏_带压封堵-菏泽金升管道工程有限公司 | 东莞办公家具厂家直销-美鑫【免费3D效果图】全国办公桌/会议桌定制 | 体检车_移动CT车_CT检查车_CT车_深圳市艾克瑞电气有限公司移动CT体检车厂家-深圳市艾克瑞电气有限公司 | 医学模型生产厂家-显微手术模拟训练器-仿真手术模拟训练系统-北京医教科技 | 除尘器布袋骨架,除尘器滤袋,除尘器骨架,电磁脉冲阀膜片,卸灰阀,螺旋输送机-泊头市天润环保机械设备有限公司 | 东风体检车厂家_公共卫生体检车_医院体检车_移动体检车-锦沅科贸 | 工控机,嵌入式主板,工业主板,arm主板,图像采集卡,poe网卡,朗锐智科 |