摘要: 1、Mysql怎么保证原子性的?OK,是利用Innodb的undo log。undo log名为回滚日志,是实现原子性的关键,当事务回滚时能够撤销所有已经成功执行的sql语句,他需要记录你要回滚的相应日志信息。 例如:(1)当你delete一条数据的时候,就需要记录这条数据的信息,回滚的时候,ins 阅读全文
posted @ 2021-01-27 10:53 郭慕荣 阅读(3495) 评论(0) 推荐(0) 编辑
摘要: 一致性Hash算法背景一致性哈希算法在1997年由麻省理工学院的Karger等人在解决分布式Cache中提出的,设计目标是为了解决因特网中的热点(Hot spot)问题,初衷和CARP十分类似。一致性哈希修正了CARP使用的简单哈希算法带来的问题,使得DHT可以在P2P环境中真正得到应用。但现在一致 阅读全文
posted @ 2021-01-25 14:52 郭慕荣 阅读(269) 评论(0) 推荐(0) 编辑
摘要: 在前两篇《Spring Cloud Ribbon的原理》,《Spring Cloud Ribbon的原理-负载均衡器》中,整理了Ribbon如何通过负载均衡拦截器植入RestTemplate,以及调用负载均衡器获取服务列表,如何过滤,如何更新等的处理过程。 因为,负载均衡器最终是调用负载均衡策略的c 阅读全文
posted @ 2021-01-18 11:17 郭慕荣 阅读(184) 评论(0) 推荐(0) 编辑
摘要: 链接地址:https://www.cnblogs.com/weigaung/p/9233193.html 阅读全文
posted @ 2021-01-15 17:55 郭慕荣 阅读(94) 评论(0) 推荐(0) 编辑
摘要: RestTemplate内部调用负载均衡拦截器,拦截器内最终是调用了负载均衡器来选择服务实例。接下来撸一撸负载均衡器的内部,看看是如何获取服务实例,获取以后做了哪些处理,处理后又是如何选取服务实例的。分成三个部分来撸: ①:配置②:获取服务③:选择服务 配置在上一篇《Spring Cloud Rib 阅读全文
posted @ 2021-01-14 11:48 郭慕荣 阅读(424) 评论(0) 推荐(0) 编辑
摘要: 直接开撸代码,通过代码来看Ribbon是如何实现的。 1:RibbonAutoConfiguration配置生成RibbonLoadBalancerClient实例。 代码位置:org.springframework.cloud.netflix.ribbon.RibbonAutoConfigurat 阅读全文
posted @ 2021-01-13 18:15 郭慕荣 阅读(318) 评论(0) 推荐(0) 编辑
摘要: 在实际场景中会遇到这样的一种情况:数据量很大,而且还要分页查询,如果数据量达到百万级别之后,性能会急剧下降,导致查询时间很长,甚至是超时。接下来我总结了两种常用的优化方案,仅供参考。但是需要注意的是有个前提:主键id是递增且数据有序。 1:使用子查询优化 这种方式先定位偏移位置的 id,然后往后查询 阅读全文
posted @ 2021-01-06 17:45 郭慕荣 阅读(1918) 评论(0) 推荐(0) 编辑
摘要: 上下文信息 上下文中存放的是当前调用过程中所需的环境信息。首先RpcContext是线程级的,每个线程一份。RpcContext 是一个 ThreadLocal 的临时状态记录器,当接收到 RPC 请求,或发起 RPC 请求时,RpcContext 的状态都会变化。比如:A 调 B,B 再调 C,则 阅读全文
posted @ 2020-12-30 15:55 郭慕荣 阅读(6419) 评论(0) 推荐(0) 编辑
摘要: 一:使用场景CopyOnWriteArrayList适用于场景为读多写少的集合应用场景中。 二:CopyOnWrite容器CopyOnWrite容器即写时复制的容器。通俗的理解是当我们往一个容器添加元素的时候,不直接往当前容器添加,而是先将当前容器进行Copy,复制出一个新的容器,然后新的容器里添加 阅读全文
posted @ 2020-12-02 15:45 郭慕荣 阅读(202) 评论(0) 推荐(0) 编辑
摘要: 1、 runAsync 和 supplyAsync方法 CompletableFuture 提供了四个静态方法来创建一个异步操作。 1 public static CompletableFuture<Void> runAsync(Runnable runnable) 2 public static 阅读全文
posted @ 2020-11-25 11:55 郭慕荣 阅读(749) 评论(0) 推荐(0) 编辑