
学习记录
寻找星星的梦
这个作者很懒,什么都没留下…
展开
-
分库分表记录
转载分库分表 1、垂直分库分表,按照业务拆分 分库:将相同业务的表放在一个库; 分表:将表字段按照业务拆分成多个表; 2、水平分库分表,按照一定规则拆分 分库分表:按照一定规则拆分,比如指定拆分键为id,取hash分为多张表 总结 垂直分表:可以把一个宽表的字段按访问频次、是否是大字段的原则拆分为多个表,这样既能使业务清晰,还能提升部分性能。拆分后,尽量从业务角度避免联查,否则性能方面将得不偿失。 垂直分库:可以把多个表按业务耦合松紧归类,分别存放在不同的库,这些库可以分布在不同服务器,从而使访问压力被多服原创 2022-03-08 23:47:17 · 165 阅读 · 0 评论 -
分布式事务实现方式
转载 分布式事务 1、基于XA协议的两阶段提交 XA是一个分布式事务协议,由Tuxedo提出。XA中大致分为两部分:事务管理器和本地资源管理器。其中本地资源管理器往往由数据库实现,比如Oracle、DB2这些商业数据库都实现了XA接口,而事务管理器作为全局的调度者,负责各个本地资源的提交和回滚。 2、消息事务+最终一致性 基于消息中间件的两阶段提交,本质上是对消息中间件的一种特殊利用,它是将本地事务和发消息放在了一个分布式事务里,保证要么本地操作成功成功并且对外发消息成功,要么两者都失败。 3、TCC TC原创 2022-03-08 23:40:05 · 512 阅读 · 0 评论 -
一次多线程优化读取文件的实战
需求描述:商户每天会定时将文件传到我们的sftp服务器,我们需要对文件解析落库等操作。 方案A:起初的设计是将文件下载到本地,读取整个文件,落库等一系列处理。 方案A的设计本来是没问题的,因为商户每天回传的文件不过5MB左右,程序运行了一年多时间,直到后来对接了一个新商户A,A回传的文件每天都在增长,有一天达到了200+MB,当程序将整个文件加载到内存时直接把CPU打满,最后内存溢出了,于是发现原先的方案已不适用,需要马上修改,此时引入了多线程,也就是方案B。 方案B:将文件下载后,不再一次性全部读取,而是原创 2020-12-30 22:35:27 · 628 阅读 · 1 评论 -
学习记录3
文章内容简要: 1、java8中对元注解的增强 1、java8中对元注解的增强 1.1 扩展了注解的使用范围 在ElementType枚举类型中,增加了两个枚举值: ElementType.PARAMETER,表示注解可以写在类型变量的声明语句中; ElementType.USE,表示注解可以写在使用类型的任何语句中。 1.2 增加了@Repeatable元注解 JDK8之前,同一个注解在同一个...原创 2020-03-19 23:11:40 · 96 阅读 · 0 评论 -
学习记录2
文章内容简要: 1、java8中接口方法的变化 2、Lambda表达式 3、函数式接口 1、java8中接口方法的变化 接口中方法默认使用public abstract修饰,字段默认使用public static final修饰; java8中可以定义default修饰的方法,也可以定义static修饰的方法 default修饰的方法,实现类可以重写,也可以不重写 static修饰的方法,实现类...原创 2020-03-15 21:10:51 · 165 阅读 · 0 评论 -
学习记录1
文章内容简要: 1、IDEA里java文件图标显示不正确的修改 1、首先在项目名称右键选择Open Module Settings(F12),在打开的窗口从左向右依次选择Modules——自己的项目——src,最后再点击Sources即可,(Sources最后的状态是按下去的状态) ...原创 2020-03-11 22:32:55 · 112 阅读 · 0 评论