成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Sidecar模式助力Spring Cloud,實現跨語言微服務高效協同

開發 架構
Spring Cloud Alibaba Sidecar(以下簡稱:SCA Sidecar)能夠有效地整合異構微服務,解決在微服務架構中由于技術棧、語言或平臺差異導致的兼容性和通信問題。在什么場景下需要使用Sidecar呢?

環境:SpringBoot2.7.18 + Spring Cloud Alibaba Sidecar

1. 簡介

Spring Cloud Alibaba Sidecar(以下簡稱:SCA Sidecar)能夠有效地整合異構微服務,解決在微服務架構中由于技術棧、語言或平臺差異導致的兼容性和通信問題。在什么場景下需要使用Sidecar呢?以下總結4點:

  • 多語言微服務整合:當微服務架構中涉及多種編程語言和框架時,Spring Cloud Alibaba Sidecar可以作為代理服務,實現不同語言微服務之間的通信和協調。
  • 跨平臺服務集成:對于部署在不同平臺或容器化環境中的微服務,Sidecar能夠提供一個統一的接口和協議,簡化跨平臺的服務調用和集成。
  • 服務治理與監控:Sidecar可以協助實現服務的注冊與發現、負載均衡、熔斷降級等治理功能,并提供統一的監控和日志收集機制,提高系統的可觀測性。
  • 老項目整合:那些由于版本限制或其他原因不適合引入整個如Nacos這樣的注冊中心的項目,Spring Cloud Alibaba  Sidecar成為了一個非常合適的解決方案。通過使用Sidecar,解決了老項目在微服務化過程中的兼容性和集成難題。

2. SCA SideCar原理

  • SCA Sidecar根據配置的異構微服務的IP、端口等信息,將異構微服務的IP/端口注冊到服務發現組件上 。
  • SCA Sidecar實現了 健康檢查 ,SCA Sidecar會定時檢測異構微服務是否健康。如果發現異構微服務不健康,SCASidecar會自動將代表異構微服務的SCASidecar實例下線;如果異構微服務恢復正常,則會自動上線。

使用要求:

  • 【必須】你的異構微服務需使用HTTP通信。這一點嚴格來說不算要求,因為Spring Cloud本身就是基于HTTP的;
  • 【可選】如果微服務配置了 sidecar.health-check-url ,則表示開啟健康檢查,此時,你的異構微服務需實現健康檢查(可以是空實現,只要暴露一個端點,返回類似 {"status": "UP"} 的字符串即可)。

3. 實戰案例

3.1 準備異構項目

為了簡單起見,我也不用其它語言實現一個服務了,還是用SpringBoot項目做試驗,大家可以使用其它語言如:NodeJS,C#等語言實現。

該服務非常簡單就提供一個業務接口,和一個健康檢查所需要的接口,如下:

業務接口

@RestController
@RequestMapping("/users")
public class UsersController {
  
  @GetMapping("normal")
  public Object index() {
    return "正常請求" ;
  }
}

健康檢查接口

該接口的作用:上線 / 下線 該異構服務(我這當前就是SpringBoot服務)。

@RestController
@RequestMapping("/health")
public class HealthController {
  
  @GetMapping("")
  public Object health() {
    // 該打印是為了一會測試看效果
    System.out.println("服務狀態...") ;
    Map<String, Object> status = new HashMap<>() ;
    // 注意:這里必須是status,value必須是大寫的UP
    status.put("status", "UP") ;
    return status ;
  }
}

配置文件

server.port=8080

該異構服務并沒有依賴Spring Cloud相關的任何組件就是一個非常普通的項目。

3.2 準備Sidecar服務

引入依賴

<dependency>
  <groupId>com.alibaba.cloud</groupId>
  <artifactId>spring-cloud-starter-alibaba-sidecar</artifactId>
</dependency>

服務配置

spring:
  application:
    name: pack-car
---
spring:
  cloud:
    nacos:
      server-addr: localhost:8848
      username: nacos
      password: xxxooo
      discovery:
        enabled: true
        group: cloudApp
---
management:
  health:
    sidecar:
      enabled: true
---
# 這里的配置就是我們異構服務的相關信息
sidecar:
  ip: localhost
  port: 8088
  # 間隔多久進行一次監控檢查,單位ms
  health-check-interval: 5000
  # 監控檢查的URL,上面3.1中定義的接口
  health-check-url: http://${sidecar.ip}:${sidecar.port}/health

