摘要: 我们以一个订单流转流程来举例,例如订单子系统创建订单,需要将订单数据下发到其他子系统(与第三方系统对接)这个场景,我们通常会将两个系统进行解耦,不直接使用服务调用的方式进行交互。其业务实现步骤通常为: 1、A系统创建订单并入库。 2、发送消息到MQ。 3、MQ消费者消费消息,发送远程RPC服务调用, 阅读全文
posted @ 2019-03-12 17:23 琴剑书酒 阅读(720) 评论(1) 推荐(0)
摘要: 分布式事务 微服务倡导将复杂的系统拆分为若干个简单、职责单一、松耦合的服务,可以降低开发难度,便于敏捷开发。而对大多数中小型公司来说,实施微服务架构面临以下困难: 单体应用拆分为分布式系统后,应用间的通讯和故障处理机制变得复杂 微服务化后,一个简单的功能需要调用多个服务并操作多个数据库实现,数据一致 阅读全文
posted @ 2019-03-12 16:31 琴剑书酒 阅读(217) 评论(0) 推荐(0)
摘要: 基于 REDIS 的 SETNX()、EXPIRE() 方法做分布式锁 setnx() setnx 的含义就是 SET if Not Exists,其主要有两个参数 setnx(key, value)。该方法是原子的,如果 key 不存在,则设置当前 key 成功,返回 1;如果当前 key 已经存 阅读全文
posted @ 2019-03-12 16:15 琴剑书酒 阅读(384) 评论(0) 推荐(0)
摘要: 初步认识RocketMQ的核心模块 rocketmq模块 rocketmq-broker:接受生产者发来的消息并存储(通过调用rocketmq-store),消费者从这里取得消息。 rocketmq-client:提供发送、接受消息的客户端API。 rocketmq-namesrv:NameServ 阅读全文
posted @ 2019-03-12 13:51 琴剑书酒 阅读(294) 评论(0) 推荐(0)
摘要: RocketMQ 事务消息在实现上充分利用了 RocketMQ 本身机制,在实现零依赖的基础上,同样实现了高性能、可扩展、全异步等一系列特性。 在具体实现上,RocketMQ 通过使用 Half Topic 以及 Operation Topic 两个内部队列来存储事务消息推进状态,如下图所示: 其中 阅读全文
posted @ 2019-03-12 13:29 琴剑书酒 阅读(575) 评论(0) 推荐(0)