文档章节

Spring Cloud Alibaba Sidecar 多语言微服务异构

冷冷gg
 冷冷gg
发布于 11/18 15:00
字数 462
阅读 967
收藏 11

Spring Cloud Alibaba Sidecar 介绍

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

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

使用入门

构建其他语言接口服务

  • 基于go 写个简单的服务接口

http://127.0.0.1:8089/sidecar

package main

import (
	"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: 8088
spring:
  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: 8087
spring:
  cloud:
    nacos:
      discovery:
        server-addr: localhost:8848
  application:
    name: nacos-consumer
  • consumer 逻辑
@RestController
@EnableDiscoveryClient
@SpringBootApplication
public 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

> 项目推荐: Spring Cloud 、Spring Security OAuth2的RBAC权限管理系统 欢迎关注

© 著作权归作者所有

冷冷gg

冷冷gg

粉丝 784
博文 141
码字总数 73534
作品 1
潍坊
UI设计师
私信 提问
加载中

评论(3)

不会写代码的小哥哥
spring cloud 不就都有这些功能么? 这个项目没发现有什么特别之处啊
冷冷gg
冷冷gg 博主
其他语言没有 负载均衡 短路保护 这些,或者比较老的JAVA 项目,可以通过sidecar 包装一下 作为 一个微服务模块体验到 负载均衡 短路熔断等功能
张寒枫
张寒枫
答非所问
Nacos发布0.5.0版本,轻松玩转动态 DNS 服务

© Dmitri Popov 阿里巴巴微服务开源项目Nacos于近期发布v0.5.0版本,该版本主要包括了DNS-basedService Discovery,对Java 11的支持,持续优化Nacos产品用户体验,更深度的与Spring Cloud体...

中间件小姐姐
2018/11/27
13
0
Spring Cloud Alibaba,中国 Javaer 的福音,为微服务续上 18 年

Java 界最近发生了一件大事,Spring Cloud 官方宣布阿里开源 Spring Cloud Alibaba,并推出首个预览版。 据介绍,Spring Cloud Alibaba 由阿里开源组件和阿里云产品组件两部分组成,其致力于...

h4cd
2018/11/22
13K
41
Nacos 发布 0.5.0 版本,轻松玩转动态 DNS 服务

阿里巴巴微服务开源项目Nacos于近期发布v0.5.0版本,该版本主要包括了DNS-basedService Discovery,对Java 11的支持,持续优化Nacos产品用户体验,更深度的与Spring Cloud体系的网关集成等方...

ddatsh
2018/11/22
1K
0
集齐三大核心功能,Nacos 发布 0.5.0 版本

Nacos 于近期发布v0.5.0版本,该版本主要包括了DNS-basedService Discovery,对Java 11的支持,持续优化Nacos产品用户体验,更深度的与Spring Cloud体系的网关集成等方面做了演进。至此,服务...

中间件小姐姐
2018/11/26
3
0
FEBS Cloud v1.1 发布,整合 Spring Cloud Alibaba

FEBS Cloud是一款使用Spring Cloud Greenwich.SR3、Spring Cloud OAuth2 & Spring Cloud Alibaba构建的低耦合权限管理系统,前端(FEBS Cloud Web)采用vue element admin构建。FEBS意指:F...

mrbird
09/22
944
0

没有更多内容

加载失败,请刷新页面

加载更多

5 分钟快速学习,缓存一致性优化方案!

缓存操作 读缓存 读缓存可以分为两种情况命中(cache hit)和未命中(cache miss): 缓存命中 首先从缓存中获取数据 将缓存中的数据返回 缓存未命中 首先从缓存中获取数据 此时缓存未命中,...

架构文摘
10分钟前
3
0
【从入门到放弃-ZooKeeper】ZooKeeper实战-分布式锁-升级版

设计 我们依然实现java.util.concurrent.locks.Lock接口。 和上一文中实现方式不同的是,我们使用ZooKeeper的EPHEMERAL_SEQUENTIAL临时顺序节点。 当首次获取锁时,会创建一个临时节点,如果...

阿里云官方博客
11分钟前
3
0
inner join 和 union all 做的汇总区别

inner join CREATE OR REPLACE VIEW M_INVENT_BARCODE_DIFF ASSELECT "INV_PART_NO","INV_ONHAND","INV_LOCATION","PART_NO","BAR_ONHAND","BAR_LOCATION"FROM (SELECT m.part_no AS......

donald121
18分钟前
4
0
EMC 设计经验总结

整体布局 1、高速、中速、低速电路要分开; 2、强电流、高电压、强辐射元器件远离弱电流、低电压、敏感元器件; 3、模拟、数字、电源、保护电路要分开; 4 、多层板设计,有单独的电源和地平...

demyar
21分钟前
2
0
支付宝高级Java现场面试35题:页锁+死锁+集群+雪崩+负载等

年底是冲刺大厂的良机,这个时间点大部分人都在观望年终奖与加薪幅度,看情况再伺机而动,人才市场的竞争反而没那么激烈。 获悉到支付宝近期有HC放出,我通过内推渠道,得到了支付宝的面试机...

mikechen优知
23分钟前
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部