分布式
Pr Young
一个踏实努力,充满激情的程序员!
展开
-
CAP原则
AP:保证可用性和分区容错性,创建订单后,不等待库存减少(异步去减库存)就返回处理结果了,保证了用户的可用性,牺牲了数据的一致性(但是会通过其他方法比如人工进行补录,校验程序等保证最终一致性)CP:保证一致性和分区容错性,创建订单后,等到库存减少之后才返回创建订单成功的消息,保证强一致性,但是用户体验很差,需要等待较长时间。有两个系统,订单系统和库存系统,订单系统负责创建订单,库存系统负责去减少库存,两个系统都有自己各自的数据库。三者不可能同时满足,只能CA或者CP,或者AP,不可能CAP。原创 2023-05-30 10:12:51 · 78 阅读 · 0 评论 -
一致性哈希算法
假设现在要缓存a.jpg这张图片,hash(a.jpg)%2的32次方,也就是说现在图片和服务器都被映射到了哈希环上了,沿着图片开始,顺时针查找,第一个服务器结点就是这张图片要被缓存的服务器。但是这种算法有个缺点:当服务器数量增加的时候,比如3台服务器变成4台,这个时候可能就不能正常读取到图片了,于是造成缓存失效,大量缓存数据都失效的话,会造成缓存雪崩、有三台服务器:服务器编号分别是S0,S1,S2,现在有3万张图片需要缓存,这些图片最好能够均匀的缓存到三台服务器上。三台服务器的编号分别是A,B,C。原创 2023-05-27 23:41:03 · 674 阅读 · 0 评论 -
Dubbo
选择Zookeeper作为注册中心(还有Nacos注册中心,Redis注册中心等),服务提供者将服务注册到注册中心去,服务调用者去注册中心中取出服务调用。dubbo-admin是一个图形化的管理页面,可以看哪些服务在注册中心注册了,有哪些生产者,有哪些消费者。#扫描provider-service这个应用下的这个service包,把里面的服务注册到注册中心去。(1)第一个应用程序叫provider-server(提供服务者,被调用服务的)把非核心的服务关掉,释放资源,保证核心服务能够正常运行。原创 2023-05-23 19:28:18 · 418 阅读 · 0 评论 -
Raft算法
假如领导结点宕机了,需要选一个新的结点成为领导结点,此超时时间间隔最小的A结点会成为候选者,通过rpc请求向其他结点发送投票请求(请求为自己投上一票),并且先给自己投上一票,而且此时任期编号term加1,由0变成1。的(设置成随机的就是为了防止多个结点同时发起投票),比如这里A结点等待领导者结点心跳信息的超时时间间隔是150ms,B结点时200ms,C结点时300ms。(1)追随者Follower:接收来自领导者的消息,当领导心跳信息超时的时候,就自己主动站出来推荐自己当候选人。领导者发送心跳消息机制。原创 2023-05-23 18:21:22 · 940 阅读 · 0 评论 -
分布式的理解
目的是:充分利用更多的机器,处理更多的数据。但是这些计算机在用户看来,就像是一个整体。分布式系统就是若干台独立计算机的集合。分布式理论是大数据的基础理论。原创 2022-10-29 11:53:55 · 92 阅读 · 0 评论 -
RPC(以及dubbo和zookeeper)
扫描provider-service这个应用下的这个service包,把里面的服务注册到注册中心去。有两个应用程序,第一个应用程序叫provider-server(提供服务者,被调用服务的)方法A在一台电脑上,方法B在另一台电脑里面,此时A方法去调用B方法,就是远程调用。与之相对的就是本地过程调用(相当于洗碗直接把碗放进洗碗机,打开开关就可以洗了)我们把乙主机的B方法就叫服务,甲主机的A方法调用这个服务,乙主机提供服务。在一台电脑中,一个A方法调用了B方法,就是本地调用。return "测试成功";原创 2022-10-29 11:53:02 · 855 阅读 · 0 评论 -
分布式数据库和分布式缓存
数据库被部署在多个服务器上(分布式数据库)缓存也被部署在多个服务器上(分布式缓存)微服务架构下需要分布式缓存。原创 2022-10-02 22:13:27 · 243 阅读 · 0 评论