ARST打卡第268周
lc520_检测大写字母 当你集中注意力的时候大脑会发生什么?【TED演讲】 数据库圈应告别"唯性能论" master高可用为何链式监控
Algorithm
lc520_检测大写字母
思路: 模拟判断:
- 全小写: 根据第一个字母小写确定后面全是小写;
- 首字母大写: 第一个字母大写,第二个字母小写,后面全小写;
- 全大写: 前面两个字母大写,后面必须全大写;
|
|
这么简单的题目写了15分钟…还是要多练,然后学习一下题解的更进一步的抽象:
|
|
Review
当你集中注意力的时候大脑会发生什么?【TED演讲】
大脑有当前专注的物体脑电波,也有扫视周围物体状态的内隐脑电波。
通过脑电波对物体的一一映射,能够帮助失语者说话,也能帮助盲人感受世界。
比如《庆余年》里面五竹就是通过"脑电波"传感器感受周围世界
Tips
做数据服务很容易陷入到性能迷思,实际上的产品是需要端到端的思考。 端到端地解决耗时瓶颈点,才能更高效优化用户体验。
一般而言,性能特别是通用基准测试,不是选择数据库的好方法。你最好根据易用性、生态、更新速度或与现有工作流的集成完整度来做出决策。 充其量,性能只是完成某些特定任务所需时间的即时观察指标;往坏了说,太关注性能反而导致我们会在错误的事情上做优化。
Share
master高可用为何链式监控
分布式系统中,3个master节点利用zookeeper的临时顺序分布式锁来实现master高可用,为什么使用链式监控(即A抢到最小列号成为master,B第二小监控master的A,C第三小监控次小的B), 而不使所有其他节点都监控master(比如前面提到的B,C都监控成为master的A)
在分布式系统中,使用Zookeeper的临时顺序分布式锁来实现master高可用是一个常见的方案。在这个方案中,节点通过创建带有顺序号的临时节点来竞争成为master。链式监控和直接监控是两种常见的监控策略,其中链式监控通常更为推荐。
链式监控的优点:
-
减少Zookeeper负载:
- 如果所有节点都监控master节点,那么一旦master节点发生变化(如宕机或断开),Zookeeper需要通知所有监控master的节点。这将导致大量的通知开销和网络流量,增加Zookeeper的负载。
- 链式监控只需要通知下一个节点,极大地减少了通知的数量和频率,从而减轻了Zookeeper的压力。
-
降低惊群效应:
- 所有节点都监控master节点时,一旦master宕机,所有节点都会同时收到通知并尝试创建新节点以成为新的master。这会导致短时间内大量节点同时竞争资源,可能引发惊群效应。
- 链式监控仅使下一个节点尝试成为新的master,其他节点则继续等待和监控,这样可以有效避免惊群效应,提升系统的稳定性和性能。
-
更好的容错性和延迟优化:
- 在链式监控中,如果当前master节点A宕机,只有监控它的次小节点B会尝试接替成为新的master。如果B也宕机,则只有监控B的节点C会继续接替。这种逐级处理方式使得故障处理过程更为渐进和可控,减少了系统在处理故障时的复杂度。
- 直接监控可能导致多个节点同时进行master切换操作,从而增加切换延迟,而链式监控通过有序接替来优化切换延迟。
总结:
使用链式监控而不是所有节点直接监控master节点,可以有效地减少Zookeeper的负载,避免惊群效应,并优化故障处理过程和切换延迟。因此,链式监控通常被认为是实现master高可用性的更优策略。