我本身搭建了一個客戶端微服務:html
因此如今有兩個微服務,咱們所實現的就是微服務1和微服務2之間的調用java
註冊中心就不用多說了,具體看一下兩個微服務面試
在project-solr中的constroller中:spring
@RestController//這裏使此Constroller中全部的方法返回的不是頁面
public class SolrSearchConstroller {服務器@RequestMapping("/SolrSearch")
public String SolrSearch(){
return "這裏是Solr";
}架構}app
這裏是爲了讓另外一個服務調用負載均衡
在另外一個微服務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'
而後新建默認的目錄:
這裏必須新建templates包,由於是默認的目錄
而後index.html中:
運行:
成功!
下面簡單的說一下spring cloud eureka註冊中心的自我保護機制
優勢:當服務與註冊中心因爲某個緣由斷開的時候,服務與服務之間還能夠鏈接,這時候eureka不會馬上清理,依舊會對改微服的信息進行保存。
缺點:當服務與註冊中心因爲某個緣由斷開的時候,服務與服務之間也不能夠鏈接,這時候可能會帶壞其餘服務器。
固然是優勢大於缺點的
那eureka註冊中心是怎麼知道微服務還存活的呢?
其實每一個服務每分鐘都會對註冊中心進行心跳,而註冊中心會接受心跳,若註冊中心沒有接受到心跳則會認爲該服務死亡
官方對於自我保護機制的定義:eureka官方自我保護機制
感興趣能夠加Java架構師羣獲取Java工程化、高性能及分佈式、高性能、深刻淺出。高架構。性能調優、Spring,MyBatis,Netty源碼分析和大數據等多個知識點高級進階乾貨的直播免費學習權限 都是大牛帶飛 讓你少走不少的彎路的 羣..號是:855801563 對了 小白勿進 最好是有開發經驗
注:加羣要求
一、具備工做經驗的,面對目前流行的技術不知從何下手,須要突破技術瓶頸的能夠加。
二、在公司待久了,過得很安逸,但跳槽時面試碰壁。須要在短期內進修、跳槽拿高薪的能夠加。
三、若是沒有工做經驗,但基礎很是紮實,對java工做機制,經常使用設計思想,經常使用java開發框架掌握熟練的,能夠加。
四、以爲本身很牛B,通常需求都能搞定。可是所學的知識點沒有系統化,很難在技術領域繼續突破的能夠加。
5.阿里Java高級大牛直播講解知識點,分享知識,多年工做經驗的梳理和總結,帶着你們全面、科學地創建本身的技術體系和技術認知!