- 博客(4)
- 资源 (3)
- 收藏
- 关注
原创 SpringBoot+Mybatis配置多数据源及事务方案
前言可能由于业务上的某些需求,我们的系统中有时往往要连接多个数据库,这就产生了多数据源问题。多数据源的情况下,一般我们要做到可以自动切换,此时会涉及到事务注解 Transactional 不生效问题和分布式事务问题。关于多数据源方案,笔者在网上看过一些例子,然而大部分都是错误示例,根本跑不通,或者没办法兼容事务。今天,我们就一点点来分析这些问题产生的根源和相应的解决方法。一、多数据源为了剧情的顺利开展,我们模拟的业务是创建订单和扣减库存。所以,我们先创建订单表和库存表。注意,把他们分别放到两个
2020-05-14 17:20:25 1163
原创 如何用Netty来实现RPC
前言在微服务大行其道的今天,分布式系统越来越重要,实现服务化首先就要考虑服务之间的通信问题。这里面涉及序列化、反序列化、寻址、连接等等问题。。不过,有了RPC框架,我们就无需苦恼。一、什么是RPC?RPC(Remote Procedure Call)— 远程过程调用,是一个计算机通信协议。该协议允许运行于一台计算机的程序调用另一台计算机的子程序,而程序员无需额外地为这个交互作用编程。值得注意是,两个或多个应用程序都分布在不同的服务器上,它们之间的调用都像是本地方法调用一样。RPC框架有很多,比较
2020-05-14 13:29:17 322
原创 RocketMQ消息存储和查询原理
前言RocketMQ 作为一款优秀的分布式消息中间件,可以为业务方提供高性能低延迟的稳定可靠的消息服务。其核心优势是可靠的消费存储、消息发送的高性能和低延迟、强大的消息堆积能力和消息处理能力。从存储方式来看,主要有几个方面:文件系统分布式KV存储关系型数据库从效率上来讲,文件系统高于KV存储,KV存储又高于关系型数据库。因为直接操作文件系统肯定是最快的,那么业界主流的消息队列中间件,如RocketMQ 、RabbitMQ 、kafka 都是采用文件系统的方式来存储消息。今天,我们就从它的存
2020-05-13 10:03:56 1056 2
原创 基于RocketMQ分布式事务 - 完整示例
前言之前我们说到,分布式事务是一个复杂的技术问题。没有通用的解决方案,也缺乏简单高效的手段。不过,如果我们的系统不追求强一致性,那么最常用的还是最终一致性方案。今天,我们就基于 RocketMQ来实现消息最终一致性方案的分布式事务。本文代码不只是简单的demo,考虑到一些异常情况、幂等性消费和死信队列等情况,尽量向可靠业务场景靠拢。另外,在最后还有《RocketMQ技术内幕》一书中,关于分布式事务示例代码的错误流程分析,所以篇幅较长,希望大家耐心观看。一、事务消息在这里,笔者不想使用大量的文字赘
2020-05-12 22:59:15 1741 2
Tomcat7.0.69
2016-05-30
slf4j-api-1.6.1
2014-07-20
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人