摘要: 我们都知道 MySQL 是支持多事务并发执行的,否则一个事务一个事务串行化处理,用户都要砸键盘了。那么,多个事务同时写一行数据怎么处理?一个事务在写数据的时候,另一个事务要读,又该怎么处理这个冲突?为了解决这些问题,MySQL 使用了 MVCC 多版本控制机制、事务隔离机制、锁。 阅读全文
posted @ 2020-07-21 21:41 深页 阅读(1076) 评论(0) 推荐(2) 编辑
摘要: clone 并导入源码 本地启动 NameServer 本地启动 Broker 本地运行生产者与消费者代码 完成上述步骤之后,RocketMQ的源码环境就搭建完毕了,之后就可以在本地启动以及收发消息,调试和分析RocketMQ的源码了。 clone 并导入源码 在 github 上选择对应的的代码 阅读全文
posted @ 2020-06-30 21:11 深页 阅读(1173) 评论(0) 推荐(1) 编辑
摘要: 在RocketMQ 重复消费问题 | 订单系统核心流程引入幂等性机制一文中,我们讨论了消息重复消费的问题,比较好的方案是采用在消费侧使用业务判断法来保证接口的幂等性,这样就能避免消息重复消费的问题。 今天要讨论的是消费者代码执行过程中出现异常,我们应该如何处理? 手动提交 offset 首先来看一段 阅读全文
posted @ 2020-06-27 15:32 深页 阅读(6081) 评论(1) 推荐(3) 编辑
摘要: 重复消息的问题有可能是生产者重复发送消息到 MQ,导致 MQ 中有多条重复的消息;也有可能是消费者重复消费同一条消息。我们可以通过基于业务判断接口幂等性,也可以使用 redis 缓存,基于状态来判断接口幂等性。 阅读全文
posted @ 2020-06-26 16:41 深页 阅读(1268) 评论(0) 推荐(0) 编辑
摘要: Java 将创建出来的对象,存放在 JVM 的对内存中,只有在 JVM 运行的时候,这些对象才会存在,一旦 JVM 停止运行,这些对象的状态也就随之消失了。但是在一些应用场景中,我们需要将这些对象进行持久化,并且需要在使用的时候能够重新读取对象信息 阅读全文
posted @ 2020-06-19 08:33 深页 阅读(311) 评论(0) 推荐(0) 编辑
摘要: 写程序的时候,编辑器会提示错误,关键字拼错了,语法不符合规则,不符合泛型;程序编译的时候,编译器会提示错误,检查是否符合 Java 的语法规范,没有通过编译器检查的程序就无法编译,也就无法运行。这些都是在程序正式运行之前,先排除掉一些通过 Java 的规范就可以排除调的错误。 Exceptio 和 阅读全文
posted @ 2020-06-14 18:05 深页 阅读(215) 评论(0) 推荐(0) 编辑
摘要: Synchronized关键字可以用来修饰方法或者代码块。对于同步方法,JVM 采用 ACC_SYNCHRONIZED 标记符来实现同步。 对于同步代码块。JVM 采用 monitorenter、monitorexit 两个指令来实现同步。 在JDK1.6之后对对synchronized锁进行了升级 阅读全文
posted @ 2020-06-13 18:49 深页 阅读(1173) 评论(0) 推荐(0) 编辑
摘要: 微服务非常多的时候,可以通过 Run DashBoard 统一进行管理,超级方便。 双击 shift 搜索,run dashboard 阅读全文
posted @ 2020-06-10 23:21 深页 阅读(155) 评论(0) 推荐(0) 编辑
摘要: 热部署 Devtools: Adding devtools to your project Adding plugin to your pom.xml Enabling automatic build Update the value of Restart IDEA(不一定需要) 在要热部署的项目中 阅读全文
posted @ 2020-06-10 23:15 深页 阅读(220) 评论(0) 推荐(0) 编辑
摘要: 线程池状态RUNNING:接受新任务并处理排... 阅读全文
posted @ 2020-05-05 08:27 深页 阅读(134) 评论(0) 推荐(0) 编辑