首页 > 其他 > 详细

一些知识的总结

时间:2019-04-25 13:46:50      阅读:163      评论:0      收藏:0      [点我收藏+]

为什么用zk做注册中心?

Zookeeper的数据模型很简单,有一系列被称为ZNode的数据节点组成,与传统的磁盘文件系统不同的是,zk将全量数据存储在内存中,可谓是高性能,而且支持集群,可谓高可用,另外支持事件监听。这些特点决定了zk特别适合作为注册中心(数据发布/订阅)。

流程说明:

服务提供者启动时

向/dubbo/com.foo.BarService/providers目录下写入自己的URL地址。

服务消费者启动时

订阅/dubbo/com.foo.BarService/providers目录下的提供者URL地址。

并向/dubbo/com.foo.BarService/consumers目录下写入自己的URL地址。

监控中心启动时

订阅/dubbo/com.foo.BarService目录下的所有提供者和消费者URL地址。

zk实现的方式是推拉结合,Client想服务端注册自己需要关注的节点,一旦节点的数据发生变更,那么Server会向对应的客户端发送Watcher事件通知,客户端接收到这个消息后,需要主动到服务端获取最新的数据。

1.最终一致性:client不论连接到哪个Server,展示给它都是同一个视图,这是zookeeper最重要的性能。

2 .可靠性:具有简单、健壮、良好的性能,如果消息m被

到一台服务器接受,那么它将被所有的服务器接受。

3 .实时性:Zookeeper保证客户端将在一个时间间隔范围内获得服务器的更新信息,或者服务器失效的信息。但由于网络延时等原因,Zookeeper不能保证两个客户端能同时得到刚更新的数据,如果需要最新数据,应该在读数据之前调用sync()接口。

4 .等待无关(wait-free):慢的或者失效的client不得干预快速的client的请求,使得每个client都能有效的等待。

5.原子性:更新只能成功或者失败,没有中间状态。

6 .顺序性:包括全局有序和偏序两种:全局有序是指如果在一台服务器上消息a在消息b前发布,则在所有Server上消息a都将在消息b前被发布;偏序是指如果一个消息b在消息a后被同一个发送者发布,a必将排在b前面。

 

数据库与缓存的数据一致性:

首先还是看场景,是强一致性的场景还是弱一致性的场景。

强一致性可以考虑把并发请求变串行,也就是使用锁。

http://www.cnblogs.com/kafeixiaoluo/p/9123360.html

 

数据库事务实现原理等:

https://www.cnblogs.com/takumicx/p/9998844.html

 

一些知识的总结

原文:https://www.cnblogs.com/coolgame/p/10767837.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!