「里程碑」1.0.0版本正式發布—Apache ServiceComb(incubating)

「里程碑」1.0.0版本正式發佈—Apache ServiceComb(incubating)

近日,正在Apache基金會孵化項目—微服務解決方案Apache ServiceComb(incubating) 的1.0.0版本通過社區投票,正式發佈。這次發版的項目包括 Apache ServiceComb Java-Chassis (以下簡稱 Java-chassis)以及Apache ServiceComb ServiceCenter (以下簡稱ServiceCenter)。

ServiceComb從2017年12月進入Apache基金會孵化至今半年時間內,一步一個腳印,於2018年3月發佈1.0.0-m1版本、2018年6月1.0.0-m2發佈版本,並於2018年8月完成了1.0.0里程碑版本的發佈。當前,已經有10+企業使用了ServiceComb 進行商用,社區參會10+次,舉辦3場Meetup。本次的1.0.0版本發佈,是里程碑式的,相信在各用戶和開發者的共同努力下,未來ServiceComb 將穩步健康的發展下去。

主要新增特性及提升如下

Java-chassis

https://github.com/apache/incubator-servicecomb-java-chassis

  1. 全新的監控指標(Metrics)模塊,增加大量監控指標,支持Prometheus集成。詳情請參考Metrics介紹 [1]和如何集成Prometheus [2]
  2. 重構配置中心,支持對接攜程Apollo作為配置中心,並且可以方便的擴展對接其它三方配置中心。詳情請參考配置中心選型與對接 [3]
  3. POJO編程模型支持用戶使用CompletableFuture異步編程。詳情請參考使用透明RPC方式開發服務消費者 [4]中“reactive”部分。
  4. POJO編程模型支持用戶使用Object和Generic類型作為調用參數。詳情請參考接口定義和數據類型 [5]
  5. 升級Zipkin到Zipkin2,同時支持v1和v2版本Zipkin server。關於如何在ServiceComb中使用Zipkin請參考分佈式調用鏈追蹤 [6]
  6. 微服務間通訊提供文件流傳輸能力,支持音樂、圖片等多媒體場景。如何使用文件流傳輸請參考文件上傳 [7]和文件下載 [8]
  7. 在服務級別QPS控制基礎上,新增支持API級別QPS控制。現在支持使用servicecomb.flowcontrol.Consumer.qps.limit.[ServiceName].[Schema].[operation]配置API級別QPS控制。
  8. 增加腳手架和start.servicecomb.io,支持用戶快速構建工程,提供完整的開箱即用能力。現在創建一個ServiceComb微服務可以通過Apache Maven Archetype方式快速構建,更多詳細內容請參考ServiceComb Java Chassis Archetypes [9],您也可以直接訪問start.servicecomb.io [10]使用ServiceComb集成SPRING INITIALIZR UI的方式創建。
  9. 新增演示如何使用Gradle構建ServiceComb項目。我們在BMI [11]項目中增加了Gradle配置。
  10. 異步編程模型支持AsycRestTemplate。關於如何使用請參考使用AsynRestTemplate開發服務消費者 [12]
  11. 新增支持Http2協議。關於如何使用請參考使用Http2通信 [13]
  12. 實現錯誤注入接口,允許通過攔截服務請求構造異常場景,例如可以設置發往指定微服務的請求的時延和錯誤及其觸發概率。更多詳細內容請參考故障注入 [14]
  13. 新增服務Dev運行模式,開啟Dev模式時,支持契約動態修改。如何設置Dev運行模式請參考本地開發和測試 [15]中的“通過設置環境信息方便本地調試”部分。
  14. 實現優雅停機,關閉服務時進行反註冊,確保完成已接受請求並完整釋放資源。
  15. 擴展微服務公私鑰認證機制,增加了黑白名單功能。ServiceCenter已經支持通過黑白名單控制微服務的註冊發現,但是由於微服務之間最終是直連調用,因此微服務本身也需要有獨立的黑白名單認證功能,如何設置請參考公鑰認證 [16]中的“配置黑白名單”部分。
  16. 支持Cross-Origin Resource Sharing (CORS)。即支持跨域請求訪問設置,例如現在Ajax可以直接訪問微服務了,更多詳細內容請參考CORS機制 [17]
  17. 擴展了Rest Endpoint的Access Log機制。以前用戶只能設置Access Log的Pattern,現在用戶可以進一步自定義Access Log Item,更多內容請參考Access Log配置 [18]
  18. 部署在Tomcat等Web容器中的微服務,現在支持結合context path和servlet pattern的訪問路徑請求服務。例如調用路徑為cse://service/a/b...,部署在Tomcat等Web容器中後也支持以cse://service/{context path}/{servlet pattern}/a/b...為URL訪問。
  19. 缺省自動掃描main函數所在包,簡化用戶配置。
  20. 提供客戶端ping機制,能夠通過ping擴展,檢測客戶端緩存實例是否可用。該功能默認啟用,配合實例隔離功能對檢測失敗的實例進行隔離。
  21. 當微服務發生服務降級,實例隔離熔斷等狀況時,將觸發相應的Event,便於第三方集成(上報)。如何獲取這類Event請參考獲取熔斷與實例隔離告警事件 [19]
  22. SpringMVC編程模型現在同樣支持類對象作為參數。用戶可以使用類對象作為參數,例如:

