spring cloud中微服務(wù)之間的調(diào)用以及eureka的自我保護(hù)機(jī)制詳解
上篇講了spring cloud注冊(cè)中心及客戶端的注冊(cè),所以這篇主要講一下服務(wù)和服務(wù)之間是怎樣調(diào)用的
不會(huì)搭建的小伙伴請(qǐng)參考我上一篇博客:idea快速搭建spring cloud-注冊(cè)中心與注冊(cè)
基于上一篇的搭建我又自己搭建了一個(gè)客戶端微服務(wù):

所以現(xiàn)在有兩個(gè)微服務(wù),我們所實(shí)現(xiàn)的就是微服務(wù)1和微服務(wù)2之間的調(diào)用
注冊(cè)中心就不用多說(shuō)了,具體看一下兩個(gè)微服務(wù)

application.yml配置也不用說(shuō)了,不知道怎么配置的請(qǐng)參考我上篇博客
在project-solr中的constroller中:
@RestController//這里使此Constroller中所有的方法返回的不是頁(yè)面
public class SolrSearchConstroller {
@RequestMapping("/SolrSearch")
public String SolrSearch(){
return "這里是Solr";
}
}
這里是為了讓另一個(gè)服務(wù)調(diào)用
在另一個(gè)微服務(wù)project-shopping-mall 啟動(dòng)類中,我們 必須定義一個(gè)方法:
@SpringBootApplication
@EnableDiscoveryClient //表示eureka客戶端
public class ShoppingMallProvider {
@Bean
@LoadBalanced//在注冊(cè)中心里進(jìn)行查找微服務(wù)
public RestTemplate restTemplate(){
RestTemplate restTemplate=new RestTemplate();
return restTemplate;
}
public static void main(String[] args) {
SpringApplication.run(ShoppingMallProvider.class,args);
}
}
然后在project-shopping-mall里的Controller中調(diào)用project-solr中的constroller:
@Controller
public class PageController {
@Autowired
private RestTemplate restTemplate;
@RequestMapping("/toIndex")
public String toIndex(Model model){
String msg=restTemplate.getForEntity("http://project-solr/SolrSearch",String.class).getBody();//project-solr是調(diào)用注冊(cè)中心里的名字
model.addAttribute("msg",msg);
return "/index";
}
}
這里的project-solr是配置里每個(gè)服務(wù)注冊(cè)到注冊(cè)中心的名字,根據(jù)名字調(diào)用服務(wù)的ip地址,可以實(shí)現(xiàn)動(dòng)態(tài)微服務(wù)調(diào)用效果,它不會(huì)因?yàn)楦鼡Q電腦而出錯(cuò)
下面接著建設(shè)頁(yè)面,這里我用的是thymeleaf組件
我們先在build.gradle中添加依賴:
//thymeleaf組件 compile 'org.springframework.boot:spring-boot-starter-thymeleaf'
然后新建默認(rèn)的目錄:

這里必須新建templates包,因?yàn)槭悄J(rèn)的目錄
然后index.html中:

運(yùn)行:

成功!
下面簡(jiǎn)單的說(shuō)一下spring cloud eureka注冊(cè)中心的自我保護(hù)機(jī)制
優(yōu)點(diǎn):當(dāng)服務(wù)與注冊(cè)中心由于某個(gè)原因斷開的時(shí)候,服務(wù)與服務(wù)之間還可以連接,這時(shí)候eureka不會(huì)立刻清理,依舊會(huì)對(duì)改微服的信息進(jìn)行保存。
缺點(diǎn):當(dāng)服務(wù)與注冊(cè)中心由于某個(gè)原因斷開的時(shí)候,服務(wù)與服務(wù)之間也不可以連接,這時(shí)候可能會(huì)帶壞其他服務(wù)器。
當(dāng)然是優(yōu)點(diǎn)大于缺點(diǎn)的
那eureka注冊(cè)中心是怎么知道微服務(wù)還存活的呢?
其實(shí)每個(gè)服務(wù)每分鐘都會(huì)對(duì)注冊(cè)中心進(jìn)行心跳,而注冊(cè)中心會(huì)接受心跳,若注冊(cè)中心沒(méi)有接受到心跳則會(huì)認(rèn)為該服務(wù)死亡
官方對(duì)于自我保護(hù)機(jī)制的定義:eureka官方自我保護(hù)機(jī)制
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- SpringCloud feign微服務(wù)調(diào)用之間的異常處理方式
- SpringCloud讓微服務(wù)實(shí)現(xiàn)指定程序調(diào)用
- Spring Cloud多個(gè)微服務(wù)之間調(diào)用代碼實(shí)例
- spring cloud eureka微服務(wù)之間的調(diào)用詳解
- 新手學(xué)習(xí)微服務(wù)SpringCloud項(xiàng)目架構(gòu)搭建方法
- 詳解Spring Cloud Alibaba Sidecar多語(yǔ)言微服務(wù)異構(gòu)
- 教你Spring Cloud保證各個(gè)微服務(wù)之間調(diào)用安全性
相關(guān)文章
Java中零拷貝和深拷貝的原理及實(shí)現(xiàn)探究(代碼示例)
深拷貝和零拷貝是兩個(gè)在 Java 中廣泛使用的概念,它們分別用于對(duì)象復(fù)制和數(shù)據(jù)傳輸優(yōu)化,下面將詳細(xì)介紹這兩個(gè)概念的原理,并給出相應(yīng)的 Java 代碼示例,感興趣的朋友一起看看吧2023-12-12
Java代理模式(Proxy)實(shí)現(xiàn)方法詳解
這篇文章主要介紹了Java代理模式(Proxy)實(shí)現(xiàn)的相關(guān)資料,代理模式是一種結(jié)構(gòu)型設(shè)計(jì)模式,通過(guò)引入代理對(duì)象來(lái)控制對(duì)目標(biāo)對(duì)象的訪問(wèn),代理模式的優(yōu)點(diǎn)包括職責(zé)清晰、擴(kuò)展性好、保護(hù)目標(biāo)對(duì)象和增強(qiáng)功能,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2025-04-04
Java數(shù)據(jù)結(jié)構(gòu)--時(shí)間和空間復(fù)雜度
這篇文章主要介紹了java數(shù)據(jù)結(jié)構(gòu)的時(shí)間和空間復(fù)雜度,小編覺(jué)得這篇文寫的不錯(cuò),感興趣的朋友可以了解下,希望能夠給你帶來(lái)幫助2021-08-08
劍指Offer之Java算法習(xí)題精講數(shù)組與二叉樹
跟著思路走,之后從簡(jiǎn)單題入手,反復(fù)去看,做過(guò)之后可能會(huì)忘記,之后再做一次,記不住就反復(fù)做,反復(fù)尋求思路和規(guī)律,慢慢積累就會(huì)發(fā)現(xiàn)質(zhì)的變化2022-03-03
Java讀取txt文件中的數(shù)據(jù)賦給String變量方法
今天小編就為大家分享一篇Java讀取txt文件中的數(shù)據(jù)賦給String變量方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-07-07
Java實(shí)現(xiàn)帶附件的郵件發(fā)送功能
這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)帶附件的郵件發(fā)送功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-08-08
java使用Feign實(shí)現(xiàn)聲明式Restful風(fēng)格調(diào)用
這篇文章主要為大家詳細(xì)介紹了java使用Feign實(shí)現(xiàn)聲明式Restful風(fēng)格調(diào)用,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-04-04
通過(guò)入門demo簡(jiǎn)單了解netty使用方法
這篇文章主要介紹了通過(guò)入門demo簡(jiǎn)單了解netty使用方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-12-12

