摘要: 所谓钩子方法是对于抽象方法或者接口中定义的方法的一个空实现,比如说有一个接口,这个接口中定义了很多个方法,而你想实现其中某一个方法,这个时候就可以写一个抽象类实现这个接口,在这个抽象类里将你要用的那个方法设置为abstract,其它方法进行空实现,然后再继承这个抽象类,就不需要实现其它不用的方法,这 阅读全文
posted @ 2020-05-28 17:28 郭慕荣 阅读(1683) 评论(0) 推荐(1) 编辑
摘要: 在日常的工作中,关系型数据库本身比较容易成为系统的瓶颈点,虽然读写分离能分散数据库的读写压力,但并没有分散存储压力,当数据量达到千万甚至上亿时,单台数据库服务器的存储能力会成为系统的瓶颈,主要体现在以下几个方面: ①:数据量太大,读写的性能会下降,即使有索引,索引也会变得很大,性能同样会降下。②:数 阅读全文
posted @ 2020-05-02 10:43 郭慕荣 阅读(540) 评论(0) 推荐(0) 编辑
摘要: 这张图说明了事务消息的大致方案,分为两个逻辑:正常事务消息的发送及提交、事务消息的补偿流程 事务消息发送及提交:发送消息(half消息)服务端响应消息写入结果根据发送结果执行本地事务(如果写入失败,此时half消息对业务不可见,本地逻辑不执行)根据本地事务状态执行Commit或者Rollback(C 阅读全文
posted @ 2020-04-29 10:24 郭慕荣 阅读(478) 评论(0) 推荐(0) 编辑
摘要: RocketMQ的消费模式有2种 1 public enum MessageModel { 2 BROADCASTING("BROADCASTING"), 3 CLUSTERING("CLUSTERING"); 4 5 private String modeCN; 6 7 private Messa 阅读全文
posted @ 2020-04-27 19:52 郭慕荣 阅读(2508) 评论(0) 推荐(0) 编辑
摘要: 在mysql查询中,当查询条件左右两侧类型不匹配的时候会发生隐式转换,可能导致查询无法使用索引。下面分析两种隐式转换的情况。第一种情况:索引字段是varchar类型select * from user where index_filed=2;因为等号两侧类型不一致,因此会发生隐式转换,cast(in 阅读全文
posted @ 2020-04-08 16:23 郭慕荣 阅读(2009) 评论(0) 推荐(0) 编辑
摘要: 在日常工作中,我们会有时会开慢查询去记录一些执行时间比较久的SQL语句,找出这些SQL语句并不意味着完事了,些时我们常常用到explain这个命令来查看一个这些SQL语句的执行计划,查看该SQL语句有没有使用上了索引,有没有做全表扫描,这都可以通过explain命令来查看。所以我们深入了解MySQL 阅读全文
posted @ 2020-04-08 15:06 郭慕荣 阅读(1791) 评论(0) 推荐(0) 编辑
摘要: -- MySQL日期时间处理函数SELECT NOW() FROM DUAL;-- 当前日期时间:2017-05-12 11:41:47-- 在MySQL里也存在和Oracle里类似的dual虚拟表:官方声明纯粹是为了满足select ... from...这一习惯问题,mysql会忽略对该表的引用 阅读全文
posted @ 2020-03-30 11:16 郭慕荣 阅读(199) 评论(0) 推荐(0) 编辑
摘要: 一.预备环境1.系统 Windows2. 环境 JDK1.8、Maven、Git 二. RocketMQ部署1.下载1.1地址:http://rocketmq.apache.org/release_notes/release-notes-4.2.0/1.2选择‘Binary’进行下载1.3解压已下载 阅读全文
posted @ 2020-03-19 20:57 郭慕荣 阅读(2581) 评论(0) 推荐(0) 编辑
摘要: 0、前言记得开始学习Java的时候,一遇到多线程情况就使用synchronized,相对于当时的我们来说synchronized是这么的神奇而又强大,那个时候我们赋予它一个名字“同步”,也成为了我们解决多线程情况的百试不爽的良药。但是,随着学习的进行我们知道在JDK1.5之前synchronized 阅读全文
posted @ 2020-03-13 16:23 郭慕荣 阅读(252) 评论(0) 推荐(0) 编辑
摘要: 一、简介ReentrantLock常常对比着synchronized来分析,我们先对比着来看然后再一点一点分析。(1)synchronized是独占锁,加锁和解锁的过程自动进行,易于操作,但不够灵活。ReentrantLock也是独占锁,加锁和解锁的过程需要手动进行,不易操作,但非常灵活。(2)sy 阅读全文
posted @ 2020-03-09 09:41 郭慕荣 阅读(219) 评论(0) 推荐(0) 编辑