加入收藏 | 设为首页 | 会员中心 | 我要投稿 衡水站长网 (https://www.0318zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长资讯 > 动态 > 正文

全球5G专网发展仍处于初步阶段

发布时间:2021-01-29 13:48:53 所属栏目:动态 来源:互联网
导读:37Signals(现称为Basecamp)是全球规模较小的公司之一,但也是世界上最著名的网络公司之一,部分原因是他们发明了一个叫做Ruby on Rails的小框架。鉴于故意将小公司和大名望结合起来的奇怪组合,Rework的作者对当今的工作和业务状况提供了独特的观点和见解。

37Signals(现称为Basecamp)是全球规模较小的公司之一,但也是世界上最著名的网络公司之一,部分原因是他们发明了一个叫做Ruby on Rails的小框架。鉴于故意将小公司和大名望结合起来的奇怪组合,Rework的作者对当今的工作和业务状况提供了独特的观点和见解。

设计数据密集型应用

在当前软件工程时代,数据无处不在,数据为王。越来越多的不只是设计优秀的应用程序,而且还涉及从这些应用程序创建和捕获数据流以获取业务见解。
 

时序锁:在zk上创建的一个临时的有编号的节点根据编号的大小控制锁。

分布式队列

分布式队列分为两种:

1、当一个队列的成员都聚齐时,这个队列才可用,否则一直等待所有成员到达,这种是同步队列。

a)一个job由多个task组成,只有所有任务完成后,job才运行完成。

b)可为job创建一个/job目录,然后在该目录下,为每个完成的task创建一个临时的Znode,一旦临时节点数目达到task总数,则表明job运行完成。

2、队列按照FIFO方式进行入队和出队操作,例如实现生产者和消费者模型。

NO10:知道监听器的原理吗?

图片

创建一个Main()线程。

在Main()线程中创建两个线程,一个负责网络连接通信(connect),一个负责监听(listener)。

通过connect线程将注册的监听事件发送给Zookeeper。

将注册的监听事件添加到Zookeeper的注册监听器列表中。

Zookeeper监听到有数据或路径发生变化时,把这条消息发送给Listener线程。

Listener线程内部调用process()方法。

NO11:为什么Zookeeper集群的数目,一般为奇数个?

首先需要明确zookeeper选举的规则:leader选举,要求可用节点数量 > 总节点数量/2。

比如:标记一个写是否成功是要在超过一半节点发送写请求成功时才认为有效。同样,Zookeeper选择领导者节点也是在超过一半节点同意时才有效。最后,Zookeeper是否正常是要根据是否超过一半的节点正常才算正常。这是基于CAP的一致性原理。

zookeeper有这样一个特性:集群中只要有过半的机器是正常工作的,那么整个集群对外就是可用的。

也就是说如果有2个zookeeper,那么只要有1个死了zookeeper就不能用了,因为1没有过半,所以2个zookeeper的死亡容忍度为0;

同理,要是有3个zookeeper,一个死了,还剩下2个正常的,过半了,所以3个zookeeper的容忍度为1;

同理:

2->0;两个zookeeper,最多0个zookeeper可以不可用。

3->1;三个zookeeper,最多1个zookeeper可以不可用。

4->1;四个zookeeper,最多1个zookeeper可以不可用。

5->2;五个zookeeper,最多2个zookeeper可以不可用。

6->2;两个zookeeper,最多0个zookeeper可以不可用。

....

会发现一个规律,2n和2n-1的容忍度是一样的,都是n-1,所以为了更加高效,何必增加那一个不必要的zookeeper呢。

zookeeper的选举策略也是需要半数以上的节点同意才能当选leader,如果是偶数节点可能导致票数相同的情况。

总结

很多面试官,面试套路基本就是这个,从背景到原理,到架构体系,再到Zookeeper固有特点、最后要求面试者能说出Zookeeper的实际应用场景。

(编辑:衡水站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读