What‘s new in dubbo-go v1,超通俗解析

go run . -proConf …/profiles/dev/server.yml -logConf …/profiles/dev/log.yml




服务消费方:



go run . -conConf …/profiles/dev/client.yml -logConf …/profiles/dev/log.yml




相关 pr [https://github.com/apache/dubbo-go/pull/1039](

),由南京信息工程大学大三学生 陈家鹏实现。



[](

)4\. 自定义加载 ServerConfig 和 ReferenceConfig

-------------------------------------------------------------------------------------------------------------



新增 ConfigPostProcessor 接口,用户可以依据该接口提供两个的方法,在部署 dubbogo 服务时加载自定义的配置。



// 服务提供方配置

PostProcessServiceConfig(*common.URL)

// 服务消费方配置

PostProcessReferenceConfig(*common.URL)




相关 pr  [https://github.com/apache/dubbo-go/pull/943](

),由即将奔五十的 dubbo chairman 北纬亲自操刀实现,chairman 同志老当益壮,号召大家向 chairman 筒子学习。



[](

)5\. 扩展 URL 的比较

-----------------------------------------------------------------------------------



在common/url.go里面提供 CompareURLEqualFunc,可以让用户自定义 URL 比较,提高比对效率。相关技术细节见如下链接。



> common/url.go:  

> [_https://github.com/apache/dubbo-go/pull/854/files#diff-5111f14762c010c3029a67743796fea97ab1015d35c96670a4cfa25f30145464_](

)



目前的 URL 实现并未达到最终状态。未来的 dubbogo 3.x 版本中,将借鉴 dubbo 的 URL 实现,将 common.URL 拆分为ServiceConfigURL、ServiceAddressURL和InstanceAddressURL,分别对应配置中心、注册中心和元数据中心的 schema,尽量将变更压力降低到最低粒度。



该功能对应的 pr  https://github.com/apache/dubbo-go/pull/854 由阿里双十一中间件大队长展图同学实现。展图同学一直奋战在编程一线。



[](

)6\. 注册中心优化

-------------------------------------------------------------------------------



复用了 zookeeper 链接以及优化了服务发现中心逻辑,大大减少了与 zookeeper 的 tcp 链接数目,减少了使用的 goroutine 数目,降低了 dubbo-go 的内存占用量。



我们会把同样的逻辑服用到 nacos、etcd、consul 等各个注册中心,通过减少 goroutine 数目,减轻注册中心压力,并减少 consumer 和 provider 内存的使用。



该功能对应的 pr https://github.com/apache/dubbo-go/pull/1010 由现在蚂蚁中间件工作的 王文学 同学在涂鸦工作时实现。



[](

)7. API 形式进行配置

----------------------------------------------------------------------------------



以前版本的 dubbogo 只提供了从配置文件读取配置选项,该功能增加以 API 的方式进行配置,用户可以通过调用相关 API 初始化配置。



用户可以通过 API 进行相关参数设定,无需再加载配置文件。



可以参考示例: [_https://github.com/apache/dubbo-go-samples/tree/master/config-api_](

)



相关 pr https://github.com/apache/dubbo-go/pull/1020 也是由李志信实现。



[](

)8. grpc 优化

-------------------------------------------------------------------------------



*   打通 dubbo-go中 consumer config 的超时时间 connect\_timeout 和 gRPC server 的超时时间,用户可以自定义 gRPC 超时时间机制。



connect timeout

connect_timeout: “3s”

application config

application:

organization: “dubbo.io”

name: “GreeterGrpcConsumer”

module: “dubbo-go greeter grpc client”

version: “0.0.1”

environment: “dev”




*   将处理注册中心服务变更事件的机制改为同步,防止 provider 端服务频繁重启导致上下线事件处理顺序出错。

    

*   使用 gRPC 协议时,异步等待 dubbo-go 的 service 都暴露完后,才将所有 dubbo-go service 对应的 gRPC service 注册到 gRPC server 上并启动 gRPC server。以此修复 provider 端的只能注册一个 service 的问题。

    



总体功能由 https://github.com/apache/dubbo-go/pull/1056 等多个 pr 构成,由 All In 了 dubbogo 的 上海识装信息科技有限公司【知名 APP 得物所在公司】工程师 柯瞻、 dubbogo 社区负责人 于雨、阿里工程师云兴 以及 南京某公司的张天同学 共同负责实现。



# 总结

上述知识点,囊括了目前互联网企业的主流应用技术以及能让你成为“香饽饽”的高级架构知识,每个笔记里面几乎都带有实战内容。

**很多人担心学了容易忘,这里教你一个方法,那就是重复学习。**

打个比方,假如你正在学习 spring 注解,突然发现了一个注解@Aspect,不知道干什么用的,你可能会去查看源码或者通过博客学习,花了半小时终于弄懂了,下次又看到@Aspect 了,你有点郁闷了,上次好像在哪哪哪学习,你快速打开网页花了五分钟又学会了。

**[CodeChina开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频】](

)**

从半小时和五分钟的对比中可以发现多学一次就离真正掌握知识又近了一步。

![](https://img-blog.csdnimg.cn/img_convert/74d24afd64985fa941a5b4ead0a68717.png)

人的本性就是容易遗忘,只有不断加深印象、重复学习才能真正掌握,所以很多书我都是推荐大家多看几遍。哪有那么多天才,他只是比你多看了几遍书。
*[CodeChina开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频】](

)**

从半小时和五分钟的对比中可以发现多学一次就离真正掌握知识又近了一步。

[外链图片转存中...(img-EVp4KYsv-1631187715648)]

人的本性就是容易遗忘,只有不断加深印象、重复学习才能真正掌握,所以很多书我都是推荐大家多看几遍。哪有那么多天才,他只是比你多看了几遍书。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值