Go 微服务开发框架DMicro的设计思路
Go 微服务开发框架DMicro的设计思路 DMicro源码地址: GitHub: https://github.com/osgochina/dmicro Gitee: https://gitee.com/osgochina/dmicro 背景 DMicro诞生的背景,是因为我写了10来年的PHP,想在公司内部推广Go,公司内部的组件及rpc协议都是基于swoole定制化开发的。调研了市面上的各种框架,包括beego,goframe,gin,go-micro,go-zero,erpc等等,可能是我当时技术能力有限,并不能让这些框架很好的适配我们的业务。 我们业务开发有几个痛点,在当时golang的生态中无法找到一整套解决方案。 微服务应用和单体应用同时开发。 高性能,高可用的网络通讯。 需要自定义应用层的协议(重点)。 需要灵活的插件扩展机制,方便适配现有系统(重点)。 服务端与客户端的概念模糊,互相都能使用相同的api调用对方。 支持Push消息。 连接/会话管理。 高效率的开发,支持通过proto生成代码。 支持多种网络协议,tcp,websocket,quic,unixsocke...