今日思考-技术架构思维模型

image.png

最近看了很多技术组件、发现其实很多技术都有共同点;而这些共同点都围绕着异步、同步。

看到同步机制这个关键词、我想到的是 性能差;可靠性高。
而异步机制这个关键词、是性能好、可靠性差。
我觉得前辈们一直可能在思考一个问题; 就是一项技术如何达到同步机制的可靠性、又能够达到异步的性能。

过半写入机制

挣扎中就出现了过半写入机制(paxos核心思想) Zookeeper的过半机制很相似; 比如ABC三个节点;只要A/B两个同步完成返回ack就对外提供服务。而C节点此时还没同步完成;但它可能在异步同步数据、也有可能已经挂了。从某种角度来看这是一种策略;从整体对外提供服务来说;保证了对外一致性;已经是提高了性能;虽然内部可能不一致。

预防策略(瞎写的)

还有Kafka的副本同步机制;主从同步策略;也是强一致性;他是避免同步可能存在的问题;而影响对外可用。他有个ISR集合的概念;挺有意思的;比如说我有ABC 3个节点;A是Master 当通过Master写一条数据的时候;Master需要同步给BC两个从节点;每个节点同步完成返回ACK确认;表示同步完成。
假设说C节点同步很慢(这个同步时间可配置);或者挂了网络不通;机制会把C节点踢出ISR集合;就能够有效保证ISR集合的百分百健康。同时也会异步去探活异常C;一旦他网络恢复了;就把C加入集合;数据对其后 并对Master ack确认;此时Master 才认为C是健康的、才会对他进行数据同步。

这两种策略其实都是在满足同步的情况下去增强;那假设说没有过半写入、没有ACK确认;只要有一个节点写完立刻返回;节点之间通过异步同步。

这样确实可以大大提高性能;但降低了可靠性、可能存在数据不一致问题。

就看业务容忍度;但市面上尤其是互联网技术栈;基本都是优先考虑性能、其实很多组件都是能够满足、异步、或者同步策略;提供给开发人员结合场景选择;比如 Redis AOF、RockerMQ、Kafka刷盘以及提供者写消息等等;

哎;有点零零散散;但如果用CAP理论其实可以在分布式环境贯穿所有技术栈;应该说借助CAP理论可以可以找到他们之间的共性;更好的去理解他。而不是被天花乱坠的技术栈表面所迷惑。

image.png

https://www.processon.com/view/link/61a23cf01e0853431b172d90

【技术的本质】有一句话叫:无论如何,新技术一定是产生于已有的技术组合。

也就是说任何技术都是从老技术演变而来的;而我们首先学习他们的背后逻辑(底层逻辑) 其实更高效。

因为很多时候技术底层都是相似相通的、你会很快理解上手;其实并不是你学的快,而是此时此刻你只是在复习;以及在不同场景扩展技术边界而已。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • kafka 作为一种开源的分布式消息队列, 在生产环境中被大量的使用. 主要用于对系统的流量削峰填谷和做一些系统架...
    AllenSea阅读 761评论 0 0
  • 1、 简介 它可以让你发布和订阅记录流。在这方面,它类似于一个消息队列或企业消息系统。 它可以让你持久化收到的记录...
    丨程序之道丨阅读 2,918评论 1 5
  • [TOC]Kafka 中采用了多副本的机制,这是大多数分布式系统中惯用的手法,以此来实现水平扩 展、提供容灾能力、...
    tracy_668阅读 1,019评论 0 2
  • redis是什么 redis是一个非关系型数据库,以KV结构存储数据,提供了多种数据类型和各自的本地方法,单线程处...
    小丸子的呆地阅读 624评论 0 2
  • 参考链接: javaguide https://juejin.cn/post/684490388900361011...
    senzx阅读 604评论 0 0

友情链接更多精彩内容