GoRPC101
内容简介
微服务框架是微服务架构的重要基石,业界有非常多的微服务框架,Go简单优雅的设计吸引了很多企业的注意力,相关的框架也层出不穷,Google的grpc-go、字节跳动的KiteX、B站的Kratos、Alibaba的dubbo-go、腾讯暂未开源的trpc-go以及go-neat、going等等,一个框架最终能否被广泛接受,除了整体的架构设计、扩展性是否优秀,也与其编码实现时对语言、系统的精湛掌控、性能优化、代码质量(代码规范、可读性、可测试性)、配套工具、文档完善度、生态丰富度、良好的社区运营有很重要关系。
作者在腾讯长期从事微服务框架建设相关的工作,在这个过程中收获很大。遗憾的是这些有价值的知识,零零散散地以个人感悟、项目文档、经验分享的形式散落在网络的各个角落,故作者决定整理框架建设背后的故事,并力求给读者还原一个真实的微服务框架从0到1建设的完整过程,希望读者能从中学到技术,也能收获开源项目管理的相关经验。
截止2024.1.22,腾讯微服务框架trpc已经开源了cpp, go, java版本,详见:https://github.com/trpc-group。
读者对象
本书读者对象,包括但不限于:
- gophers,书中有很多go标准库使用、性能优化的案例;
- 微服务框架开发人员,书中介绍了微服务框架的核心设计思想、技术细节;
- 想了解框架建设过程的读者,书中尽可能还原了从0到1开发框架的故事全景;
- 对开源项目维护感兴趣的读者,书中介绍了框架建设、推广、维护过程中的经验;
- 对代码质量感兴趣的读者,书中介绍了如何系统性保证代码质量的经验;
本书特色
市面上介绍Go语言基础、微服务架构、grpc微服务框架应用的书籍有很多,但是从0到1讲述微服务框架诞生背后那些事的书籍几乎是空白。
业界有非常多的微服务框架,Go优秀的并发处理能力降低了微服务框架设计的门槛,微服务框架层出不穷,但是几乎没有书籍来系统性地介绍微服务框架从0到1建设的完整历程,相关内容零零散散地以个人感悟、项目文档、经验分享的形式散落在互联网的各个角落。
很多开发人员在其整个职业生涯期间,可能也没有机会去接触、长时间跟进微服务框架建设相关的工作,他们也希望了解这背后的故事,而这些故事本身也很有价值。
所以我要写这本书,对过去的工作做个总结,也和感兴趣的朋友做个分享。
作者开发Go-Neat框架期间,就产生了编写该电子书的想法,本来借着trpc项目分享下是一件很好的事情。2022年期间由于trpc存在开源、部分专利申请的需要,为了避嫌暂停了本电子书内容的编写。
期间也曾经想以grpc为例进行说明,后面又碰到2022.7组织架构调整,刚转岗Timi工作内容发生较大变化、没有精力来继续编写。现在trpc已经开源、相关技术文档也已经大部分公开,故而可以继续了。