我在公司里用 Go 给 Dubbo 写中间件

作者小楼,目前在国内出行巨头做中间件开发。

Dubbo是国内电商巨头阿里巴巴,于2011年开源的一款RPC框架,使用的开发语言是 Java。一般公司在规模达到一定程度,单体应用无法支撑业务发展时,会选择微服务架构,这时就需要一个好用的RPC框架。类似Dubbo的竞品如 Spring Cloud 在2014年开源,微博的 Motan 在2017年开源,跨语言的 gRPC 在2015年开源,Thrift 2007 年开源。

这些RPC框架中只有Thrift 比它早,但Thrift只是个单纯的RPC框架,Dubbo则包含了开箱即用的服务治理能力,如服务注册与发现、负载均衡、容错、动态配置等等。可以说早期RPC框架没得选,开发也得用Java语言。就算到了RPC框架百花齐放的时代,这么多公司的使用加上阿里的背书,Dubbo也有它的一席之地。

当一个公司选择了Java编程语言和Dubbo框架,后来又想尝试Go,或者一些新业务、新部门想尝试Go时,他们就面临了一个难题,Go如何跟JavaDubbo通信。由于Dubbo协议是私有协议,用Go重新实现一遍的代价还是挺大。于是Dubbo-Go应运而生,Dubbo-Go官方对这个项目的介绍也阐述了项目的技术价值:

Apache Dubbo Go 语言实现,架起 Java 和 Golang 之间的桥梁,与 gRPC/Dubbo 生态互联互通,带领 Java 生态享受云原生时代的技术红利。

我再通俗地翻译一下:一个公司或部门内有人用JavaDubbo,有人用Go,这两者需要通信,于是就有了Dubbo-Go,用来解决通信问题。

我本人数学本科毕业,开始在小厂做PHP开发,后来去了杭州一家独角兽公司呆了5年,从PHP转到了Java,也从业务开发转向了后端基础架构,目前在某出行巨头公司做中间件开发工作,技能树又点上了Go。陆续改进过Dubbo/Nacos/Sentinel/SkyWalking等开源项目。

如果你有这方面的问题,可以一起探讨,也欢迎关注我的微信公众号

我写了很多关于Dubbo的文章,比如:

《Dubbo网关演进之路》

《小白也能看懂的Dubbo应用级服务发现》

《Dubbo为什么用Go重写?》

更多见Dubbo杂谈合集

写这些博客的初衷也是记录一些排查问题的过程,像下面这些,一个个都是血泪史:

当然我还写了很多其他干货文章,很多都被各大平台相继转载:

目前我也在整理一些学习资料,关注公众号回复关键字「资料」送你一些我觉得还不错的pdf电子书。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值