ServiceComb微服務框架

一、ServiceComb的概述

ServiceComb作爲Apache開源組織下的一款微服務框架,其前身爲華爲雲的微服務引擎CSE(Cloud Service Engine) 雲服務。

解決方案級,多語言、多通信協議、標準服務契約、事務最終一致性開源開放,擁抱SpringBootSpringCloudServiceMesh 等主流生態,低門檻准入,業務侵入度低,架構鬆耦合。

ServiceComb的優勢:國內政府部門有的會選擇華爲雲,使用ServiceComb開發可以快速優雅的部署到華爲雲的的pass平臺上。至於ServiceComb支持RPC調用,REST難道不香嗎?CSE註冊中心中的服務契約提供的類似swagger和接口測試功能,倒是挺好用的。

缺點:由於ServiceComb的特性,遇到bug的可能百度很難解決。在SpringCloud F版後,SpringCloud的功能更強大了,普及度方面SpingCloud也更多人使用。

二、服務中心CSE的介紹

在這裏插入圖片描述
CSE的架構和Eureka很像,經過使用後,可以發現CSE的自我保護機制比Eureka還要嚴重。

下載安裝CSE的安裝包:apache-servicecomb-service-center-1.3.0-windows-amd64.tar.gz,解壓文件目錄如下:
在這裏插入圖片描述

三、Restful方式開發

完整代碼參考:https://github.com/hucheng1997/servicecomb

①添加依賴

父工程依賴:(這裏選擇1.x版本的springboot,2.x版本會遇到意料之外的錯誤!)

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.5.12.RELEASE</version>
    <relativePath/>
</parent>
<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.apache.servicecomb</groupId>
            <artifactId>java-chassis-dependencies</artifactId>
            <version>1.3.0</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

providerconsumer工程的依賴如下:

<!--做參數校驗的-->
<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-validator</artifactId>
</dependency>
<dependency>
    <groupId>org.apache.servicecomb</groupId>
    <artifactId>spring-boot-starter-provider</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

②添加配置文件
這裏配置文件只能爲microservice.yaml,這是ServiceComb的硬性規定:

APPLICATION_ID: hucheng #一般填公司的名稱
service_description:
  name: servicecomb-provider #微服務名
  version: 0.0.1 #版本
  environment: development #環境
  properties:
    allowCrossApp: false #不允許跨App訪問服務
  rest:
    address: 0.0.0.0:81 #服務端口
  service:
    registry:
      address: http://127.0.0.1:30100 #註冊中心的位置

③主啓動上添加註解@EnableServiceComb

④Provider代碼及說明
在這裏插入圖片描述
⑤Consumer調用代碼
使用RestTemplate遠程調用服務
在這裏插入圖片描述
⑥測試
使用註冊中心中的服務契約進行測試
在這裏插入圖片描述

四、RPC方式開發

@RestSchema註解換成@RpcSchema即可

五、ServiceComb服務治理方案

①負載均衡

使用了ServiceComb框架的微服務即自帶了負載均衡功能,無需任何配置。

②限流策略

添加依賴:

<dependency>
      <groupId>org.apache.servicecomb</groupId>
      <artifactId>handler-flowcontrol-qps</artifactId>
  </dependency>

添加配置:

servicecomb:
  flowcontrol:
    Provider:
      qps:
        limit:
          gateway: 100 #限流每秒QPS次數的限制

③熔斷

添加依賴:

<dependency>
    <groupId>org.apache.servicecomb</groupId>
    <artifactId>handler-bizkeeper</artifactId>
</dependency>

添加配置:

servicecomb:
   circuitBreaker: 
   	provider: 
   	shicifang-qa:
requestVolumeThreshold: 1
  fallbackpolicy:
    provider:
      policy: returnnull #容錯策略
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章