学习笔记
文章平均质量分 61
②⑦丶
只要开始,虽晚不迟~
展开
-
Jeekins构建Springboot服务
Remote Directory为远程服务器项目地址。jenkins拉取项目后会把jar包拉取至此处。jeekins构建项目,默认拉取项目到服务器。settings.xml配置maven私服密钥。原创 2024-01-09 10:23:09 · 441 阅读 · 0 评论 -
Canal增量同步Mysql数据到ES
对应版本: Mysql 5.7 Es 7.4 Canal 1.1.5常见报错原因https://blog.csdn.net/qq_24950043/article/details/122463372下载如下:https://github.com/alibaba/canal/releases修改deployer配置文件上面配置过不需要配置修改adapter配置文件修改/conf/application.ymlserver: port: 8081 #adapte原创 2022-02-11 10:27:10 · 1503 阅读 · 0 评论 -
Canal原理及其使用
什么是Canal?Canal是阿里巴巴旗下的一款开源项目,纯Java开发。基于数据库增量日志解析,提供增量数据订阅&消费,目前主要支持了MySQL(也支持mariaDB)。工作原理Canal是模拟Mysql主从复制原理。将自己伪装成Slave。向主库发起dump协议,拿到bin_log日志,解析之后对数据做相关操作Mysql主从复制原理MySQL master 将数据变更写入二进制日志( binary log, 其中记录叫做二进制日志事件binary log events,可以通过 sh原创 2022-02-10 11:06:38 · 5043 阅读 · 0 评论 -
Spring事务Transaction和synchronized冲突问题
问题在做一个抽奖功能的时候,测试在高并发下发现用户的中奖记录和所限制的最大中奖数量不一致。开始以为只是一个简单的并发问题,于是给接口加上了synchronized。打脸的是问题根本没有解决。最后发现是因为接口上synchronized和@Transaction出现了冲突导致的问题原因因为synchronized代码块执行是在事务之内执行的,可以推断在代码块执行完时,事务还未提交,其他线程进入synchronized代码块后,读取的库存数据不是最新的,造成了脏读解决方案不要将@Tr.原创 2022-01-04 17:15:16 · 1347 阅读 · 0 评论 -
平均分配算法
业务场景: 需求是系统中有多个订单,多个处理员。先需要把这些订单平均分配给处理员处理,不要造成一个人多一个人少的情况;实现方案:在缓存中维护一个处理员的队列,或者集合,同时再维护一个自增的下标值每次需要分配处理员的时候,从缓存中获取下标值,get(下标值)的方法来分配处理员;当下标值等于处理员队列的长度时,则将该下标值置为 0,重新计算下标。类似于负载均衡的轮询方法 (下标值也可以不用置 0,始终递增,而下标则为下标值对处理员队列 size 取余。)缓存下标值利用Redis INCR命令代码实现原创 2021-12-02 13:46:15 · 1776 阅读 · 0 评论