Servicecomb介紹
ServiceComb 作爲 Apache 開源組織下的一款微服務框架,其前身爲華爲雲的 微服務引擎 CSE (Cloud Service Engine) 雲服務。它意味着國內一款微服務框架在華爲和 Apache 組織的共同努力下,隨着微服務市場的火爆,一定會讓越來越多的開發者所喜歡。(轉)
官方網站介紹
華爲將 ServiceComb 交給Apache 基金組織維護
下面是官網地址:
英文:http://servicecomb.incubator.apache.org/
中文:http://servicecomb.incubator.apache.org/cn/
ServiceComb 的開放性設計思想(轉)
- 編程模型和通信模型分離,不同的編程模型可以靈活組合不同的通信模型。應用開發者在開發階段只關注接口開發,部署階段靈活切換通信方式;支持 legacy 系統的切換,legacy 系統只需要修改服務發佈的配置文件(或者 annotation),而不需要修改代碼。現階段支持 SpringMVC、JAX-RS 和透明 RPC 三種開發方式。
- 內建 API-first 支持。通過契約規範化微服務開發,實現跨語言的通信,並支持配套的軟件工具鏈(契約生成代碼、代碼生成契約等)開發,構建完整的開發生態。
- 定義了常用的微服務運行模型,將微服務從發現到交互過程中的各種容錯手段都封裝起來。該運行模型支持自定義和擴展。
- ServiceComb 微服務解決方案
轉自官方介紹
入門demo
- 官網下載service-center,並啓動。
- 項目腳手架快速搭建
http://start.servicecomb.io/ - provider項目
microservice.yaml和service
APPLICATION_ID: start.servicecomb.io
service_description:
name: HelloServiceComb
version: 0.0.1
properties:
allowCrossApp: true
servicecomb:
handler:
chain:
Provider: {}
highway:
address: 0.0.0.0:9090
service:
registry:
address: http://127.0.0.1:30100
autodiscovery: false
@RpcSchema(schemaId = "sayHello")
public class RpcProvider implements RpcService {
@Override
public String helloServicecomb() {
return "helloServicecomb";
}
}
- consumer項目
APPLICATION_ID: start.servicecomb.io
service_description:
name: consumer
version: 0.0.1
properties:
allowCrossApp: true
servicecomb:
handler:
chain:
Provider: {}
highway:
address: 0.0.0.0:9091
service:
registry:
address: http://127.0.0.1:30100
autodiscovery: false
@Service
public class RpcServiceImpl{
// 從註冊中心獲取
// 從APPLICATION_ID獲取id;從service_description.name獲取name
// schemaId來自於服務提供者
@RpcReference(microserviceName = "start.servicecomb.io:HelloServiceComb", schemaId = "sayHello")
private RpcService rpcService;
public void helloServicecomb() {
System.out.println(rpcService.helloServicecomb());
}
}
- 測試調用
以上是Servicecomb基於rpc調用的快速入門,demo代碼地址