go语言服务接入springcloud(sidecar)

go语言服务接入springcloud(sidecar)
一.Sidecar简介

Spring Cloud Netflix Sidecar 包含一个简单的http api来获取给定服务的所有实例(即主机和端口)。然后可以通过从Eureka获取其路由条目的嵌入式Zuul代理来代理服务调用。可以通过主机查找或通过Zuul代理访问Spring Cloud Config服务器。但是第三方程序必须执行健康检查,以便Sidecar可以向应用程序启动或关闭时向eureka报告。
上面是网上找的介绍,简单来说大概就是Sidecar可以拿到各种异构语言上面服务的所有信息,并将之兼容到springcloud框架中
重点是需要给异构语言加一个模仿springboot健康检查接口的可访问uri,返回一个json文档
{ status: ‘UP’ } ----一定是一个json文档
原有服务都不用做改变,只需要添加一个返回json文本的方法即可
一.编写go程序
在这里插入图片描述

二,创建sidecar项目(maven项目,一切默认就好)
需要注意配置application.properties,还有pom.xml,项目启动类中要加入@EnableSidecar注解

dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-netflix-sidecar</artifactId>
    <version>2.2.0.RELEASE</version>
</dependency>

在这里插入图片描述

三,构建注册中心(springcloud项目,需要选择是eureka server)
在这里插入图片描述

同样后续配置pom.xml和application.properties,启动类中加入@EnableEurekaServer

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>

在这里插入图片描述

四,配置客户端访问,(springcloud项目,默认即可)
同样后续配置pom.xml和application.properties,启动类中加入@EnableEurekaClient,@EnableFeignClients标签,暂时不知道到底用哪个

在这里插入图片描述

客户端的两个控制器代码如下:
用来与sidecar进行关联

@FeignClient("sidecar")
public interface GoController {
    @RequestMapping("/helloWorld")
    public String helloWorld();
}

用来和本地服务消费

@Controller
public class SidecarController {
    @Autowired
    private GoController goController;

    @ResponseBody
    @RequestMapping("/helloGo")
    public String helloGo() {
        return goController.helloWorld();
    }
}

五,启动顺序

go项目先启动
启动eureka server
启动sidecar服务
启动客户端

启动sidecar服务后可以在eureka的界面看到服务注册并有消费记录1条
在客户端启动后,访问客户端的helloGo方法,可以调用到go项目中的返回结果,和go项目8060匹配
在这里插入图片描述

项目参考:https://blog.csdn.net/weixin_43859733/article/details/88241593

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值