自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Leeue李月

在编程路上的我蜗牛前行

  • 博客(163)
  • 资源 (1)
  • 收藏
  • 关注

原创 技术整理:SpringBoot+Redis+lua脚本防止超卖

使用这种方式,读取文件可以优化成sha的方式去去读取。后面再进行调整,测试类可以模拟并发情况。redis 是可以保证原子性,但是 RedisTemplate 里面的方法去调用redis是不能保证原子性。使用 lua 脚本,去执行 加减操作,执行 redis 的命令,来保证原子性。去做总库存的加减,但是这种方式是保证不了原子性的还是会超卖。SpringBoot+redis+lua 防止超卖。RedisTemplate 注入。抢购帮助类并支持集群模式。

2024-03-25 10:35:19 238

原创 2024-01-31-好的技术文章汇总

链接:https://mp.weixin.qq.com/s/wtWOhBpv1jD51C-SkkST5w

2024-01-31 11:28:27 549

原创 算法:哲学家就餐问题

该问题描述的是五个哲学家共用一张圆桌,分别坐在周围的五张椅子上,在圆桌上有五个碗和五只筷子,他们的生活方式是交替的进行思考和进餐。平时,一个哲学家进行思考,饥饿时便试图取用其左右最靠近他的筷子,只有在他拿到两只筷子时才能进餐。1号哲学家 先去拿 0号筷子,发现0号筷子已经被拿了,就等到。这个时候 2号哲学家就能同时拿到 2号筷子和1号筷子。解决方法就是,让最后一个人先拿右边筷子,再拿左边筷子,这样就会有一个人会先拿到右手,又回拿到左手的情况。0号哲学家 先拿了 0 号筷子。2号哲学家 拿了 2号筷子。

2023-07-01 12:30:57 423

原创 2022-06-28-冒泡排序&选择排序

title: 2022-06-28-冒泡排序&选择排序date: 2022-06-28 23:19:00tag: 算法冒泡排序代码算法复杂度注意事项注意点博客地址已更新:https://leeue14.gitee.io/

2022-06-28 23:53:57 257 1

原创 事务总结(2022-03-20)

事务总结

2022-03-20 23:29:40 513

原创 mac 配置环境变量地址

/Users/mac .bash_profile

2021-06-28 22:24:17 216

原创 使用cobertura插件查看生成单元测试覆盖率文档

一、背景目前项目上线都是需要做单元测试覆盖率的,但是我们有时候根本找不到指标来衡量你这个单元测试写的好不好,所以就需要使用cobertura插件来生成单元测试覆盖率文档。二、使用方式pm...

2021-06-09 22:57:42 238 3

原创 Java上线静态代码扫描规范

一、背景一个团队的代码规范是很重要的,所以在每个人提交代码到分支上之前,必须进行代码静态扫描规范。二、使用阿里巴巴代码扫描规范插件进行扫描

2021-06-03 06:53:50 699

原创 draw.io 画图软件快捷键

1. 如果你要画的是高级图,vertical pool 插入 快捷键是 ctrl+enter 或 ctrl+D

2021-05-25 16:21:14 1628

原创 问题42:解决单元测试的时候使用@Sql注解去初始化数据库的时候,找不到sql脚本

测试函数代码:伪代码,我加了@Sql注解进行初始化 /** * 测试分页查询促销活动 * * @throws Exception */ @Test @Sql({"clean_promotion_activity.sql"}) public void testListByPage() throws Exception { Integer count = 30; return db.que

2021-05-17 22:31:35 1244 5

原创 问题解决41:单元测试 verify 使用的时候,验证一个函数执行了多少次,验证出现参数不一致情况

逻辑代码 verify(wmsService, times(1)).excute(purchaseInputOrder);报错信息如下所示:Argument(s) are different! Wanted:com.leeue.wms.service.WmsService#0 bean.createPurchaseInputOrder( com.leeue.wms.domain.PurchaseInputOrderDTO@d8b551b6);-> a.

2021-04-08 14:31:37 1351

原创 mysql将磁盘数据读入到buffer pool 缓存池流程图

文章图参考:儒猿技术窝 MySQL

2021-04-01 22:51:53 234

原创 一张图搞定Mysql执行流程

补充流程:文章图参考:儒猿技术窝 MySQL

2021-03-25 23:06:07 173

原创 问题解决方案40:linux 查询日志,日志下有许多小的log

问题:linux 下有许多的小的日志文件,并且是按时段进行划分的。现在是在一天的日志里查询某个错误解决方案:方案1:直接在找到当前目录下的日志文件进行查找cat /home/log/info/* | grep -e '未知错误'方案2:cat /home/log/info/info-2020-03-25* | grep -e '未知错误'如果是压缩文件的话 将 cat 替换成 zcat 来进行操作...

2021-03-24 15:04:30 96

原创 Canal学习(1)Canal环境搭建以及多数据库配置和Java代码整合Canal

Canal环境搭建以及多数据库配置和Java代码整合Canal1、Canal基本了解Canal是阿里巴巴出的一个基于binlog增量订阅的一个组件。主要是做mysql数据库增量或全量同步的。1、github地址https://github.com/alibaba/canal2、官方的快速使用https://github.com/alibaba/canal/wiki/QuickStar...

2020-04-29 11:07:34 3420 1

原创 项目应用1: Spring中的ApplicationEvent与ApplicationListener在项目上的应用

Spring中的ApplicationEvent与ApplicationListener在项目上的应用描述:ApplicationContext事件机制是观察者设计模式来实现的,通过ApplicationEvent类和ApplicationListener接口,可以实现ApplicationContext事件处理。使用:功能上的使用类似发布和订阅这种模式使用步骤:1、建立event ...

2020-03-27 14:24:52 376

原创 maven nexus 私服搭建配置 setting 文件

maven nexus 私服搭建配置 setting 文件 <?xml version="1.0" encoding="UTF-8"?><!--Licensed to the Apache Software Foundation (ASF) under oneor more contributor license agreements. See the NOTICE ...

2020-03-24 11:37:19 872

原创 ❌【细节决定成败】错误警示5:写一个接口,一个方法。一定要估计这个方法的返回数据量。

写一个接口,一个方法。一定要估计这个方法的返回数据量。

2020-03-09 17:18:37 194

原创 问题解决39: JSONObject字段映射中的定义方式

@ApiModelProperty(value = "评价选项json") @TableField(value = "detail_json", typeHandler = JsonTypeHandler.class, jdbcType = JdbcType.VARCHAR) private JSONObject detailJson;

2020-03-06 12:15:27 894

转载 @Autowired注解和@Resource注解的区别?

@Autowired注解和@Resource注解的区别?答:@Autowired:是Spring框架中提供的一个注解。采取的是注入策略 是按照类型进行注入。如:public class Test{ @Autowired private UserDao userDao;}但是如果这个时候这个userDao有多个bean值的是,就会造成无法选择具体注入哪一个类的情况。所以要...

2020-03-04 10:58:48 175

原创 手写Redis中过期策略的LRU算法

/** * 手写LRU算法 * * @author liyue * @date 2020-03-04 00:32 */public class LRUCache<K, V> extends LinkedHashMap<K, V> { private final int CACHE_SIZE = 100; // cacheSize 这里表示传递...

2020-03-04 00:41:42 490

原创 一文多发平台

https://openwrite.cn/https://github.com/ystcode/BlogHelperhttps://www.wechatsync.com/https://openwrite.cn/

2020-03-03 15:08:36 524

原创 设计模式(一)---单例模式

单例设计模式我这里就只写五种方式进行实现1、饿汉模式饿汉模式天生线程安全。因为一开始就创建了对象步骤:1、一开始就使用static 方法创建自己2、将构造函数私有3、对外提供一个方法获取到自己/** * 单例模式创建方式一: 饿汉模式创建 * * @author liyue * @date 2020/2/12 15:44 */public class User { ...

2020-02-12 17:45:12 127

原创 配置mycat中间件使用 Navicat连接时 报错There is no primary key here. Update will only use exact matching of the o

配置mycat中间件使用 Navicat连接时 报错There is no primary key here. Update will only use exact matching of the old values of the columns here. Thus, it may update more than one record.解决方案:修改 mycat 配置 schema.x...

2020-01-10 15:23:41 9742 2

原创 MySQL主从复制配置

MySQL主从复制配置主服务器节点vi /etc/my.cnf 新增以下内容 server_id=177 ###服务器id log-bin=mysql-bin ###开启日志文件重启mysql服务 service mysqld restart验证是否已经配置成功show variables like ‘%server_id%’;能够查询对应配置文件中的server_id 说明已...

2020-01-10 12:10:21 144

原创 linux 关闭防火墙

1:查看防火状态systemctl status firewalldservice  iptables status2:暂时关闭防火墙systemctl stop firewalldservice  iptables stop3:永久关闭防火墙systemctl disable firewalldchkconfig iptables off...

2020-01-10 10:48:41 130

转载 linux wget 安装mysql5.6

linux wget 安装mysql5.6转载小啊刚 最后发布于2018-09-20 11:24:26 阅读数 1744 收藏1.下载源:wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm2.安装包sudo rpm -ivh mysql-community-release-el7-5.noarch.rp...

2020-01-10 10:34:27 493

原创 ❌【细节决定成败】错误警示4:怎样去写好一个业务逻辑?踩坑持续中....

怎样去写好一个业务逻辑?1、保证,没有在for循环里,去执行sql语句2、保证,接口并发正常, update 锁机制,数据库锁机制。3、保证,代码格式正确。4、保证代码数据量大的时候,也能运行。如果数据量很大,考虑使用定时任务、多线程。5、数据库的 分库分表 。要考虑到,在更新数据的时候 update 的时候。要考虑到分库分表的主键。...

2019-12-30 16:52:36 208 1

原创 问题解决38:Spring Hibernate Validation进行嵌套验证 @Valid 嵌套验证必须用

如一下格式public class GroupDTO{ @NotNull private String id; @Valid // 嵌套验证必须用@Valid @NotNull private List<ItemDTO> items;}这里要嵌套验证里面的DTO,所以要加上,@Valid // 嵌套验证必须用@Valid...

2019-12-30 16:51:36 491

原创 问题解决38:快速删除mysql死锁问题

SHOW PROCESSLISTSELECT * FROM information_schema.INNODB_TRX;kill 3200313select @@autocommitSELECT CONCAT(‘KILL ‘,id,’;’) FROM INFORMATION_SCHEMA.PROCESSLIST WHERESELECT CONCAT(‘KILL ‘,trx_mysql...

2019-12-27 10:58:16 1120

原创 问题解决37: 修改sql,某个字段是否为空,如果为空返回null

修改sql,某个字段是否为空SELECT id,CASE name WHEN '' THEN NULL ELSE name END AS nameFROM users WHERE is_valid = 1

2019-12-25 18:46:52 341

原创 ❌【细节决定成败】错误警示2: 工作中需要注意的地方!!!!!!!!!!!!更新2020年2月23日

考虑一个需求时:如果要是自己弄不懂。就开始分析逻辑,一步一步的考虑。不会的一定要问别人,问清楚再开始做需求。❌拒绝不懂的,就开始写逻辑,写也是错误的电商中,系统管理操作:如果现在有一个用户,有管理员角色,和店员角色。假如现在是店员角色,然后将提升到管理员角色。 这种操作是不可行的。因为要是这样,以前店员操作的一些记录就没有了。系统也查不到了。所以只有重新给他创建一个管理员角色。或...

2019-12-24 11:26:50 287

原创 ❌【细节决定成败】错误警示1: Fegin调用需要注意的地方

Fegin调用地方细心不对的地方:❌错误误代码,在Fegin里面写这样的代码!!@GetMaping(path="/users/{userId}")Resp<UserInfo> getUserInfo(@NotEmpty @Pathvariable String userId);上面代码犯了2处错误:**在Fegin调用中,不允许出现,@NotEmpty这种注释校验参数...

2019-12-20 17:20:40 288

原创 问题解决34: Fetching config from server at ,Spring Cloud Config 的端口 port 不是 8888 的时候的坑

报错:Fetching config from server at : http://localhost:8888刚开始以为是配置的有缓存的问题,后来在网上查阅发现,SpringBoot 加载 bootstrap.yml > application.yml如何你要使用分布式配置中心,配置文件必须要改成bootstrap.yml因为我们加载配置的时候,还没有开始加载applicti...

2019-12-16 17:41:33 1188

原创 kafka集群搭建备注

kafka集群搭建

2019-12-16 15:12:16 78

原创 问题33:Linux安装RabbitMQ在导入公钥的时候遇到 import read failed(2)

解决方案我是自己看其他人安装的步骤,我做了下面操作解决了1、首先更新你当前linux环境 更新软件包和存储库。yum -y update2、再执行秘钥的导入rpm –import https://www.rabbitmq.com/rabbitmq-release-signing-key.ascrabbit安装和参考文档https://www.linuxprobe.com/ins...

2019-12-10 18:28:45 3698 3

原创 SpringBoot-LCN5.0.2分布式事务框架整合

LCN分布式事务框架整合场景图:我们是要在订单服务中,调用库存服务。当下一个订单的时候,就对库存-1操作1、首先要把tx-manager(分布式协调者)项目搭建起来我这里使用的是最新的lcn版本依赖 <dependency> <groupId>com.codingapi.txlcn</groupId> ...

2019-12-09 18:55:13 1225

原创 问题解决32:加上了@Transaction注解什么时候才会回滚?

@TranactionSpring中有声明式事务和编程式事务,加上了@Tranaction表示,把当前的事务管理交给Spring来管理,叫做声明式事务而程序员自己手动进行事务回滚(如AOP拦截异常进行事务回滚)如下,是手动事务也就是编程式事务//手动进行回滚 TransactionAspectSupport.currentTransactionStatus() .setRollba...

2019-12-09 15:41:17 1100

原创 2PC两段提交协议

2pc两段提交协议两段提交协议里面角色有发起者(参与者): 接口调用的服务参与者: 发起方里进行远程调用的接口协调者(全局事务者):整个服务事务的管理方两段提交协议详细说明####第一阶段提交协调者会向发起者和参与者发送一个指令,如果发起者和参与者收到指令后,都会把该业务逻辑执行完成并且成功返回给协调者。协调者在第二阶段会发送提交事务通知。如果有一方返回执行失败,协调...

2019-12-09 15:15:30 145

原创 问题解决31:搭建微服务项目时,数据库连接报java.sql.SQLException: validateConnection false

仔细检查了下当前的版本和百度去解决问题,发现当前的mysql版本自动依赖的的是8.0.15durid依赖版本是1.0.10百度查出:将durid依赖版本修改成1.1.10,应该是 durid依赖版本太低导致这个错误<!-- 阿里巴巴数据源 --> <dependency> <groupId>com.alibaba</groupId> &l...

2019-12-09 14:37:58 512

Canal环境搭建以及多数据库配置.md

Canal环境配置信息文档,主要是描述Canal怎么配置,和监听多数据库的时候该怎么配置。资料自己整理的

2020-04-29

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除