Java
文章平均质量分 92
清幽之地
微信公众号【清幽之地的博客】
展开
-
SpringBoot+Mybatis配置多数据源及事务方案
前言 可能由于业务上的某些需求,我们的系统中有时往往要连接多个数据库,这就产生了多数据源问题。 多数据源的情况下,一般我们要做到可以自动切换,此时会涉及到事务注解 Transactional 不生效问题和分布式事务问题。 关于多数据源方案,笔者在网上看过一些例子,然而大部分都是错误示例,根本跑不通,或者没办法兼容事务。 今天,我们就一点点来分析这些问题产生的根源和相应的解决方法。 一、多数据源 为了剧情的顺利开展,我们模拟的业务是创建订单和扣减库存。 所以,我们先创建订单表和库存表。注意,把他们分别放到两个原创 2020-05-14 17:20:25 · 1134 阅读 · 0 评论 -
如何用Netty来实现RPC
前言 在微服务大行其道的今天,分布式系统越来越重要,实现服务化首先就要考虑服务之间的通信问题。这里面涉及序列化、反序列化、寻址、连接等等问题。。不过,有了RPC框架,我们就无需苦恼。 一、什么是RPC? RPC(Remote Procedure Call)— 远程过程调用,是一个计算机通信协议。该协议允许运行于一台计算机的程序调用另一台计算机的子程序,而程序员无需额外地为这个交互作用编程。 值得注意是,两个或多个应用程序都分布在不同的服务器上,它们之间的调用都像是本地方法调用一样。 RPC框架有很多,比较原创 2020-05-14 13:29:17 · 297 阅读 · 0 评论 -
RocketMQ消息存储和查询原理
前言 RocketMQ 作为一款优秀的分布式消息中间件,可以为业务方提供高性能低延迟的稳定可靠的消息服务。其核心优势是可靠的消费存储、消息发送的高性能和低延迟、强大的消息堆积能力和消息处理能力。 从存储方式来看,主要有几个方面: 文件系统 分布式KV存储 关系型数据库 从效率上来讲,文件系统高于KV存储,KV存储又高于关系型数据库。因为直接操作文件系统肯定是最快的,那么业界主流的消息队列中间件,如RocketMQ 、RabbitMQ 、kafka 都是采用文件系统的方式来存储消息。 今天,我们就从它的存原创 2020-05-13 10:03:56 · 1017 阅读 · 2 评论