springcloud之 sidecar實現跨語言微服務調用


前言

近幾年微服務的興起,越來越多的人使用springcloud作為微服務框架(基於java語言實現的微服務框架),那么問題來了"能否將非java語言實現的項目接入到springcloud框架中",答案是必須的,springcloud為了解決此問題,推出了一款名叫sidecar的組件。

Sidecar

Spring Cloud Netflix Sidecar 包含一個簡單的http api來獲取給定服務的所有實例(即主機和端口)。然后可以通過從Eureka獲取其路由條目的嵌入式Zuul代理來代理服務調用。可以通過主機查找或通過Zuul代理訪問Spring Cloud Config服務器。但是第三方程序必須執行健康檢查(服務心跳檢測),以便Sidecar可以根據應用程序啟動或關閉時,向 eureka報告。

Sidecar使用步驟

1.需要一個第三方的程序,可以是python,nodejs,php等一系列非java語言編寫的程序,本文我們使用了一個java編寫的第三方接口程序。

2.第三方程序提供health接口,接口返回json格式的字符串

3.創建sidecar項目

<1>引入坐標依賴  

<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.3.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<dependencies>
<dependency>
<groupId>com.ctrip.framework.apollo</groupId>
<artifactId>apollo-client</artifactId>
<version>1.4.0</version>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-netflix-sidecar</artifactId>
</dependency>
</dependencies>
<2>配置文件   
spring: application: name: microservice-sidecar #服務名 server: port: 8070 eureka: #加入到eureka client: service-url: defaultZone: http://localhost:8761/eureka instance: prefer-ip-address: true sidecar: port: 8060 #異構微服務的端口 healthUri: http://localhost:8060/health #對應第三方程序的health接口

 <3>編寫啟動類,添加@EnableSidecar注解

 

 經過上面的幾步sidecar的操作,服務已經可以正常啟動,並且可以代理第三方有效服務,注冊到注冊中心,進行不同語言服務間的相互調用;

 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM