在最近做的项目中为了提高系统的性能,提高并发和负载能力,减少数据库压力.我们对项目进行了读写分离!

在我们这个项目中,读写分离具体应用为:

1.使用切面类根据service的方法名,来区分使用哪个数据库

2.方法名需要遵循一点的规范

3.统一查询使用一个库,对数据库进行操作使用另一个库

@Aspect
@Component
public class DataSourceAspectUtil {@Before("execution(* xxx.xxx.service.*.*(..))")public void setDataSourceKey(JoinPoint point){String methodName=point.getSignature().getName();if (StringUtils.isNotBlank(methodName)&&(methodName.contains("get")||methodName.contains("select")||methodName.contains("query"))) {DatabaseContextHolder.setDatabaseType(DatabaseType.db1);}else {DatabaseContextHolder.setDatabaseType(DatabaseType.db2);}}
}

项目中AOP的使用-读写分离相关推荐

  1. 在项目中实现多数据源和读写分离的配置

    一:第一种 1:在mybatis配置文件当中配置多个数据源 <context:component-scan base-package="com.zjl.ssm">< ...

  2. django给mysql配主从_django中的mysql主从读写分离:一、配置mysql主从分离

    一.配置mysql主从同步的步骤: (1) 在主服务器上,必须开启二进制日志机制和配置一个独立的ID (2) 在每一个从服务器上,配置一个唯一的ID,创建一个用来专门复制主服务器数据的账号 (3) 在 ...

  3. 项目中aop记录日志的实现,使用@annoation注解的切入点表达式

    定义切面和切入点方法,使用注解的方式 @Pointcut("@annotation(com.cy.pj.common.annotation.RequiredLog)") //@an ...

  4. 关于Dapper实现读写分离的个人思考

    概念相关 为了确保多线上环境数据库的稳定性和可用性,大部分情况下都使用了双机热备的技术.一般是一个主库+一个从库或者多个从库的结构,从库的数据来自于主库的同步.在此基础上我们可以通过数据库反向代理工具 ...

  5. 简单好用!利用Spring AOP技术10分钟实现一个数据库读写分离方案

    前言 最近我们的APP在线用户越来越多,接口的响应速度也是越来越慢,经过运维排查发现是由于并发查询太多导致的数据库压力比较大,架构师经过调研给出了数据库读写分离的解决方案,为了快速解决问题,我们最终采 ...

  6. [Spring] - 读写分离

    使用Spring可以做到在应用层中实现数据库的读写分离. 参考文档: http://blog.csdn.net/lifuxiangcaohui/article/details/7280202 思路是使 ...

  7. Java 阿里巴巴数据源_阿里P7教你如何使用 Spring 配置动态数据源实现读写分离

    最近搭建的一个项目需要实现数据源的读写分离,在这里将代码进行分享,以供参考. 关键词:DataSource .AbstractRoutingDataSource.AOP 首先是配置数据源 //配置省略 ...

  8. 基于 EntityFramework 的数据库主从读写分离架构(2)- 改进配置和添加事务支持...

    回到目录,完整代码请查看(https://github.com/cjw0511/NDF.Infrastructure)中的目录: src\ NDF.Data.EntityFramework\Maste ...

  9. mysql5.7 读写分离_mysql5.7的主从复制+读写分离

    Mysql主从复制与读写分离 目录: 1.mysql主从复制工作原理 2.mysql读写分离原理,使用Amoeba中间代理层实现读写分离 3.在vmware中实现mysql主从复制+读写分离 一.My ...

最新文章

  1. 生命天书”破译20年,生命科学由此走向“大数据时代”
  2. Who悄悄偷走了我的流量
  3. 用YII实现多重查询(基于tag)
  4. 基于pt100温度计仿真_基于8pt网格的设计系统
  5. [转载] [OpenGL] shadow mapping(实时阴影映射)
  6. asp.net 两个控件放一行_思维导图?试试这两个宝藏网站吧
  7. redis的简易安装
  8. 新时达as380服务器显示75,成为电梯高手之新时达AS380控制系统故障代码
  9. pythonsample_python sample code | 学步园
  10. Ubuntu 16.10 下 使用 C/C++ IDE anjuta 编译出现You must have `libtool' installed
  11. Python爬取城市二手房数据
  12. Python A value is trying to be set on a copy of a slice from a DataFrame
  13. 关于weight decay
  14. 限制网络带宽的软件Netlimiter
  15. HDU6638 Snowy Smile
  16. android方向传感器 指南针,Android如何实现电子罗盘(指南针)方向传感器的应用
  17. Android5.1浏览器证书问题
  18. Android手机电池不耐用,手机电池用久了不耐用?教你几招让它“起死回生”!
  19. 学习爬虫之Scrapy框架学习(3)---豆瓣top250电影完整版信息获取及如何存储到mysql数据库;Scrapy shell和Scrapy选择器;使用到日志的学习!
  20. 关于有限元应力结果精度的几点讨论

热门文章

  1. Linux下切换用户根目录的指令
  2. 上海雄联机械配件有限公司
  3. http://localhost:9000/application.pac问题解决!
  4. LeetCode(447)——回旋镖的数量(JavaScript)
  5. Udp---模拟实现客户端与服务器通信
  6. HTTPS协议的简述
  7. 【操作系统】—进程同步和进程互斥
  8. 2018年计算机二级知识点,2018年计算机二级考试公共基础知识点:栈及其基本运算...
  9. mysql中游标能不能更新数据库_数据库游标更新数据
  10. 灰度拉伸python_灰度变换之灰度线性拉伸(算法1)