自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(6)
  • 收藏
  • 关注

原创 实现mybatis未知个数数据源动态切换

公司在做多租户的方案时,决定根据不同租户创建多个数据库。所以,请求调mybatis时,需要根据请求的某个参数去走不同的库,需要实现动态数据源切换。实现的时候遇到不少坑,今天看了一下mybatis源码,在这记录一下。 关键类:AbstractRoutingDataSource 这个类是spring-jdbc专门用来实现动态数据源切换的类。在项目启动的时候,我们可以把所有数...

2019-06-05 17:05:46 1941 1

原创 实现基于springboot的RPC框架(序)

RPC框架大家或多或少都用过,出自于阿里系的就有dubbo,HSF,sofaRPC等。但是,要深入理解RPC的原理却不容易,其中光是核心部分,就涉及到动态代理,netty,服务注册与发现,序列化,多线程等等。笔者为了弄清楚RPC框架的大致调用实现原理,自己造了个轮子——Zrpc. 首先,笔者写这个RPC框架的目标,并不是为了让它成为一个生产级的框架,而是帮助自己理解一些底层技术,...

2019-05-28 23:50:58 5370

原创 初探领域驱动设计-DDD的经典四层架构究竟是怎么回事

    最近公司项目要求使用领域驱动设计,网上找了大部分资料发现都语焉不详,让人越看越迷糊。无奈只能拿到业内大作《实现领域驱动设计》([美]Vaughn Vernon)进行攻读。第一遍读我会粗略浏览,并提取一些关键性的东西记在这里。    目前读到书的第四章——架构,解决了我对DDD架构部分疑惑:       当我们去搜索相应的DDD项目时,往往遇到的项目结构是这样的:    上图...

2018-10-10 15:42:11 10644 1

原创 AOP实现LCN分布式事务手动回滚

  由于项目用了较为完善的异常处理机制,导致微服务在抛出异常时,立即被@ExpectionHandler捕捉掉了,造成LCN分布式事务无法捕捉到异常而无法回滚的情况。在查看LCN原理的时候,偶然发现可以获取LCN管理事务的事务组代号groupId,由此想到能不能通过这个ID来手动回滚达到目的。  原理   1.在被调用服务异常抛出后,ExceptionHandler进行捕捉并会返回这些错误...

2018-08-07 15:22:18 3019 3

原创 微服务统一异常处理机制

  公司项目用了比较完善的异常处理机制,在此做一个记录。  核心注解:@controllerAdvice+@ExpectionHandler,这个百度资料有很多。  为了让下游调用接口出现异常时,明确知道发生了什么错误,我们自己定义了一个统一的业务异常类BizExpection类,继承自RuntimeExpection.  @Datapublic class BizExcept...

2018-08-07 15:00:08 7097 1

原创 Springboot+rabbitmq如何实现高并发的rpc调用

2019年5月最新更新:注意!并不推荐RPC式的mq调用,这么做完全没有发挥mq异步削峰的作用。之所以会有这篇文章完全是因为架构无法更改。RPC式的mq调用,会使调用端的线程一直阻塞,中间还过了一层mq。虽然仍旧是rpc式的通信,但是效果还不如dubbo,建议需要同步的业务直接使用dubbo。2018年8月:一.背景 公司项目的收单前置服务A与收单服务B之间是通过ra...

2018-03-02 16:54:47 15690 13

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除