spring cloud中微服務之間的調用以及eureka的自我保護機制

這篇主要講一下服務和服務之間是怎樣調用的html

若是想學習Java工程化、高性能及分佈式、深刻淺出。微服務、Spring,MyBatis,Netty源碼分析的朋友能夠加個人Java高級交流:854630135,羣裏有阿里大牛直播講解技術,以及Java大型互聯網技術的視頻免費分享給你們。spring

我本身搭建了一個客戶端微服務:服務器

spring cloud中微服務之間的調用以及eureka的自我保護機制

 

因此如今有兩個微服務,咱們所實現的就是微服務1和微服務2之間的調用app

註冊中心就不用多說了,具體看一下兩個微服務負載均衡

spring cloud中微服務之間的調用以及eureka的自我保護機制

 

application.yml配置也不用說了,不知道怎麼配置的請參考我上篇博客分佈式

在project-solr中的constroller中:ide

@RestController//這裏使此Constroller中全部的方法返回的不是頁面
public class SolrSearchConstroller {
 @RequestMapping("/SolrSearch")
 public String SolrSearch(){
 return "這裏是Solr";
 }
}

這裏是爲了讓另外一個服務調用spring-boot

在另外一個微服務project-shopping-mall 啓動類中,咱們 必須定義一個方法:微服務

@SpringBootApplication
@EnableDiscoveryClient //表示eureka客戶端
public class ShoppingMallProvider {
 @Bean
 @LoadBalanced//在註冊中內心進行查找微服務,負載均衡
 public RestTemplate restTemplate(){
 RestTemplate restTemplate=new RestTemplate();
 return restTemplate;
 }
 public static void main(String[] args) {
 SpringApplication.run(ShoppingMallProvider.class,args);
 }
}

而後在project-shopping-mall裏的Controller中調用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是調用註冊中內心的名字
 model.addAttribute("msg",msg);
 return "/index";
 }
}

這裏的project-solr是配置裏每一個服務註冊到註冊中心的名字,根據名字調用服務的ip地址,能夠實現動態微服務調用效果,它不會由於更換電腦而出錯

下面接着建設頁面,這裏我用的是thymeleaf組件

咱們先在build.gradle中添加依賴:

//thymeleaf組件
 compile 'org.springframework.boot:spring-boot-starter-thymeleaf'

而後新建默認的目錄:

spring cloud中微服務之間的調用以及eureka的自我保護機制

 

這裏必須新建templates包,由於是默認的目錄

而後index.html中:

spring cloud中微服務之間的調用以及eureka的自我保護機制

 

運行:

spring cloud中微服務之間的調用以及eureka的自我保護機制

 

成功!

下面簡單的說一下spring cloud eureka註冊中心的自我保護機制

優勢:當服務與註冊中心因爲某個緣由斷開的時候,服務與服務之間還能夠鏈接,這時候eureka不會馬上清理,依舊會對改微服的信息進行保存。

缺點:當服務與註冊中心因爲某個緣由斷開的時候,服務與服務之間也不能夠鏈接,這時候可能會帶壞其餘服務器。

固然是優勢大於缺點的

那eureka註冊中心是怎麼知道微服務還存活的呢?

其實每一個服務每分鐘都會對註冊中心進行心跳,而註冊中心會接受心跳,若註冊中心沒有接受到心跳則會認爲該服務死亡

官方對於自我保護機制的定義:eureka官方自我保護機制

相關文章
相關標籤/搜索