最近在一个项目中,需要使用到etcd集群来实现服务发现的功能,目的是统一管理相应的服务资源,同时也可对资源做一定的负载均衡策略.然而,项目中使用的技术栈是C++语言,github上没有合适的C++开源的etcd客户端.于是需要在etcd和应用组件间加上一个etcd的代理层,利用etcd代理来沟通彼此.etcd代理模块实现的思路:etcd代理组件作为客户端与etcd集群建立TCP长连接,并通过区分不同的指令来与集群做不同的消息交互(数据形式:cmd+payload).同时暴露一些接口给应用层调用,…