深入Eureka/Feign/Hystrix原理学习(1)
第一步:
創(chuàng)建注冊(cè)中心項(xiàng)目,引入cloud discovery相關(guān)依賴。
①在pom文件中引入相關(guān)依賴。
②在啟動(dòng)類上加上@EnableEurekaServer注解,標(biāo)注這是一個(gè)注
冊(cè)中心。
③在application.yml配置文件中進(jìn)行相關(guān)配置:配置端口
server:port:7776,配置注冊(cè)中心的地址http://localhost:7776/euraka
等。
④在啟動(dòng)項(xiàng)目后,直接在瀏覽器輸入localhost:7776就可以訪問(wèn)
eureka的管理界面。
注意:pom文件中spring boot和spring cloud的版本要相對(duì)應(yīng),如果是較
低版本的spring cloud,比如Dalston.SR4,對(duì)應(yīng)的spring boot版本是
1.5.6.
第二步:
創(chuàng)建客戶端,發(fā)布服務(wù)。對(duì)于注冊(cè)中心而言,所有的連接對(duì)象都
是客戶端。
①引依賴。
②配置yml:給項(xiàng)目取名,便于其他工程發(fā)現(xiàn),
spring:application:name:dm-user-provider這就是取名。將服務(wù)注冊(cè)到
注冊(cè)中心去,需要指定注冊(cè)中心的地址:eureka:client:service-
url:defaultZone:http://localhost:7776/eureka.同樣需要進(jìn)行端口配
置server:port:8080.
③在啟動(dòng)類上加上@EnableDiscoveryClient注解,在啟動(dòng)時(shí)就會(huì)
去讀取配置文件中的信息,按照Eureka客戶端的要求加載數(shù)據(jù)。
④啟動(dòng)項(xiàng)目后就可以在eureka的管理界面中看到發(fā)布的服務(wù)。
三板斧:依賴,配置文件,注解。
Eureka的自我保護(hù)機(jī)制默認(rèn)是開啟的,是為了保證某些暫時(shí)不可用的服務(wù)
節(jié)點(diǎn)不會(huì)被激進(jìn)地清理掉。因?yàn)橛行┓?wù)暫時(shí)不可用不代表這些服務(wù)是無(wú)
效的。
第三步:
對(duì)注冊(cè)中心的管理界面進(jìn)行安全控制。
使用spring-boot-starter-security進(jìn)行權(quán)限控制,讓注冊(cè)中心
的服務(wù)更加安全。
①首先在pom文件中引入security依賴。
②在配置文件中進(jìn)行配置:啟用-
security:basic:enabled:true.配置用戶名密碼-
security:user:name:root/security:user:password:123456.
③在進(jìn)行權(quán)限控制后,客戶端訪問(wèn)注冊(cè)中心時(shí)需要在訪問(wèn)url中
進(jìn)行如下配置:http://root:123456@localhost:7776/eureka.
第四步:
新建項(xiàng)目,對(duì)注冊(cè)中心存在的服務(wù)進(jìn)行調(diào)用。
①需要額外引入spring-cloud-starter-feign依賴,解決服務(wù)調(diào)
用的問(wèn)題。
②在配置文件中進(jìn)行配置:spring:application:name:dm-user
-consumer.標(biāo)注這是服務(wù)的調(diào)用方。server:port:8081.要保證端口不要
重復(fù)。
③在啟動(dòng)類中加上注解:@EnableDiscovery注解將服務(wù)注冊(cè)到注
冊(cè)中心。@EnableFeignClients注解用于從注冊(cè)中心中調(diào)用服務(wù)。
④在業(yè)務(wù)處理類也就是和Service接口上加上@FeignClient注解
,指定要從注冊(cè)中心調(diào)用的服務(wù)的名稱,@FeignClient(name="dm-user-
provider").注意,接口中方法的定義格式要與provider中的方法一致,
比如提供方的方法上加了@RequestMapping
(value="/login",method=RequestMethod.GET)。就相當(dāng)于告訴Feign組件
,要調(diào)用的服務(wù)長(zhǎng)這個(gè)模樣,Feign從而好創(chuàng)建一個(gè)實(shí)現(xiàn)類去調(diào)用服務(wù)。
⑤在調(diào)用方的Controller類中就可以通過(guò)@Autowired注解直接注
入提供方的服務(wù)。
第五步:
公共模塊的使用場(chǎng)景,被多個(gè)客戶端共同使用的模塊都定義到公
共模塊中,比如javaBean等。Common項(xiàng)目無(wú)需注冊(cè)到注冊(cè)中心。
其他項(xiàng)目或者是模塊想要使用Common模塊,需要在pom文件中引入Common
的依賴,先install一下Common項(xiàng)目。
第六步:
熔斷器hystrix配置。feign:hrstrix:enabled:true.如果服務(wù)調(diào)
用出錯(cuò)時(shí)的處理方案:通常做法是定義一個(gè)類,在服務(wù)調(diào)用出錯(cuò)時(shí)執(zhí)行這
個(gè)類中的方法,一般命名為**Fallback,同時(shí)需要implements正常調(diào)用的
那個(gè)接口。并且需要在該類上添加@Compnent注解,納入spring容器管理
。在@FeignClient注解中追加fallback=**Fallback.class。就類似于一
個(gè)備胎,在出錯(cuò)時(shí)頂上去。
轉(zhuǎn)載于:https://www.cnblogs.com/niwotaxuexiba/p/10506298.html
總結(jié)
以上是生活随笔為你收集整理的深入Eureka/Feign/Hystrix原理学习(1)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 从零开始学安全(三)●黑客常用的wind
- 下一篇: JAVA开发者大会-Spring Clo