上一篇文章:  RabbitMQ 死信机制真的可以作为延时任务这个场景的解决方案吗? 里最终得出的结论: RabbitMQ 死信机制可以作为延时任务这个场景的解决方案 但是,由于 RabbitMQ 消息死亡并非异步化,而是阻塞的。所以无法作为复杂延时场景——需要每条消息的死亡相互独立这种场景  下的解决方案。 如果说,果真我的 ...

Read more »

阅读全文 »
关于延时任务,在业务场景中实在是太常见了。比如订单,下单xx分钟未支付就要将订单关闭。 比如红包, XX分钟未抢,则红包失效。 那么说起延时任务的实现方案的话,可能有很多人第一时间会想到轮询,即设置定时任务,而稍有经验的开发者就知道。轮询这机制会给数据库带来很大压力,小业务当然无所谓。如果是大量数据要处理的业务用轮询肯定是不行的。而且你如果要保证高可用,就又得牵扯出分布式定时任务。怎么搞都很麻烦。 很多小机灵鬼知道可以用消息队列来实现。确实,MQ的异步性和解耦性在延时任务的这种场景下可以爆发出很强的战斗力。而 RabbitMQ 因其被广泛使用,关于如何实现延时任务自然也有其解决方案…

阅读全文 »

 

为了解决在分布式系统中需要对某个资源进行全局的一个非重复ID生成,所以有了分布式ID这么一个概念

 

在分布式应用下,像分库分表的这种场景是很常见的, 这个时候如果还是用数据库本身的自增的话,那多个数据库ID肯定会重复。

比如订单表由于数据过多,分到了多个数据库中存储的话,那么这个ID要如何生成呢?

还是以原来的逻辑进行自增的话,那就会出现这种情况:   数据库A里边有订单1、2、3 , 数据库B里边也有个订单1、2、3, 这在业务逻辑上就冲突了。

 

Read more »

阅读全文 »

说完了分布式事务最核心的思想(2PC) –> [探秘分布式解决方案: 分布式事务——从核心思想之2PC(两阶段提交)开始]    http://skypyb.com/2019/11/jishu/1149/

 

那么现在进入到更加复杂的场景。像这种跨库调用之类的,一线互联网公司早就不玩这一套东西了。这都9102年了,上来就是微服务架构。

我这么多服务,你整个啥跨库调用呢?一个服务可能同时调用多个其他的服务。这多个其他的服务中都要执行SQL语句,修改落实到服务所对应的数据库之中。

 

Read more »

阅读全文 »

为什么要有分布式事务? 本地单机事务,有点工作经验的肯定不陌生,主要用于处理操作量大,复杂度高的数据,一般都由数据库自己实现。 开启一个事务,进行了多个对数据库进行更新(增删改)的语句后,可以自由的选择 commit 或 rollback 来结束事务。 可以从根源上保证多个数据集合的同步。   比如一个订单系统,用 ...

Read more »

阅读全文 »

既然是一个网关。那么全局过滤器肯定是少不了的一个存在。像是鉴权、认证啥的不可能每个服务都做一次,一般都是在网关处就搞定了。 Zuul他就有很强大的过滤器体系来给人使用。 Gateway当然也不会差这么点东西。 对于SpringCloud体系来说,一切的实现都是那么的简单。那么废话不多说,直接开始写起来。   Gateway内 ...

Read more »

阅读全文 »

  在微服务架构中,网关是必不可少的重要组件。 这关系到了客户端“如何访问”每个服务。 以前主流的方式就是使用Netfilx的Zuul组件。但是,因为某些奇妙的原因,Netfilx全家桶都停止维护了。 我之前也写过Zuul的配置和使用方法: 微服务路由解决方案: “Zuul” 服务搭建;以及自定义Zuul过滤 ...

Read more »

阅读全文 »

说起Feign,那又是老东西了啊 我以前写Netfilx的时候就详细讲过Feign这玩意,其实用起来基本是一样的。 以前的文章地址 : 分布式微服务项目如何使用 Feign 实现声明式 REST 调用,以及自定义 Feign 配置   虽说切换到了Alibaba,但是也没啥变化,Feign该怎么用就怎么用,这就不详细说了。主要还是Sentinel 其实Se ...

Read more »

阅读全文 »

  中秋佳节当天,人在异乡,无法和家人团聚,既然如此 不如提升一波自己的姿势水平,免得浪费这假期大好光阴。 说道微服务,现在可不流行Netfilx那一套了, 现在都9102年9月了,Spring Cloud Aliabba都已经孵化完毕,再加上Netfilx将他旗下的项目通通打入冷宫,现在在不学习SpringCloudAlibaba体系就赶 ...

Read more »

阅读全文 »

说是这么说哈,实际上这个泳道活动图只是一个大概流程,上边写的组件也基本上都是接口 而不是具体实现 (具体实现这鬼画得出来啊) 对于Spring这么强的东西来说,内部实现比我画的复杂多了,我这也就是随便画画 在线丢人而已   不过,就这么个简单的图还是凝结了我好久的知识总结的心血来着,从很久以前自学Spring开 ...

Read more »

阅读全文 »
EA PLAYER &

历史记录 [ 注意:部分数据仅限于当前浏览器 ]清空

      00:00/00:00