为什么需要分布式协调服务

http://www.cnblogs.com/yuyijq/p/3391945.html

在进程内通过synchronized,lock实现同步,
我们在进程内还有各种各样的协调机制(一般我们称之为同步机制)。现在我们大概了解了什么是协调了,但是上面介绍的协调都是在进程内进行协调。在进程内进行协调我们可以使用语言,平台,操作系统等为我们提供的机制。

那么如果我们在一个分布式环境中呢?也就是我们的程序运行在不同的机器上,这些机器可能位于同一个机架,同一个机房又或不同的数据中心。在这样的环境中,我们要实现协调该怎么办?那么这就是分布式协调服务要干的事情。

因为网络不可靠,

分布式协调服务能干什么

https://www.cnblogs.com/yuyijq/p/3424473.html

配置管理,名字服务,分布式锁,集群管理
分布式锁:集群:高可用:分布式锁:在某个时刻只让一个服务去干活,当这台服务出问题的时候锁释放,立即fail over到另外的服务。

集群管理:服务发现:在provider集群中找到可用的节点;

比如Alibaba开源的SOA框架Dubbo就采用了Zookeeper作为服务发现的底层机制)。还有开源的Kafka队列就采用了Zookeeper作为Cosnumer的上下线管理。

java-nio,netty

接下来会初始化ServerCnxnFactory,这个是用来接收来自客户端的连接的,也就是这里启动的是一个tcp server。在Zookeeper里提供两种tcp server的实现,一个是使用java原生NIO的方式,另外一个是使用Netty。默认是java nio的方式,一个典型的Reactor模型。因为java nio编程并不是本文的重点,所以在这里就只是简单的介绍一下。

Logo

更多推荐