分布式
猫老壳
这个作者很懒,什么都没留下…
展开
-
Seata处理分布式事务
Seata处理分布式事务通过TC、TM、RM三个组件完成:全局事务管理者、事务发起方、事务的参与方。Seata事务的执行流程(默认是使用二阶段提交):TM开启分布式事务(TM向TC注册全局事务记录)按业务场景,编排数据库、服务等事务内资源(RM向TC汇报资源准备状态)TM结束分布式事务,事务一阶段结束(TM通知TC提交/回滚事务)TC汇总事务信息,决定事务是提交还是回滚TC通知所有的RM提交或回滚资源,事务的二阶段结束。Seata二阶段提交(AT模式)的原理首先,我们的Seata原创 2020-08-02 16:16:05 · 1560 阅读 · 0 评论 -
秒杀系统中常见问题及解决方案
秒杀中的常见问题的解决1)解决超卖的问题1)Redis预减库存,有一个下单请求过来时预减库存,若减完后的redis库存小于0说明已经卖完,此时直接返回客户端已经卖完。后续使用内存标记,减少Redis访问。若预减库存成功,则异步下单,请求入队列,返回客户端排队中。2)数据库层面防止超卖:Redis预减库存只是抢到了这个机会,真正是否购买成功还是要等到所有数据库操作的真正成功,即消息队列的消费端是否消费成功。数据库层面,秒杀的订单表设置唯一索引,防止重复下单。数据库层面,减库存的时候同时判断此时库原创 2020-08-02 16:13:20 · 6346 阅读 · 0 评论 -
Sentinel流量控制及熔断
Sentinel流量控制及熔断Sentinel:哨兵,用于监控接口的流量、熔断、降级等。相对于Hystrix,Sentinel有界面,不用加那么多注解来实现,实现更加方便。其实两个理念都一样。使用流程:1)启动sentinel。下载官网的jar包,使用java -jar去执行即可,默认端口为8080。用户名密码都是sentinel。2)在项目模块中,引入sentinel模块,将服务注册进nacos和sentinel。3)将微服务注册进sentinel后即可监控。再访问后就可以在sentinel图原创 2020-08-02 09:12:50 · 1261 阅读 · 0 评论 -
FastDFS实现分布式文件系统
FastDFS实现分布式文件系统1、FastDFS简介FastDFS是什么用C语言编写的一款分布式文件系统。FastDFS为互联网量身定制,充分考虑到了冗余备份、负载均衡、线性扩容等机制,注重高可用、高性能。使用FastDFS很容易搭建一套高性能的文件服务器集群提供文件上传下载等服务。流程安装流程准备好FastDFS的相关压缩包。1)yum -y install libevent安装相关的依赖环境2)解压libfastcommon-1.0.7.tar.gz压缩包,并进入解压后原创 2020-07-23 20:43:41 · 162 阅读 · 0 评论 -
基于Socket简单实现RPC
RPC简单实现RPC是什么?RPC(Remote Procedure Call)远程过程调用,所谓远程调用,就是一个结点需要通过网络通信来进行调用另一个结点。RPC服务端如何搭建?首先,你要客户端能访问到,得有一个ServerSocket监听socket连接,通过socket进行数据交互。当客户端连接请求过来了,你要处理socket传输过来的数据,这个数据要表达的是我要调用你提供服务的哪个方法,有哪些参数。为了方便,我们在通信双方创建一个类用于数据传输。//省去构造方法和ge原创 2020-06-10 15:07:50 · 521 阅读 · 0 评论