量大,服务器压力大。需要用到分布式,集群。

问题1:三台机器,一个请求如何落到一台机器上?如何协调工作

问题2:集群如何选取leader?

问题3:既然是分布式,集群,一个请求只能有一台机器接接收并处理,其他机器如何同步消息?

问题4:同时竞争资源如何让一个机器执行?

解答:

问题1:三台机器,一个请求如何落到一台机器上?

zookeeper 解决了各服务之间协调工作的内容如下图:

问题2:集群如何选取leader?

1 leader-follower-observer

2 leader选取 :?有哪些算法?

问题3:既然是分布式,集群,一个请求只能有一台机器接接收并处理,其他机器如何同步消息?
3 数据同步怎么办?事务请求走leader,非事务走所有节点,增删改有leader节点处理,处理完同步到非leader;使用了节点zab协议(原子广播协议):数据同步,leader选取,原子广播。

zookeeper:文件类型的树形目录结构 
有序节点:顺序递增
持久化节点:永久存储
临时节点:回话结束即删除节点,不能有字节点,存在冲突:比如 临时节点下在建立了持久节点怎么办,如果在建立个临时节点,生命周期不一样怎么办?
树形结构: 每个节点是 key-value

zookeeper 应用:
1分布式锁:(节点抢占,顺序节点)
   1 节点抢占 :同级节点是唯一的(同时创建同一个节点,多个应用创建肯定只有一个成功),失败的节点怎么办?
watcher:客户端可以监控某一个节点的变化 监听方式3中:get exists getchildren 设置监控: get /mic true 对mic 节点监控 监控删除事件

如 app2可以watcher app1新建的节点事件,如果app1新建的节点有修改会给所有监控对象app2,app3发通知(只触发一次,如果失败则丢掉事件)会发生 惊群问题?会触发所有节点


   2 顺序节点:创建顺序节点,最小节点获取锁 1 2 3 ;2监控1 3监控2 ,每个节点监控上一个节点
2 服务注册:
各个服务通信:rpc协议远程过程服务调用
rpc 协议有 hession,dubbo,webservice 框架
服务直接通信用到:序列化/反序列化,反射

最新文章

  1. Android使用C++截屏并显示
  2. windows 下使用Nginx替代apache作为服务器
  3. eclipse左边导航package explorer自动定位
  4. 对一个或多个实体的验证失败。有关详细信息,请参见“EntityValidationErrors”属性。
  5. Python--关于set
  6. 使用Javascript 实现类
  7. 使用教程 - BestSync同步软件 - SQL2008R2 数据库定时备份解决方案
  8. 纯JS URL编解码
  9. iOS中解析json多种方法
  10. 配置snort
  11. 设计模式之建造者模式Builder(创建型)
  12. JDK8 指南(译)
  13. Monkeyscript---获取包名主界面名和位置坐标
  14. discuz7.2 faq.php 注入漏洞分析
  15. iead2018创建JavaWe工程
  16. Java 使用jxl对Excel进行操作
  17. 小米8如何root
  18. Alpha冲刺(5/10)——2019.4.28
  19. 23.pyspider安装
  20. 微信小程序组件的使用

热门文章

  1. vi光标移动
  2. jackson 流式API
  3. Oracle集群时区
  4. Tomcat配置Web默认页面
  5. php----------php安装xhprof扩展和简单使用
  6. django中如何实现分页功能
  7. jpa 使用笔记
  8. cnpm安装失败
  9. P1772 [ZJOI2006]物流运输
  10. django signals 信号