@RequestMapping("/address")

public String address(Address address) { ... }

public class Address {

String country;

String city;

}

將會自動轉化為/address?city={city}&country={country}。


ServiceCenter

https://github.com/apache/incubator-servicecomb-service-center

「里程碑」1.0.0版本正式發佈—Apache ServiceComb(incubating)

1) 主要新增瞭如下特性

  • PACT Broker共享契約支持
  • 支持AsycRestTemplate異步編程
  • 日誌分割(Log Rotation)
  • 支持IPv6
  • 支持後端存儲拓展
  • 契約測試:支持使用前端對Swagger API進行測試。詳情請參考[20]
  • 消費者服務自發現

2)穩定性提升及bug fix。

3)優化API接口,顯著提高性能。

4)優化Restful 客戶端及插件加載器,提升易用性。

5)無縫集成metrics 及tracing 工具,提升監控能力。

6)增加了默認的TLS加密套件,提升基於規則的服務發現的安全性。

7)服務依賴管理採用事件驅動機制。

8)提升ETCD鏈接的彈性伸縮能力和自我修復能力。

9)Service-Center 支持在多基礎設施中部署。

10)優化前端界面UI,提供更多功能及提升易用性。

下載地址

Service-Center:

http://servicecomb.incubator.apache.org/release/service-center-downloads/

Java-chassis:

http://servicecomb.incubator.apache.org/release/java-chassis-downloads/

參考詳情鏈接地址

[1] http://docs.servicecomb.io/zh_CN/general-development/metrics.html

[2] http://servicecomb.incubator.apache.org/cn/users/metrics-integration-with-prometheus-in-1.0.0-m1/

[3] http://servicecomb.incubator.apache.org/cn/docs/config_center_integration/

[4] http://docs.servicecomb.io/zh_CN/build-consumer/develop-consumer-using-rpc.html

[5] http://docs.servicecomb.io/zh_CN/build-provider/interface-constraints.html

[6] http://servicecomb.incubator.apache.org/cn/docs/tracing-with-servicecomb/

[7] http://docs.servicecomb.io/zh_CN/general-development/file-upload.html

[8] http://docs.servicecomb.io/zh_CN/general-development/file-download.html

[9] https://github.com/apache/incubator-servicecomb-java-chassis/blob/master/archetypes/README.md

[10] http://start.servicecomb.io/

[11] https://github.com/apache/incubator-servicecomb-java-chassis/tree/master/samples/bmi

[12] http://docs.servicecomb.io/zh_CN/build-consumer/using-AsyncRestTemplate.html

[13] http://docs.servicecomb.io/zh_CN/build-provider/protocol/http2.html

[14] http://docs.servicecomb.io/zh_CN/build-consumer/fault-injection.html

[15] http://docs.servicecomb.io/zh_CN/general-development/local-develop-test.html

[16] http://docs.servicecomb.io/zh_CN/references-handlers/publickey.html

[17] http://docs.servicecomb.io/zh_CN/general-development/CORS.html

[18] http://docs.servicecomb.io/zh_CN/build-provider/access-log- configuration.html

[19] http://docs.servicecomb.io/zh_CN/general-development/AlarmEvent.html

[20] http://servicecomb.incubator.apache.org/docs/service-center-ui/

ServiceComb相關資料

官方網站:

http://servicecomb.incubator.apache.org/

加入社區:

https://servicecomb.incubator.apache.org/cn/docs/join_the_community

JIRA:

https://issues.apache.org/jira/browse/SCB

ServiceComb Java-Chassis:

https://github.com/apache/incubator-servicecomb-java-chassis

ServiceComb Saga:

https://github.com/apache/incubator-servicecomb-saga

ServiceComb ServiceCenter:

https://github.com/apache/incubator-servicecomb-service-center

點擊左下角“瞭解更多”,給SeriveComb加個Star


分享到:


相關文章: