作者介绍:
李志信(github @laurencelizhixin),dubbo-go 3.0 负责人,Apache Dubbo PMC,来自阿里云中间件团队,从事 Go 语言中间件的研发和开源工作。
于雨 (github @AlexStocks),dubbo-go 社区负责人,Apache Dubbo PMC,蚂蚁集团可信原生部【TNT】基础设施和中间件研发一线程序员。工作十一年来陆续参与和改进过 Redis/Pika/Pika-Port/etcd/Muduo/Dubbo/dubbo-go/Sentinel-golang/Seata-golang 等知名项目。
牛学蔚(github @justxuewei),Apache Dubbo Committer,北邮计算机学院二年级研究生,对中间件、云原生领域有着浓厚的兴趣。
董剑辉(github @Mulavar),Apache Dubbo Committer,目前主要关注的开源方向为 Dubbo、Flink、Calcite。
如果你在为公司选择云原生解决方案,dubbogo 3.0 提供的 proxyless service mesh 也是一个很好的选择,它可以帮助你以最低的成本助你从微服务体系接入 istio 控制面。当然,dubbogo 的控制面能力还需要进一步加强,在未来的 3.1 版本中提供 proxyless 和 proxy 两套 service mesh 方案。
dubbo:registries:ZKRegistry: # 注册中心配置protocol: zookeeper # 注册中心类型address: 127.0.0.1:2181 # 注册中心配置protocols:triple: # 协议配置name: tri # 协议名port: 20000 # 服务端监听端口provider:services:GreeterProvider: # 服务提供者类名interface: com.dubbogo.sample.DemoServiceName # 接口 ID
dubbo: config-center: # 配置中心信息 protocol: nacos address: 127.0.0.1:8848 data-id: dubbo-go-samples-configcenter-nacos-server
// 1. 通过 Builder 模式创建配置中心的配置configCenterConfig := config.NewConfigCenterConfigBuilder(). SetProtocol("nacos").SetAddress("127.0.0.1:8848"). SetDataID("dubbo-go-samples-configcenter-nacos-server"). SetGroup("dubbogo"). Build()// 2. 通过 Builder 模式创建根配置rootConfig := config.NewRootConfigBuilder(). SetConfigCenter(configCenterConfig). Build()// 3. 加载配置并启动框架rootConfig.Load()
Dubbo-go 在上半年首次发布的 3.0.0-rc1 版本内已经支持 Triple 协议。在此期间,由合作方钉钉部门相关同学提出了较多针对响应时延、稳定性等优化建议。时至今日,在性能、用户使用体验、泛化调用、异常回传、PB反射等方面都进行了大量的优化工作。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
grpc_cli ls localhost:20000org.apache.dubbogo.samples.api.Greetergrpc.reflection.v1alpha.ServerReflection
$ go install github.com/dubbogo/tools/cmd/protoc-gen-go-triple@v1.0.5$ protoc --go_out=. --go-triple_out=. ./helloworld.proto
package org.apache.dubbo.quickstart.samples;
service UserProvider { rpc SayHello (HelloRequest) returns (User) {}}
message HelloRequest { string name = 1;}
dubbo: application: name: my-dubbogo-app
$ kubectl apply -f https://raw.githubusercontent.com/dubbogo/triple-pixiu-demo/master/deploy/pixiu-triple-demo.yml
namespace/dubbogo-triple-nacos createdservice/dubbo-go-nacos createddeployment.apps/dubbogo-nacos-deployment createddeployment.apps/pixiu createddeployment.apps/server createdservice/pixiu created
$ kubectl get svc -n dubbogo-triple-nacosNAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGEdubbo-go-nacos ClusterIP 192.168.123.204 <none> 8848/TCP 32spixiu LoadBalancer 192.168.156.175 30.XXX.XXX.XX 8881:30173/TCP 32s
$ curl -X POST -d '{"name":"laurence"}' http://30.XXX.XXX.XX:8881/dubbogoDemoServer/org.apache.dubbo.laurence.samples.UserProvider/SayHello{"name":"Hello laurence","id":"12345","age":21}
作为一个能力功能非常丰富的服务平台,dubbogo 社区很重视与各大开源社区特别是阿里系开源产品社区以及各个公司的合作。
Nacos 社区
早期 Dubbo-go 社区就与 Nacos 社区展开密切合作,由多位核心贡献者参与 Dubbo-go 研发支持中,在 3.0.0 版本中,增加了多位 Nacos 社区成员,在社区迭代中作出了许多建设性的建议和贡献。
Polaris 社区
北极星(Polaris)是腾讯开源的服务发现和治理中心,致力于解决分布式或者微服务架构中的服务可见、故障容错、流量控制和安全问题。在 3.0.0 版本的开发中,Dubbo-go 社区与 Polaris 社区展开合作,实现了把 Polaris 作为 dubbo-go 的注册中心。
Sentinel-Golang 社区
Sentinel 是面向分布式服务架构的流量控制组件,在Sentinel-Golang 首个版本 0.1.0 正式发布后,Dubbo-go 社区就与 Sentinel-Golang 社区展开密切合作,在功能上支持 Sentinel-Golang 作为流量控制。
Seata-golang 社区
从 dubbogo v1.3 开始, 就集成了 seata-golang,实现了 TCC 模式分布式事务的调用。
两个社区现已合作将 TCC 模式 seata-golang 集成到了 dubbo-go-pixiu 中,只需要简单的配置、就能集成 TCC 模式协调分布式事务的方案,整体流程原理见上图。为了进一步降低大家使用分布式事务的门槛,seata-golang 社区也在考虑将 AT 模式做到 DB 代理层,届时在 dubbo-go-pixiu 中使用 seata-golang 会更加方便,敬请期待。
其他公司
dubbogo 本身是一个有着极高生产环境需求的项目,在发展过程中与阿里等很多公司有过合作。这些合作使得双方都有收益,dubbogo 的质量得以保证,功能得以拓展,合作方自身的平台稳定性得到极大提升。
点击阅读原文查看详情!