更新時(shí)間:2023-02-14 16:10:53 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽1898次
1.Eureka中幾個(gè)時(shí)間
服務(wù)注冊(cè):
eureka.client.register-with-erueka=true 消費(fèi)者和生產(chǎn)者,需要把自己注冊(cè)到Eureka服務(wù)器中,設(shè)置true。默認(rèn)值就是true
eureka.client.register-with-erueka=true 注冊(cè)中心自己 設(shè)置為false
服務(wù)續(xù)約(renew):
lease-renewal-interval-in-seconds:服務(wù)續(xù)約(renew)的間隔,默認(rèn)為30秒 客戶端心跳時(shí)間
lease-expiration-duration-in-seconds:服務(wù)失效時(shí)間,默認(rèn)值90秒 服務(wù)注冊(cè)超時(shí)時(shí)間 如果超時(shí)認(rèn)為失效的服務(wù)
拉取服務(wù)列表:
eureka.client.registry-fetch-interval-seconds=30 消費(fèi)者定期30秒 拉取一次服務(wù)緩存到本地
Eureka服務(wù)器服務(wù)失效剔除時(shí)間:
eureka.server.eviction-interval-timer-in-ms=60 因此它會(huì)開啟一個(gè)定時(shí)任務(wù),每隔60秒對(duì)所有失效的服務(wù)進(jìn)行剔除。
2.Ribbon概述
Srping Cloud ribbon是基于Netfix Ribbo實(shí)現(xiàn)的一套客戶端 負(fù)債均衡工具
Ribbon是Netflix發(fā)布的開源項(xiàng)目,主要功能是提供客戶端的軟件負(fù)載均衡算法,將Netflix的中間層服務(wù)連接在一起。Ribbon客戶端組件提供一系列完善的配置項(xiàng)如連接超時(shí),重試等。簡(jiǎn)單的說(shuō),就是在配置文件中列出Load Balancer(簡(jiǎn)稱LB)后面所有的機(jī)器,Ribbon會(huì)自動(dòng)的幫助你基于某種規(guī)則(如簡(jiǎn)單輪詢,隨機(jī)連接等)去連接這些機(jī)器。我們也很容易使用Ribbon實(shí)現(xiàn)自定義的負(fù)載均衡算法。
3.Ribbon常見的負(fù)載均衡算法
4.什么是feigin?它的優(yōu)點(diǎn)是什么?
1.feign采用的是基于接口的注解
2.feign整合了ribbon,具有負(fù)載均衡的能力
3.整合了Hystrix,具有熔斷的能力
使用:
1.添加pom依賴。
2.啟動(dòng)類添加@EnableFeignClients
3.定義一個(gè)接口@FeignClient(name=“xxx”)指定調(diào)用哪個(gè)服務(wù)
5.Ribbon和Feign的區(qū)別?
1.Ribbon都是調(diào)用其他服務(wù)的,但方式不同。
2.啟動(dòng)類注解不同,Ribbon是@RibbonClient feign的是@EnableFeignClients
3.服務(wù)指定的位置不同,Ribbon是在@RibbonClient注解上聲明,F(xiàn)eign則是在定義抽象方法的接口中使用@FeignClient聲明。
4.調(diào)用方式不同,Ribbon需要自己構(gòu)建http請(qǐng)求,模擬http請(qǐng)求然后使用RestTemplate發(fā)送給其他服務(wù),步驟相當(dāng)繁瑣。Feign需要將調(diào)用的方法定義成抽象方法即可。
6.Ribbon 原理
底層的話,使用HTTP通信的框架組件,HttpClient,先得使用Ribbon去本地的Eureka注冊(cè)表的緩存里獲取出來(lái)對(duì)方機(jī)器的列表,然后進(jìn)行負(fù)載均衡,選出一臺(tái)機(jī)器,接著針對(duì)那臺(tái)機(jī)器發(fā)送 Http請(qǐng)求過(guò)去即可
7.Feign 原理
在配置類上,加上@EnableFeginClients,那么該注解是基于@Import注解,注冊(cè)有關(guān)Fegin的解析注冊(cè)類,這個(gè)類是實(shí)現(xiàn) ImportBeanDefinitionRegistrar 這個(gè)接口,重寫registryBeanDefinition 方法。他會(huì)掃描所有加了@FeginClient 的接口,然后針對(duì)這個(gè)注解的接口生成動(dòng)態(tài)代理,然后你針對(duì)fegin的動(dòng)態(tài)代理去調(diào)用他方法的時(shí)候,此時(shí)會(huì)在底層生成http協(xié)議格式的請(qǐng)求。
8.說(shuō)一下自己公司的服務(wù)注冊(cè)中心怎么技術(shù)選型的?生產(chǎn)環(huán)境中應(yīng)該怎么優(yōu)化?
• 可用性
• 時(shí)效性
• 數(shù)據(jù)一致性 CP AP
• 容量
通過(guò)集群保證可用性
9.Spring Cloud Netflix下常用組件:
Netflix開源組件集成,包括Eureka、Hystrix、Ribbon、Feign、Zuul等核心組件。
Eureka:服務(wù)治理組件,包括服務(wù)端的注冊(cè)中心和客戶端的服務(wù)發(fā)現(xiàn)機(jī)制;
Ribbon:負(fù)載均衡的服務(wù)調(diào)用組件,具有多種負(fù)載均衡調(diào)用策略;
Hystrix:服務(wù)容錯(cuò)組件,實(shí)現(xiàn)了斷路器模式,為依賴服務(wù)的出錯(cuò)和延遲提供了容錯(cuò)能力;
Feign:基于Ribbon和Hystrix的聲明式服務(wù)調(diào)用組件;
Zuul:API網(wǎng)關(guān)組件,對(duì)請(qǐng)求提供路由及過(guò)濾功能。
以上就是“2023年精選出來(lái)的ribbon面試題”,你能回答上來(lái)嗎?如果想要了解更多的Java面試題相關(guān)內(nèi)容,可以關(guān)注動(dòng)力節(jié)點(diǎn)Java官網(wǎng)。
相關(guān)閱讀
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
有基礎(chǔ) 直達(dá)就業(yè)
業(yè)余時(shí)間 高薪轉(zhuǎn)行
工作1~3年,加薪神器
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問(wèn)老師會(huì)電話與您溝通安排學(xué)習(xí)
初級(jí) 202925
初級(jí) 203221
初級(jí) 202629
初級(jí) 203743