詳解Spring Cloud Alibaba Sidecar多語言微服務異構
自 Spring Cloud Alibaba 2.1.1 版本后增加了 spring-cloud-alibaba-sidecar 模塊作為作為一個代理的服務來間接性的讓其他語言可以使用spring cloud alibaba等相關組件。通過與網關的來進行路由的映射,從而可以做到服務的獲取,然后可以使用Ribbon間接性調用。

如上圖, Spring Cloud 應用 請求 sidercar 然后轉發(fā)給其他語言的模塊,優(yōu)勢是對于異構服務代碼 零侵入,不需要直接根據 nacos 或其他注冊中心 api 注冊等
使用入門
構建其他語言接口服務
基于go 寫個簡單的服務接口
http://127.0.0.1:8089/sidecar
package mainimport ( "encoding/json"
"fmt"
"log"
"net/http")func main() {
http.HandleFunc("/sidecar", sidecar)
http.HandleFunc("/heath", health) log.Fatal(http.ListenAndServe(":8089", nil))
}func sidecar(w http.ResponseWriter, r *http.Request) {
_, _ = fmt.Fprintf(w, "hello spring cloud alibaba sidecar")
}
func health(w http.ResponseWriter, r *http.Request) {
w.Header().Set("Content-Type", "application/json")
actuator := make(map[string]string)
actuator["status"] = "UP"
_ = json.NewEncoder(w).Encode(actuator)
}
構建 sidercar 應用
增加 sidecar 依賴
<dependency> <groupid>com.alibaba.cloud</groupid> <artifactid>spring-cloud-starter-alibaba-sidecar</artifactid> <version>2.1.1.RELEASE</version></dependency>
配置 application.yml
server:
port: 8088spring:
cloud:
nacos:
discovery:
server-addr: localhost:8848
application:
name: go-provider# 配置異構服務sidecar:
ip: localhost
port: 8089
health-check-url: http://localhost:8089/health
構建 nacos consumer應用
application.yml
server:
port: 8087spring:
cloud:
nacos:
discovery:
server-addr: localhost:8848
application:
name: nacos-consumer
consumer 邏輯
@RestController@EnableDiscoveryClient@SpringBootApplicationpublic class NacosConsumerApplication { public static void main(String[] args) {
SpringApplication.run(NacosConsumerApplication.class, args);
} @Bean
@LoadBalanced
public RestTemplate restTemplate() { return new RestTemplate();
} @Autowired
private RestTemplate restTemplate; @GetMapping("/test") public String test() { return restTemplate.getForObject("http://go-provider/sidecar", String.class);
}
}
測試使用
訪問spring cloud consumer 應用
curl http://localhost:8087/test
輸出 go-provider應用
hello spring cloud alibaba sidecar
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
Java實現將word轉換為html的方法示例【doc與docx格式】
這篇文章主要介紹了Java實現將word轉換為html的方法,結合實例形式分析了java針對doc與docx格式文件的相關轉換操作技巧,需要的朋友可以參考下2019-03-03
SpringBoot中HttpSessionListener的簡單使用方式
這篇文章主要介紹了SpringBoot中HttpSessionListener的簡單使用方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-03-03

