探秘分布式解决方案: 分布式事务——微服务架构下的主流解决方案之TCC
说完了分布式事务最核心的思想(2PC) –> [探秘分布式解决方案: 分布式事务——从核心思想之2PC(两阶段提交)开始] http://skypyb.com/2019/11/jishu/1149/
那么现在进入到更加复杂的场景。像这种跨库调用之类的,一线互联网公司早就不玩这一套东西了。这都9102年了,上来就是微服务架构。
我这么多服务,你整个啥跨库调用呢?一个服务可能同时调用多个其他的服务。这多个其他的服务中都要执行SQL语句,修改落实到服务所对应的数据库之中。
Read more »
探秘分布式解决方案: 分布式事务——从核心思想之2PC(两阶段提交)开始
为什么要有分布式事务?
本地单机事务,有点工作经验的肯定不陌生,主要用于处理操作量大,复杂度高的数据,一般都由数据库自己实现。
开启一个事务,进行了多个对数据库进行更新(增删改)的语句后,可以自由的选择 commit 或 rollback 来结束事务。
可以从根源上保证多个数据集合的同步。
比如一个订单系统,用 ...
Read more »
为Spring Cloud Gateway加上全局过滤器,并使用其内部自带的令牌桶算法实现(Redis)来进行限流
既然是一个网关。那么全局过滤器肯定是少不了的一个存在。像是鉴权、认证啥的不可能每个服务都做一次,一般都是在网关处就搞定了。
Zuul他就有很强大的过滤器体系来给人使用。
Gateway当然也不会差这么点东西。
对于SpringCloud体系来说,一切的实现都是那么的简单。那么废话不多说,直接开始写起来。
Gateway内 ...
Read more »
三个文件帮你搞定 Spring Cloud Gateway (Alibaba体系)
在微服务架构中,网关是必不可少的重要组件。
这关系到了客户端“如何访问”每个服务。
以前主流的方式就是使用Netfilx的Zuul组件。但是,因为某些奇妙的原因,Netfilx全家桶都停止维护了。
我之前也写过Zuul的配置和使用方法:
微服务路由解决方案: "Zuul" 服务搭建;以及自定义Zuul过滤器 ...
Read more »
Spring Cloud Alibaba 使用上 Feign+Sentinel 完成熔断
说起Feign,那又是老东西了啊
我以前写Netfilx的时候就详细讲过Feign这玩意,其实用起来基本是一样的。
以前的文章地址 : 分布式微服务项目如何使用 Feign 实现声明式 REST 调用,以及自定义 Feign 配置
虽说切换到了Alibaba,但是也没啥变化,Feign该怎么用就怎么用,这就不详细说了。主要还是Sentinel
其实Se ...
Read more »
还不知道FactoryBean有啥用?探寻FactoryBean的究极奥义之从Spring+MyBatis扫描源码说起
万字长文警告 !建议在首页看的,点击标题进入文章页查看,好看点。
本文章又名: 兼容 Spring 体系的 java 框架实现妙计
前排先提示一波: 读我这篇文章可以没看过 MyBatis 源码,但是 Spring 源码最好是要看过的,因为很多东西我不会解释,没看过 Spring 源码的估摸着会有些懵逼 ...
Read more »
浅谈CAS与乐观锁
CAS:Compare and Swap, 翻译成比较并与交换。
CAS的定义是这样的,看看就好,我也是百度复制的,懒得自己描述了。
CAS 操作包含三个操作数 —— 内存位置(V)、预期原值(A)和新值(B)。 如果内存位置的值与预期原值相匹配,那么处理器会自动将该位置值更新为新值 。否则,处理器不做任何操作。无论哪种情 ...
Read more »
探秘分布式解决方案: 分布式锁——咸鱼也能懂的Zookeeper分布式锁实现原理
Zookeeper 是一种分布式协调服务,在分布式环境中协调和管理服务是一个复杂的过程。ZooKeeper 通过其简单的架构和 API 解决了这个问题。ZooKeeper 允许开发人员专注于核心应用程序逻辑,而不必担心应用程序的分布式特性。
分布式协调服务主要用来解决分布式环境当中多个进程之间的同步控制,让他们有序的去访问 ...
Read more »
我居然画出了 Spring IOC 模块从资源加载到容器关闭的泳道活动图?
说是这么说哈,实际上这个泳道活动图只是一个大概流程,上边写的组件也基本上都是接口 而不是具体实现 (具体实现这鬼画得出来啊)
对于Spring这么强的东西来说,内部实现比我画的复杂多了,我这也就是随便画画 在线丢人而已
不过,就这么个简单的图还是凝结了我好久的知识总结的心血来着,从很久以前自学Spring开 ...
Read more »
我写的一个监控java进程的shell脚本结合Linux crontab实现服务宕机重启,并实现按场景自动停止定时任务的功能
本来遇到了很奇怪的坑,crontab定时任务执行的shell脚本和自己手动执行的shell脚本不一致。
在java进程已启动的情况下, crontab定时任务执行的脚本却总是找不到对应的pid。
试了好几种解决方法,结果还是不行。
全部命令都用绝对路径执行啊,环境导入啊之类的,都试了下,没有作用,后来自己用crontab里写的定时任务试了 ...
Read more »