国服冰 发布的文章
- 首页
- 国服冰
Nacos集群CP架构底层Raft分布式一致性协议实现
一、CAP定理百度百科:CAP原则又称CAP定理,指的是在一个分布式系统中, 一致性(Consistency)、可用性(Availability)、 分区容错性(Partition tolerance)。CAP 原则指的是,这三个要素最多只能同时实现两点,不可能三者兼顾分区容错性分区指的是由于网络或者一些不可控因素导致集群中某些节点不连通的情况,而分区容错性指的是当我们的分布式系...
Nacos领域模型与服务注册基本原理
数据模型NameSpace,Group,Service/DataId目的是为了将数据模型分类,从而形成一定的效果,比如服务隔离,不同的NameSpace中的服务不能够相互访问数据模型的最佳实践NameSpace:代表不同的运行环境,Dev/Test/ProdGroup:代表某一类配置,如中间件配置,数据库配置等Service/DataId:代表某服务的具体配领域模型Nacos的三层分级模型(...
Nacos Config动态刷新原理
微服务中的配置在我们的微服务的运行环境中,每一个微服务往往不会只有一套环境,在企业中往往存在至少三套运行环境:开发、测试、生产在这套微服务系统中,会存在三个问题:配置文件的数量会随着微服务的增多而增多单个配置文件无法区分多个运行环境配置文件无法动态更新,修改配置文件后需要重启对应的微服务当我们引入配置中心,它能解决什么问题?统一的配置文件的管理提供统一的服务标准接口,服务根据标准接口拉去对应...
【转载】系统怎样做到高可用?
高可用性(High Availability,HA)是你在系统设计时经常会听到的一个名词,它指的是系统具备较高的无故障运行的能力。通常来讲,一个高并发大流量的系统,系统出现故障比系统性能低更损伤用户的使用体验。想象一下,一个日活用户过百万的系统,一分钟的故障可能会影响到上千的用户。而且随着系统日活的增加,一分钟的故障时间影响到的用户数也随之增加,系统对于可用性的要求也会更高。所以今天,我们就...
现代微服务拆分与设计
在设计一个微服务的时候,一般会遵守4个原则AKF微服务拆分前后端分离无状态服务RestFul服务通信一、AKF扩展立方体微服务的拆分原则主要参考立方体中的Y轴,根据不同的业务划分微服务拆分的要点:高内聚,低耦合,每个服务完成具体的功能根据团队划分,一个团队负责1-2个服务模块,进行快速的更新迭代Y轴Y轴扩展将一个庞大的业务拆分成多个具体的服务,前端通过客户端或者PC端通过服务网关的治理请求到...
【Java并发编程系列】原子类:无锁的工具的典范
原子性带来的并发安全问题在并发编程中,产生并发安全问题主要有三个源头,可见性,原子性,有序性可见性与有序性都可以使用volatile关键字解决,下面我们来分析下原子性带来的并发安全问题由于IO太慢,在早期的操作系统中就发明了多进程,操作系统允许某个进程执行一小段时间,例如过了50毫秒,过了50毫秒后,操作系统就会重新选择一个新的进程来执行(也就是“任务切换”),这个50毫秒也就是操作系统中的...
【Java并发编程系列】高并发工具类之多线程协作
一、CountDownLatchCountDownLatch是一个同步工具类,它允许一个或多个线程一直等待,直到其他线程执行完后再执行。CountDownLatch是通过一个计数器来实现的,计数器的初始化值为线程的数量。每当一个线程完成了自己的任务后,计数器的值就相应得减1。当计数器到达0时,表示所有的线程都已完成任务,然后在闭锁上等待的线程就可以恢复执行任务。现在有这样一个运动会场景,总共...
【Java并发编程系列】高并发工具类之常见并发集合
一、ConcurrentHashMap源码分析1.1 为什么要用ConcurrentHashMap在并发编程的情况下,使用HashMap可能会导致程序死循环,而使用线程安全的HashTable效率又十分低下,所以大名鼎鼎的Doug Lea写出了伟大的并发安全的ConcurrentHashMap!1.1.1 并发条件下使用HashMapHashMap在并发条件执行put操作会引起死循环,因为多...
负载均衡算法(一致性Hash算法,通俗易懂)
一、普通hash算法普通hash算法最大的特点是散列,说白了就是将一些具有相同特征的数据打散成完全不同,随机,均匀分配的数据看这个例子将abc和abcd进行md5运算,得到如下结果可以看出,两个及其相似的字符串进行md5后生成了两个完全不同的字符串,负载均衡正是利用这一特性,对于大量随机的请求或调用,通过一定形式的Hash将他们均匀的散列,从而实现压力的平均化。(当然,并不是只要使用了Has...