Spring Boot2 0實現微服務呼叫

2021-08-29 01:26:40 字數 2233 閱讀 8495

微服務相互呼叫可避免跨域問題

呼叫兩種方式

1.resttemplate

底層採用httpclient的技術,屬於spring boot,是spring boot 預設採用的rebbon服務呼叫。

2.fegin(建議)

屬於spring cloud

resttemplate:

控制器@restcontroller

public class ordercontroller {

//resttemplate 是springboot 提供的web元件,底層用的httpclient技術

@autowired

private resttemplate resttemplate; **

public string getmerber(){

//string url = "http://localhost:2001/index";  //方式一:直接呼叫,一般不採用

//注意這裡用的是服務別名,需要開啟 「註冊中心」 和在啟動檔案新增@loadbalanced註解

啟動檔案新增注入resttemplate

@bean **

@loadbalanced

resttemplate resttemplate(){

return new resttemplate();

新增@loadbalaced可以 使用服務名字查詢註冊中心的位址,從而達到實現微服務呼叫。

如果要呼叫的微服務有兩個埠號(有乙個備用服務),即可實現負載均衡。

fegin:

服務提供者:提供對應的介面實現方法

服務消費者:建立對應的方法介面(表明指向服務提供者),並在控制器中呼叫

服務提供者:

建立控制器(實現介面內容)

@restcontroller

public class hellocontroller { ******

public string index(@pathvariable string name){

return "this is admin ,hello!" + name;

入口檔案

@enableeurekaclient

public static void main(string args) {

pom.xml

org.springframework.cloud

spring-cloud-starter-eureka

org.springframework.cloud

spring-cloud-starter-feign

org.springframework.cloud

spring-cloud-starter-openfeign

服務消費者:

介面@feignclient(name= "amncloud-admin") ******重點

public inte***ce helloremote {

public string hello(@pathvariable("name") string name);

控制器@restcontroller

public class ucentercontroller {

@autowired ******重點

helloremote helloremote;

public string index(@pathvariable("name") string name) {

return helloremote.hello(name);

入口檔案

@enablefeignclients   #注意與服務提供者的不同*********重點

@enablediscoveryclient

public static void main(string args) {

pom.xml

org.springframework.cloud

spring-cloud-starter-eureka

org.springframework.cloud

spring-cloud-starter-feign

org.springframework.cloud

spring-cloud-starter-openfeign

SpringBoot2 0實現靜態資源版本控制

猶記畢業第一年時,公司每次發布完成後,都會在乙個群裡通知 版本更新,各部門清理快取,有問題及時反饋 之類的話。歸根結底就是資源快取的問題,瀏覽器會將請求到的靜態資源,如js css等檔案快取到使用者本地,當使用者再次訪問時就不需要再次請求這些資源了,以此也是提公升了使用者體驗。但是也正是因為這些資源...

spring boot 2 0系列筆記 二

之前使用的spring boot 版本一直是1.5.x,spring推出2.0已經有一段時間,個人感覺可以花精力去研究一些變化的新特性,網上的文章很多,我就不一一介紹了,本文主要是用spring boot 2.0構建乙個現在很流行的分布式module專案的demo,位址在本文最後會貼出.下面開始表演...

二 SpringBoot2 0啟動方式

方式一可以將啟動類作為控制器,從而實現啟動並訪問。author 小吉 description springboot2.0啟動方式一 方式二需要在啟動類中加上 componentscan 註解,註解可以配置掃瞄的基礎包,用於指定從哪個包往下掃瞄元件。author 小吉 description spri...