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