Spring Cloud Alibaba 2.1.1 新特性Sidecar模块介绍

Sidecar简介

Spring Cloud Alibaba v2.1.1.RELEASE中增加了一个非常重要的新特性,对Spring Cloud Alibaba Sidecar模块支持。

该模块作为一个代理的服务来间接性的让其他语言可以使用spring cloud alibaba等相关组件。通过与网关来进行路由的映射,从而可以做到服务的获取,然后可以使用Ribbon间接性调用。

Sidecar原理

如上图,Spring Cloud应用请求sidercar然后转发给其他语言的模块,优势是对于异构服务代码零侵入,不需要直接根据nacos或其他注册中心api注册等。

使用入门

示例代码请参阅:spring-cloud-alibaba-sidecar-examples

Spring Cloud创建一个Spring应用注册在Nacos上,应用请求8070端口,通过sidecar转到本机8060端口Node.js服务。

Node.js服务

var http = require('http');
var url = require("url");
var path = require('path');

// 创建server
var server = http.createServer(function(req, res) {
    // 获得请求的路径
    var pathname = url.parse(req.url).pathname;
    res.writeHead(200, { 'Content-Type' : 'application/json; charset=utf-8' });
    // 访问http://localhost:8060/,将会返回{"index":"欢迎来到首页"}
    if (pathname === '/') {
        res.end(JSON.stringify({ "index" : "欢迎来到首页" }));
    }
    // 访问http://localhost:8060/health,将会返回{"status":"UP"}
    else if (pathname === '/health.json') {
        res.end(JSON.stringify({ "status" : "UP" }));
    }
    // 其他情况返回404
    else {
        res.end("404");
    }
});
// 创建监听,并打印日志
server.listen(8060, function() {
    console.log('listening on localhost:8060');
});

异构服务

  • Maven依赖
<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-actuator</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-gateway</artifactId>
    </dependency>
    <dependency>
        <groupId>com.alibaba.cloud</groupId>
        <artifactId>spring-cloud-starter-alibaba-sidecar</artifactId>
    </dependency>
    <dependency>
        <groupId>com.alibaba.cloud</groupId>
        <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
    </dependency>
</dependencies>
  • 异构配置
server:
  port: 8070
spring:
  cloud:
    nacos:
      username: nacos
      password: nacos
      discovery:
        server-addr: 127.0.0.1:8848
        group: test
    gateway:
      discovery:
        locator:
          enabled: true

  application:
    name: node-service
sidecar:
  # 异构微服务的IP
  ip: 127.0.0.1
  # 异构微服务的端口
  port: 8060
  # 异构微服务的健康检查URL
  #health-check-url: http://localhost:8060/health.json
management:
  endpoint:
    health:
      show-details: always

总结

随着微服务越来越流行,跨语言之间调用越来越多,Restful OPEN API虽然提供了跨语言调用的一种方式,但是效率低,同时需要各语言来实现OPEN API规范,开发维护成本高。sidecar模块实现了零一种无侵入跨语言在微服务组件之间调用的机制。

版权声明:
作者:Joe.Ye
链接:https://www.appblog.cn/index.php/2023/03/27/spring-cloud-alibaba-2-1-1-new-features-sidecar-module-introduction/
来源:APP全栈技术分享
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
打赏
海报
Spring Cloud Alibaba 2.1.1 新特性Sidecar模块介绍
Sidecar简介 Spring Cloud Alibaba v2.1.1.RELEASE中增加了一个非常重要的新特性,对Spring Cloud Alibaba Sidecar模块支持。 该模块作为一个代理的服务来间接……
<<上一篇
下一篇>>
文章目录
关闭
目 录