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代码地址