keep going

先把事情做成,再把事情做好

浅析Consul集群的管理

  作为一名后端开发,难免在开发过程中用到各种中间件,对于所用到的东西,我们需要对其有所理解,并且在理解中学习。Consul作为一个服务发现与注册中心已经被广泛运用到分布式项目生产中,而本身带有分布式属性的Consul对作为后端开发的我具有很好的学习意义,了解Consul的架构及其原理有助于提升自身技术水平。

粗略地从源码中了解Etcd中的数据同步

  在一个由许多机器组成的集群中运行着一个服务,在无任何错误的情况下往某一个节点写入A=1后通过网络请求给集群中的其他节点发送这一变更,其他节点收到后也把A的值赋为1,既在集群中某个节点写入一个数据并把这个数据同步给其他节点。但是在真实情况中往往要复杂一些。

  在生产环境中,网络与服务器并不是百分百可靠的,网络可能会丢包、故障,程序可能会painc,服务器可能会宕机,某个节点接受了数据变更然后准备同步到其他节点的时候由于某些原因节点同步失败,导致数据写入了该节点但没有同步到其他节点中,这就有可能导致失去一致性从而影响系统正常运行,所以我们不能在节点只通过简单的网络请求进行同步数据还要通过一定的约束保证一致性。