RedisTemplate统一集成
1.配置redis-config123456789101112131415161718192021222324<!-- Jedis 连接池配置 --><bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig"> <property name="maxIdle" value="${redis.maxIdle}"></property> <property name="minEvictableIdleTimeMillis" value="${redis.minEvictableIdleTimeMillis}"></property> <property name="numTestsPerEvictionRun" value="$ ...
IDEA内存调优
idea2020无法启动报错初始堆值大于最大堆值_寒烟雾柳的博客-CSDN博客
调整内存的时候一定Xms2048m不能大于Xmx4096m【否则idea启动不起来】
xmx建议设置为(总内存的3/4 ÷ 你要开的idea个数),这样才不会卡
123456789101112-Xms1024m-Xmx8192m-XX:MaxPermSize=2048m-XX:ReservedCodeCacheSize=256m-ea-Dsun.io.useCanonCaches=false-Dsun.awt.keepWorkingSetOnMinimize=true-Djava.net.preferIPv4Stack=true#-Djsse.enableSNIExtension=false-XX:+UseCodeCacheFlushing-XX:+UseConcMarkSweepGC-XX:SoftRefLRUPolicyMSPerMB=50
线程池工具类
1.编写线程池工具类1234567891011121314151617181920212223242526272829303132333435363738394041424344454647public class ThreadUtils { public static ExecutorService newFixedThreadPool() { return new ThreadPoolExecutor(4,4, 10L, TimeUnit.MILLISECONDS, new LinkedBlockingDeque<Runnable>(100), Executors.defaultThreadFactory(), new ThreadPoolExecutor.CallerRunsPolicy()); } /** * (1.8版本)使用线程池请求接口 */ public static <T> ...
分段执行
1234567891011int batchSize = 1000;if(dataList.size() <= batchSize){ insertByStocks(dataList,type);}else { for(int i = 0;i < dataList.size();i+=batchSize){ if((i + batchSize)> dataList.size()){ batchSize = dataList.size()-i; } insertByStocks(dataList.subList(i,i+batchSize),type); }}
batchSize: 每次执行多少条
dataList: 数据列表
insertByStocks:需要执行的方法
aop的简单使用
简介
AOP 的全称是“Aspect Oriented Programming”,即面向切面编程,和 OOP(面向对象编程)类似,也是一种编程思想
AOP 采取横向抽取机制(动态代理),取代了传统纵向继承机制的重复性代码,其应用主要体现在事务处理、日志管理、权限控制、异常处理等方面。主要作用是分离功能性需求和非功能性需求,使开发人员可以集中处理某一个关注点或者横切逻辑,减少对业务代码的侵入,增强代码的可读性和可维护性。
AOP 的作用就是保证开发者在不修改源代码的前提下,为系统中的业务组件添加某种通用功能AOP 就是代理模式的典型应用。
目前最流行的 AOP 框架有两个,分别为 Spring AOP 和 AspectJ
Spring AOP 是基于 AOP 编程模式的一个框架,它能够有效的减少系统间的重复代码,达到松耦合的目的。Spring AOP 使用纯 Java 实现,不需要专门的编译过程和类加载器,在运行期间通过代理方式向目标类植入增强的代码。有两种实现方式:基于接口的 JDK 动态代理和基于继承的 CGLIB 动态代理
AspectJ 是一个基于 Java 语言的 AOP ...
mysql创建定时任务
需求:定时删除三个月之前的数据
1.编写需要执行的sql语句
123456789101112## 因为表数据过大(大约2亿数据),需要先查询三个月之前的id节点,增加查询速度select MAX(id) from other_log_info where DATE_FORMAT(createtime,'%Y-%m-%d') = DATE_SUB(CURDATE(),INTERVAL 3 MONTH);## 查询的sql一次不能删除太多数据,防止锁表select * from other_log_info where id < (select MAX(id) from other_log_info where DATE_FORMAT(createtime,'%Y-%m-%d') = DATE_SUB(CURDATE(),INTERVAL 3 MONTH)) LIMIT 0,1000## 由于delete不能直接删除子查询表中的数据,必须用过嵌套一层的方式来解决## 第二种执行方式,如果对于sql比较熟悉,可以用存储过程的"游标& ...
自定义注解
简介注解是一种能被添加到java源代码中的元数据,方法、类、参数和包都可以用注解来修饰。注解可以看作是一种特殊的标记,可以用在方法、类、参数和包上,程序在编译或者运行时可以检测到这些标记而进行一些特殊的处理
元注解介绍元注解的作用就是负责注解其他注解,Java5.0定义了4个标准的meta-annotation类型,它们被用来提供对其它 annotation类型作说明
@Target
@Retention
@Documented
@Inherited
对应的参数详情说明见末尾
修饰符:访问修饰符必须为public,不写默认为pubic
关键字:关键字为@interface
注解名称: 注解名称为自定义注解的名称
注解内容:注解中内容,对注解的描述
以下内容采用枚举方式进行注解
1.定义枚举123456789101112131415161718192021222324252627282930313233343536373839public enum newChannelEnum { BVC("BVC","bvc_timeout&quo ...
数据库中间件
数据库中间件Cobar:阿里团队开发,已经多年没有维护更新
MyCat:基于Cobar二次开发,开源社区维护
OneProxy:不开源的商业中间件专注性能和稳定性
KingShard:GO语言开发,在不断完善
Vitess:youtobe生产在使用,不支持MySql原生协议
Atlas:360团队基于MySqlProxy改写,高并发下不稳定
MaxScale:MaxScale是mariadb研发的中间件
MysqlRoute:MySql官方Oracle公司发布的中间件
ShardingJDBC:现在比较主流的中间件
SQL解析>查询优化>SQL路由>SQL改写>SQL执行>结果归并
mycat简单介绍
MyCat介绍
如今随着互联网的发展,数据的量级也是成指数式的增长,从GB到TB到PB。对数据的各种操作也是愈加的困难,传统的关系性数据库已经无法满足快速查询与插入数据的需求,这个时候NoSQL的出现暂时解决了这一危机。它通过降低数据的安全性,减少对事务的支持,减少对复杂查询的支持,来获取性能上的提升。但是,在有些场合NoSQL一些折衷是无法满足使用场景的,就比如有些使用场景是绝对要有事务与安全指标的。这个时候NoSQL肯定是无法满足的,所以还是需要使用关系性数据库。如何使用关系型数据库解决海量存储的问题呢?此时就需要做数据库集群,为了提高查询性能将一个数据库的数据分散到不同的数据库中存储,为应对此问题就出现了——MyCat 。
MyCAT的目标是:低成本的将现有的单机数据库和应用平滑迁移到”云”端,解决海量数据存储和业务规模迅速增长情况下的数据存储和访问的瓶颈问题 。
Mycat 背后是阿里曾经开源的知名产品——Cobar,Cobar 的核心功能和优势是 MySQL 数据库分片
相对于cobar的优势
对 cobar 的代码进行了彻底的重构,Mycat在I/O方面进行了重大改进, ...
ShardingJDBC简单介绍
ShardingJDBC介绍
ShardingJDBC是当当网研发的开源分布式数据库中间件,从 3.0 开始Sharding-JDBC被包含在 Sharding-Sphere中,之后该项目进入进入Apache孵化器,4.0版本之后的版本为Apache版本。
ShardingSphere是一套开源的分布式数据库中间件解决方案组成的生态圈,它由Sharding-JDBC、Sharding-Proxy和Sharding-Sidecar(计划中)这3款相互独立的产品组成。 他们均提供标准化的数据分片、分布式事务和数据库治理功能,可适用于如Java同构、异构语言、容器、云原生等各种多样化的应用场景。
官方地址:https://shardingsphere.apache.org/document/current/cn/overview/
它定位为轻量级Java框架,在Java的JDBC层提供的额外服务。它使用客户端直连数据库,以jar包形式提供服务,无需额外部署和依赖,可理解为增强版的JDBC驱动,完全兼容JDBC和各种ORM框架
在 maven 的工程里面,我们使用它的方式是引入依赖,然后进行 ...