以上就做完了關于Sidecar服務的所有工作,我們只需要配置不需要任何的代碼。  注意:上面配置的nacos服務發現端口和ip都會被修改為Sidecar配置的ip及端口,Sidecar內部實現的,有興趣可以研究下源碼非常簡單。

接下來就可以分別啟動上面兩個服務測試,我們首先啟動Sidecar服務,控制臺將輸出如下信息:

圖片

請求了我們的異構服務,但是我們的異構服務并沒有啟動所以是失敗狀態。

啟動異構服務,再次查看Sidecar控制臺輸出

圖片

成功了,再查看異構服務控制臺

圖片圖片

查看Nacos控制臺

圖片圖片

成功注冊異構服務,注意查看端口。

3.3 調用異構服務接口

接下來我們還需要一個服務,該服務也需要注冊到nacos中,然后我們在這個服務中調用異構服務接口。

相關的依賴配置就不說了非常簡單,下面我們就看能否通過服務發現成功調用異構服務的接口。

該服務的服務名為

spring.appliation.name=myapp
server.port=8100

啟動服務查看服務是否成功注冊到Nacos

圖片圖片


服務成功注冊。

配置RestTemplate

@Bean
@LoadBalanced
RestTemplate lbRestTemplate(RestTemplateBuilder builder) {
  return builder.build() ; 
}

通過RestTemplate調用上異構服務/users接口。

@Resource
private RestTemplate lbRestTemplate ;


@GetMapping("/lb")
@ResponseBody
public Object lb() {
  // 通過服務名請求
  return this.lbRestTemplate.getForObject("http://pack-car/users/normal", String.class) ;
}


圖片圖片

請求成功。

到此就完成了通過Sidecar整合異構系統。

責任編輯:武曉燕 來源: Spring全家桶實戰案例源碼
相關推薦

2022-07-13 13:34:30

微服務邊車SideCar

2020-06-30 07:58:39

微服務Spring BootCloud

2017-09-05 14:05:11

微服務spring clou路由

2023-03-20 08:00:00

公共云開發Spring Clo

2021-12-14 06:59:39

微服務Kubernetes架構

2024-02-06 18:05:54

微服務SpringCloud

2018-06-01 23:08:01

Spring Clou微服務服務器

2024-08-05 10:03:53

2017-06-26 09:06:10

Spring Clou微服務架構

2023-12-19 09:33:40

微服務監控

2024-07-10 10:51:39

SpringEureka數據中心

2017-09-04 16:15:44

服務網關架構

2024-11-21 16:09:22

2017-07-03 09:50:07

Spring Clou微服務架構

2017-08-10 11:15:05

Spring Clou微服務架構

2017-08-09 15:50:47

Spring Clou微服務架構

2021-10-19 14:02:12

服務器SpringSecurity

2017-12-20 15:37:39

Spring Clou微服務架構

2024-08-09 10:59:01

KubernetesSidecar模式
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美在线视频二区 | 欧美精品第三页 | 91精品国产日韩91久久久久久 | 欧美一区二区三区精品 | 在线免费观看黄a | 337p日本欧洲亚洲大胆精蜜臀 | 午夜精品三区 | 亚洲一区| 国产综合精品一区二区三区 | 亚洲欧美激情网 | 日韩中出 | 亚洲成a| 久久精品国产亚洲一区二区三区 | 免费黄色在线 | 欧美黑人一区二区三区 | 成人一区二区在线 | 欧美一级免费看 | 亚洲国产欧美精品 | 天天曰夜夜 | 一级毛片在线播放 | 日本小电影在线 | 香蕉久久久 | 99精品免费视频 | 国内自拍偷拍一区 | 欧美性猛交一区二区三区精品 | 国产91色在线 | 亚洲 | 亚洲综合在线一区二区 | 黄色精品视频网站 | 一区二视频| 国产精品久久久久久久久久免费看 | 成年人在线播放 | 一区二区三区国产 | 久久亚洲精品视频 | 夜夜夜夜夜夜曰天天天 | 在线不卡| 欧美精品乱码久久久久久按摩 | 日韩在线欧美 | 久久国产成人精品国产成人亚洲 | 国产成人免费视频网站视频社区 | 91操操操 | 人人鲁人人莫人人爱精品 |