成人免费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微服務服務器

2017-06-26 09:06:10

Spring Clou微服務架構

2024-08-05 10:03:53

2024-07-10 10:51:39

SpringEureka數據中心

2023-12-19 09:33:40

微服務監控

2017-09-04 16:15:44

服務網關架構

2024-11-21 16:09:22

2021-10-19 14:02:12

服務器SpringSecurity

2017-12-20 15:37:39

Spring Clou微服務架構

2017-07-03 09:50:07

Spring Clou微服務架構

2017-08-10 11:15:05

Spring Clou微服務架構

2017-08-09 15:50:47

Spring Clou微服務架構

2024-08-09 10:59:01

KubernetesSidecar模式
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 黄页网址在线观看 | 99精品久久久 | 久久久免费少妇高潮毛片 | 午夜电影在线播放 | 欧美激情视频一区二区三区在线播放 | 日韩精品 | 99久久精品免费看国产高清 | 亚洲一区二区久久久 | 亚洲成人综合社区 | 日韩中文字幕一区二区 | 亚洲精品丝袜日韩 | 国产精品成人免费 | 日批免费在线观看 | 九九亚洲精品 | 这里精品 | 新91| 欧美日韩在线成人 | 中文字幕在线剧情 | 你懂的国产| 欧美日韩高清免费 | 欧美xxxx在线| 午夜免费精品视频 | 亚洲91精品 | 99热热热热| 日屁网站 | 91九色麻豆 | 欧美一二三区 | 日本不卡一区 | 国产精品一区二区在线播放 | 综合色播 | av在线电影网站 | 中文字幕亚洲视频 | 亚洲午夜精品一区二区三区他趣 | 精品91| 精品国产欧美一区二区三区成人 | 亚洲 欧美 日韩在线 | 国产一级在线观看 | 日韩亚洲一区二区 | 日韩区| 日韩国产精品一区二区三区 | 在线伊人网|