在灰度系列中《基于springcloud的灰度实现方案(二)》,之前规则适配使用数据库+策略模式实现,单个规则还好,多个规则,各种场景使用,还是稍微有点欠缺。就想着用java规则引擎来解决这个问题。 之前在项目中使用过drools,比较重,初始加载复杂,首次执行效率较低,最好预热一下,其次分布式规则处理时的一致性也得自己把控; 之前就了解过aviator,这次就直接用了。 相关资料 # 官网地址https://github.com/killme2008/aviator# 开发文档https://www.yuque.…

2021/07/05 0条评论 1299点热度 0人点赞 阅读全文

5ycode 被管理耽误的架构师。工作、学习过程中的知识总结与分享,jvm,多线程,架构设计,经验分享等。 30篇原创内容 公众号 接之前的事务系列 mysql事务-innodb中的redolog详解 innodb中的undolog 详解 mysql事务-MVCC 通过前面几篇文章,我们知道,并发产生的事务,基本上会有写-写,读-写或写-读,也是由于隔离级别的不同,可能会导致脏读、幻读等问题。 在这篇(mysql事务-MVCC)文章中,我们了解到读操作通过多版本并发控制(MVCC)来解决不一致的问题。 写操作可以通…

2021/07/04 0条评论 814点热度 0人点赞 阅读全文

这几天代码走查,发现generator配置文件一直在变动。classPathEntry   <classPathEntry location="D:/Java/apache-maven-3.5.2/mysql-connector-java-5.1.46.jar"/> 由于每个人的环境的差异性,导致共同开发时,每个人都要根据自己的环境修改实际路径。 这多麻烦,这么hot的开源插件,一定有解决方案。 查看了下官网,有短的说明 http://mybatis.org/generator/running/runn…

2021/07/02 0条评论 1100点热度 0人点赞 阅读全文

mysql事务-innodb中的redolog详解 innodb中的undolog 详解 什么是MVCC?  使用READ COMMITTD、REPEATABLE READ 这两种隔离级别的事务执行select操作时,我们通过记录的版本链来控制事务访问相同记录时的行为,这种机制称为多版本并发控制(Multi-Version Concurrency Control). 目的:是为了提升并发访问的性能。 并发的事务在运行过程中会出现一些可能引发一致性问题的现象 脏写(dirty write):一个事务修改了另…

2021/06/13 0条评论 999点热度 0人点赞 阅读全文

redo 日志 什么是redo日志?是为了在系统因崩溃而重启时恢复崩溃前的状态而产生的概念,mysql在运行过程中修改数据时由innodb引擎产生的(某个表空间第n号页面中偏移量为m处的值由x更新为y)记录日志,用于保证持久性;  redo log从 log buffer 刷入磁盘的时机: log buffer 空间不足; 事务提交 (这也是为啥事务会影响性能的点之一); 定时刷盘(每秒),通过flush链表 服务正常停止; 做checkpoint时; innodb_flush_log_at_trx_co…

2021/06/12 0条评论 1090点热度 0人点赞 阅读全文

今天开发小伙伴给我说,哥,你帮我看下吧,系统无缘无故的宕机了。之前跑了一个多月好好的。 我问了下这台机器的配置是啥? 虚拟机:1核2G jvm配置:xms:1gxmx:1g 我就开始着手查看 监控指标怎么样?    监控系统这两天在升级,暂时看不了;   开发反馈,load在1左右,cpu高峰也就80%,我先信了。 现场有无保留(堆栈信息)?    没有OOM的输出 gc日志有没有?   有,gc看着都正常 jvm的errorFile呢? 没有配置。 好吧…

2021/06/08 0条评论 881点热度 0人点赞 阅读全文

5ycode 被管理耽误的架构师。工作、学习过程中的知识总结与分享,jvm,多线程,架构设计,经验分享等。 28篇原创内容 公众号 mysql事务-innodb中的redolog详解 继上一篇redo log之后详解下 undo log. 什么是undolog? 是为了保证数据库的原子性,增加的增删改逻辑记录日志。 undo log是逻辑日志 redo log记录的是物理日志 有两个作用: 事务回滚 多个行版本控制(MVCC) undo log的存储方式 undo 日志链表 一共有四种undo日志链表,在生成und…

2021/06/05 0条评论 1070点热度 0人点赞 阅读全文

5ycode 被管理耽误的架构师。工作、学习过程中的知识总结与分享,jvm,多线程,架构设计,经验分享等。 28篇原创内容 公众号 痛点 如何分层 无领域专家 底层数据固定,不想做大的改动 值对象、实体、聚合根拆分困难 先说如何分层 先看下六边形架构  如图我将项目分为四层 领域层 也是最底层,整个核心的业务逻辑在此封装 封装了业务逻辑、定义了领域模型和实体(不对聚合根、值对象、实体做太多的划分) 如果业务逻辑设计领域较多,可以封装领域服务 此层是面向接口编程,不关注实现 数据从哪来,我不管,我就要这样的…

2021/06/03 0条评论 1363点热度 0人点赞 阅读全文

3.2对象已死? 3.2.1 引用计数法 在对象中加入一个引用计数器;很难解决循环引用; 3.2.2 可达性分析算法 GC Roots包含以下: 虚拟机栈中引用的对象 方法区中类的静态属性引用的对象; 方法区中常量引用的对象; 本地方法栈中JNI引入的对象; 虚拟机内部引用,基本数据类型对应的class对象、常驻的异常对象、系统的类加载器; 同步锁持有的对象; 虚拟机内部的回调、本地代码缓存; 3.2.3 再谈引用 如果reference 类型的数据中存储的数值代表的是另外一块内存的起始地址;就称改referenc…

2021/06/01 0条评论 932点热度 0人点赞 阅读全文

之前梳理的springboot的启动流程,大家想了解的可以看下。 整个springboot启动的流程,更像是一个大的模板方法。 在模板中的每个节点去产生一些具体的事件。 springboot在构造的时候就把Listener都拿到了,这些事件触达以后,对应的listener就自动执行。 springboot启动入口 是整个流程启动的口子。 @SpringBootApplicationpublic class Starter {    public&…

2021/05/20 0条评论 944点热度 0人点赞 阅读全文
15678932