Nacos2架构设计

https://blog.csdn.net/alisystemsoftware/article/details/111934889 Nacos 在阿里巴巴起源于 2008 年五彩石项目,该项目完成了微服务拆分和业务中台建设,随着云计算和开源环境的兴起,2018 年我们深刻感受到开源软件行业的影响,因此决定将 Nacos 开源,输出阿里十年关于服务发现和配管管理的沉淀,推动微服务行业发展,加速企业数字化转型。目前 Nacos 支持主流微服务开发语言 & 主流服务框架和配置管理框架,比如支持 Duboo 和 SCA, 还对接了一些云原生的组件比如 coreDNS 和 sentinel ...

Nacos2动态配置

https://zhuanlan.zhihu.com/p/375912272 > https://www.pianshen.com/article/4989271413/Nacos 配置实时更新原理分析https://www.jianshu.com/p/acb9b1093a54 动态配置场景了解了动态配置管理的效果之后,我们知道了大概的原理了,Nacos 服务端保存了配置信息,客户端连接到服务端之后,根据 dataID,group 可以获取到具体的配置信息,当服务端的配置发生变更时,客户端会收到通知。当客户端拿到变更后的最新配置信息后,就可以做自己的处理了,这非常有用,所有需要使用配 ...

Nacos简介

https://zhuanlan.zhihu.com/p/375912272 > https://www.cnblogs.com/crazymakercircle/p/14231815.html 1、Nacos 优势问题,既然有了 Eureka ,为啥还要用 Nacos?而 Nacos 作为微服务核心的服务注册与发现中心,让大家在 Eureka 和 Consule 之外有了新的选择,开箱即用,上手简洁,暂时也没发现有太大的坑。 1.1、与 eureka 对比 eureka 2.0 闭源码了 从官网来看 nacos 的注册的实例数是大于 eureka 的 因为 nacos 使用的 ra ...

Etcd Watch机制

watch 是 mvcc 包中的一个功能,之所以拿出来说,是因为它确实有很重的逻辑。watch 是监听一个或一组 key,key 的任何变化都会发出消息。某种意义上讲,这就是发布订阅模式。https://segmentfault.com/a/1190000021787055 对比既然 Watch 机制就是发布订阅模式,我们通过对比 Kafka,来更深入了解 Watch。首先说明结论:ETCD 没有消费者组的概念,所以不能代替 Kafka对比其他方面呢: ETCD Kafka 消费方式 监听一个 Key 订阅一个 Topic 生产方式 Put(Key, Value) Produce( ...

分布式一致性Raft算法

本文是转载的论文翻译,Raft 算法是可以用来替代 Paxos 算法的分布式一致性算法, 而且 raft 算法比 Paxos 算法更易懂且更容易实现。本文对 raft 论文进行翻译,希望能有助于读者更方便地理解 raft 的思想。 摘要Raft 是用来管理复制日志(replicated log)的一致性协议。它跟 multi-Paxos 作用相同,效率也相当,但是它的组织结构跟 Paxos 不同。 这使得 Raft 比 Paxos 更容易理解并且更容易在工程实践中实现。为了使 Raft 协议更易懂,Raft 将一致性的关键元素分开, 如 leader 选举、日志复制和安全性,并且它实施更强 ...

Redis(八)Zset结构和跳表SkipList

zset 是 redis 中一种有序、不重复的数据类型,每个元素都有一个分值,它可用于实现排行榜单,其底层采用压缩表 ziplist 或跳表 skiplist 的数据结构实现 Zset 的两种数据结构压缩表 ziplist当 redis 插入第一个元素时,同时满足以下条件,就会以 ziplist 创建跳表 节点数量<128 (可通过 server.zset_max_ziplist_entries 设置) 节点的长度<64(可通过 server.zset_max_ziplist_value 设置) 当选择用 ziplist 实现 zset 后,以后插入的节点若不满足以上任一个条件 ...

Redis(七)大key和大value

大 key 和大 value 的危害,如何处理 Redis 的大 key 有什么危害?一个 key 的 value 较大时的情况,比如: 内存不均:单 value 较大时,可能会导致节点之间的内存使用不均匀,间接地影响 key 的部分和负载不均匀; 阻塞请求:redis 为单线程,单 value 较大读写需要较长的处理时间,会阻塞后续的请求处理; 阻塞网络:单 value 较大时会占用服务器网卡较多带宽,可能会影响该服务器上的其他 Redis 实例或者应用。 虽说答的是挺好的,但是我又随之产生了另一个疑惑,如果 redis 的 key 较长时,会产生什么样的影响呢?查了很多文章,说的都不是 ...

Redis(六)分布式锁

分布式锁为解决分布式系统中多个应用同时访问同一个资源的问题。 分布式锁的使用场景一般是在两个场景下会防止对同一个资源的重复访问 提升效率 比如多个节点计算同一批任务,如果某个任务已经有节点在计算了,那其他节点就不用重复计算了,以免浪费计算资源。不过重复计算也没事,不会造成其他更大的损失,允许偶尔的失败。 保证正确性 这种情况对锁的要求就很高了,如果重复计算,会对正确性造成影响,不允许失败。 分布式锁支持的特性在这个技术不断更新迭代的情况下,分布式这个概念,在企业中的权重越来越高。谈及分布式时,不可避免一定会提到分布式锁,现阶段分布式锁的实现方式主流的有几种实现方式,Zookeepe ...