Dubbo-go 团队近期发布了 Dubbo-go v1.5.1,Dubbo-go 是 Apache Dubbo 项目的 Go 实现。
根据团队的介绍,虽然 v1.5.1 是 v1.5 的一个子版本,但相比于 v1.5.0, 社区还是投入了很大人力添加了如下重大改进。
1 应用维度注册模型
在新模型 release 后,团队发现 Provider 每个 URL 发布元数据都会注册 ServiceInstance,影响性能需要优化。
优化方案是: 去除 ServiceDiscoveryRegistry 中注册 ServiceInstance 的代码,在 config_loader 中的loadProviderConfig 方法的最后注册 ServiceInstance 具体步骤: 1、获取所有注册的 Registry,过滤出 ServiceDiscoveryRegistry,拿取所有 ServiceDiscovery。 2、创建 ServiceInstance。 3、每个 ServiceDiscovery 注册 ServiceInstance。
保证 Provider 在注册成功之后,才暴露元数据信息。
2 支持基于 Seata 的事务
基于 Seata 扩展实现。通过增加过滤器,在服务端接收 xid 并结合 seata-golang 达到支持分布式事务的目的。 从而使 Dubbo-go 在分布式场景下,让用户有更多的选择,能适应更多的个性化场景。
开发团队在 dubbo-samples 中给出了 事务测试用例 。<