韩都衣舍dubbo-monitor,整合最新dubbo版本2.6,直接修改war包中相应的数据库参数就行,别忘了把sql文件导入自己的库里 SET NAMES utf8; SET FOREIGN_KEY_CHECKS = 0; DROP TABLE IF EXISTS `dubbo_invoke`; CREATE TABLE `dubbo_invoke` ( `id` varchar(255) NOT NULL DEFAULT '', `invoke_date` date NOT NULL,
场景描述
在update表的时候出现DeadlockLoserDataAccessException异常 (Deadlock found when trying to get lock; try restarting transaction…)。
问题分析
这个异常并不会影响用户使用,因为数据库遇到死锁会自动回滚并重试。用户的感觉就是操作稍有卡顿。但是监控老是报异常,所以需要解决一下。
解决方法
在应用程序中update的地方使用try-catch。
我自己封装了一个函数,如下。
/**
1)MySQL的replication过程是一个异步同步的过程,并非完全的主从同步,所以同步的过程中是有延迟的,如果做了读写分离的业务的话,建议也要监控此延迟时间;
2)MySQL的master与slave机器记得server-id要保持不一致,如果一样的话,replication过程中会出现如下报错:
Fatal error: The slave I/O thread stops because master and slavehave equal MySQL server i