- 博客(26)
- 资源 (3)
- 收藏
- 关注
原创 Spring-Smart-DI
用注解的方式动态切换实现类实现方式。比如我们有多个消息中间件或多个短信服务商,需要动态切换的时候,无需自己写判断逻辑来进行服务商的切换。只用一套注解就可以解决问题
2024-10-14 10:17:01
246
原创 baomidou dynamic-datasource 强制查询sql走主库
项目中引用了baomidou主从数据源,因为业务场景特殊,需要查询语句强制走主库,把解决方案分享出来,帮助大家少走弯路
2024-05-08 15:42:06
623
原创 Mysql-事务
脏读一个事务还没提交时,它做的变更就能被别的事务看到。这就是脏读(自己还没提交就被被人看到修改的数据)幻读如果一个事务先根据某些提交查询出一些记录,之后另一个事务又向表中插入了符合这些条件的记录,原先的事务再次按照该条件查询时,能把另一个事务插入的记录也读出来,这就是幻读(前后同样的查询操作,发现数据多了)不可重复读一个事务在其他事务对数据做完修改之后,读到修改后的值(别人修改的新数据被自己看到)可重复读。
2024-01-17 10:35:23
1065
原创 Mysql-基础
每当计数器的值有变,InnoDB 会将其写入 redo log,保存到引擎专用的系统表中。在mysql中用自增列作为主键时,先往表里插入5条数据,此时表里数据id为1、2、3、4、5,如果此时删除id=4、5的数据后,再重启数据库,重启成功后向表里insert数据的时候,INNODB、MyISAM引擎下ID分别是从几开始增加?MySQL 把数据存储和查询操作抽象成了存储引擎,不同的存储引擎,对数据的存储和读取方式各不相同。也就是说,在没有小括号()的限制下,总是优先执行AND语句,再执行OR语句。
2024-01-17 10:15:56
409
原创 Neo4J插件安装
要找到与特定版本的 Neo4j 相兼容的 APOC 版本号,你可以查看 APOC GitHub 存储库的发布页面。在该页面上,你可以找到与每个 Neo4j 版本兼容的 APOC 版本号。在这里你会看到各个版本的 APOC JAR 文件。在容器中下载 APOC JAR 文件。将 APOC JAR 文件复制到 Neo4j 的插件目录。3. 查找你正在使用的 Neo4j 版本的相应 APOC 版本。进入正在运行的 Neo4j 容器的 shell。4. 点击相应版本的链接,下载对应的 APOC JAR 文件。
2024-01-13 10:38:47
717
原创 监控(普罗米修斯)
Prometheus(由go语言(golang)开发)是一套开源的监控&报警&时间序列数据库的组合。适合监控docker容器。因为kubernetes(俗称k8s)的流行带动了prometheus的发展。链接地址时间序列数据(TimeSeries Data) : 按照时间顺序记录系统、设备状态变化的数据被称为时序数据。应用的场景很多, 如:无人驾驶车辆运行中要记录的经度,纬度,速度,方向,旁边物体的距离等等。每时每刻都要将数据记录下来做分析。某一个地区的各车辆的行驶轨迹数据。
2024-01-09 10:43:58
6151
原创 Jeekins构建Springboot服务
Remote Directory为远程服务器项目地址。jenkins拉取项目后会把jar包拉取至此处。jeekins构建项目,默认拉取项目到服务器。settings.xml配置maven私服密钥。
2024-01-09 10:23:09
497
原创 使用ForkJoin对大量数据入库
废话不多说,直接上代码实体类package Test.TestDemo.Control.model;/** * @auther 14 * @date 2020/12/3 0003 - 16:15 */public class User { private static final long serialVersionUID = 1L; private int id; private String name; private int age; publ
2022-05-20 16:54:15
489
原创 Canal增量同步Mysql数据到ES
对应版本: Mysql 5.7 Es 7.4 Canal 1.1.5常见报错原因https://blog.youkuaiyun.com/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
1541
原创 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
5185
原创 Spring事务Transaction和synchronized冲突问题
问题在做一个抽奖功能的时候,测试在高并发下发现用户的中奖记录和所限制的最大中奖数量不一致。开始以为只是一个简单的并发问题,于是给接口加上了synchronized。打脸的是问题根本没有解决。最后发现是因为接口上synchronized和@Transaction出现了冲突导致的问题原因因为synchronized代码块执行是在事务之内执行的,可以推断在代码块执行完时,事务还未提交,其他线程进入synchronized代码块后,读取的库存数据不是最新的,造成了脏读解决方案不要将@Tr.
2022-01-04 17:15:16
1387
原创 平均分配算法
业务场景: 需求是系统中有多个订单,多个处理员。先需要把这些订单平均分配给处理员处理,不要造成一个人多一个人少的情况;实现方案:在缓存中维护一个处理员的队列,或者集合,同时再维护一个自增的下标值每次需要分配处理员的时候,从缓存中获取下标值,get(下标值)的方法来分配处理员;当下标值等于处理员队列的长度时,则将该下标值置为 0,重新计算下标。类似于负载均衡的轮询方法 (下标值也可以不用置 0,始终递增,而下标则为下标值对处理员队列 size 取余。)缓存下标值利用Redis INCR命令代码实现
2021-12-02 13:46:15
1866
原创 Strict-origin-when-cross-origin跨域问题
SpringCloud整合Gateway+Jwt出现strict-origin-when-cross-origin跨域报错问题详情:后端接口通过网关可以访问成功,前端报接口跨域问题console打印如下:解决原因:这个问题的原因是在于服务器端设置了两次跨域,只需要设置一次就可以。有可能是Nginx/Gateway设置了一次,服务端代码又设置了一次。我的情况是这样的,服务端采用的是SpringCloud,在GateWay网关里面全局设置了跨域,但是在被调的那个微服务项目里还有个跨域设置,导致前
2021-11-18 15:12:33
35055
原创 SpringBoot整合Seata注册到Nacos服务
不说废话,直接上干货项目引入pom文件<!-- SpringCloud Seata 组件--><dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-alibaba-seata</artifactId> <version>${alibaba.seata}</version> &.
2021-11-18 08:59:18
1135
原创 普通链接跳转小程序且传递参数
遇到一个需求。要通过生成的二维码扫描跳转到我们这边的小程序网上查找很多资料都讲的不是很明白,下面一张图告诉你所谓的匹配规则的配置二维码规则:配置你小程序域名地址。以及规则名称。我域名后面跟的是test/info,那么检验文件就放在你的 域名/test请求路径下。这个在nginx下可进行配置 location /test { root html/test; #test表示nginx下html的文件目录 try_files $uri $uri/ /**********.t
2021-11-06 13:43:30
1674
原创 Nacos低版本设置自定义命名空间ID
发现低版本的Nacos创建命名空间的时候,只有新增命名空间和描述两行,如图:如果想要设置命名空间ID,请按以下步骤进行,简单快速1,创建数据库,运行Nacos下conf文件的nacos-mysql.sql脚本2,修改Nacos文件夹下conf下的application.properties文件配置自己的数据库连接3,重新启动Nacos,大功告成加餐:SpringBoot配置文件的config-space(命名空间)一定要写正确,写错会发生服务会注册到错误的命名空间,也可以调用正常,但是N
2021-11-05 17:41:19
2361
1
原创 MyCat实现MySql高可用集群
MyCat实现MySql高可用集群Mycat安装,基于dockermycat安装比较简单,直接官方下载压缩包,解压即可;mycat是java开发的,所以运行mycat需要jre支持为了可移植性好,我们自定义docker镜像,写个dockerfile制作容器卷dockerfileFROM centosMAINTAINER dang<177372952@qq.com>LABEL name="mycat11 myCat Image" build-data="20200901"A
2020-10-28 11:01:56
1378
1
原创 多线程详解
多线程线程简介任务,进程,线程,多线程多任务eg:边吃饭边玩手机,边开车边玩手机等等。。。看起来是多个任务都在做,其实本质上我们的大脑在同一时间依旧只做了一件事情多线程多条执行路径,主线程和子线程并行交替执行程序,进程,线程在操作系统中运行的程序就是进程,比如你的QQ,微信,游戏,ide等等…一个进程可以有多个线程,比如视频中同时听到声音,看到图像,看弹幕等等…Process(进程)与Thread(线程)说起进程,就不得不说下程序,程序是指令和数据的有序集合,其本身没有任何运行的含义
2020-10-14 16:13:50
187
原创 心有盏灯,向阳而行
疫情原因,不用工作,刚好有空余的时间,自己在家自学了一个多月吧。这一个月里面,掌握了很多以前没有掌握的知识。但是随着自己掌握的越多,越感觉自己知识的匮乏。以前懂的都是一些皮毛而已,甚至说连皮毛也算不上。第一篇博客给予自己鼓励。只要开始,虽晚不迟。...
2020-07-24 12:50:48
135
原创 SpringCloud-Netflix学习笔记
什么是微服务?在了解SpringCloud之前,我们先来大致了解下微服务这个概念吧。传统单体架构单体架构在小微企业比较常见,典型代表就是一个应用、一个数据库、一个web容器就可以跑起来。微服务架构通俗来讲,就是把一个大的项目内部功能拆分出来,一个功能一个模块,比如用户模块,商品模块,支付模块,下单模块,购物车管理等等,各个模块单独开发,然后互相调用的方式为微服务架构模式有什么?Spring Cloud-Netflix是一系列框架的有序集合。它利用Spring Boot的开发便利性巧妙地
2020-07-24 12:37:29
181
原创 ActiveMQ学习笔记
市面上常见的消息中间件分别为:Kafka:是由Apache软件基金会开发的一个开源流处理平台,由Scala和Java编写RabbitMQ,服务器端用erlang语言编写,不推荐使用RocketMQ:阿里巴巴在2012年开源的分布式消息中间件ActiveMQ;是Apache软件基金会所研发的开放源代码消息中间件;由于ActiveMQ是一个纯Java程序;介绍什么是消息中间件?消息中间件...
2020-03-05 19:49:38
205
原创 File类的总结
Java文件类以抽象的方式代表文件名和目录路径名。该类主要用于文件和目录的创建、文件的查找和文件的删除等。File对象代表磁盘中实际存在的文件和目录。通过以下构造方法创建一个File对象。1,创建file实例的四种方式:一,通过给定的父抽象路径名和子路径名字符串创建一个新的File实例。File(File parent, String child);二,通过将给定路径名字符串转换成抽象路...
2020-03-03 12:01:08
276
微信扫码支付(含扫码支付,查询,退款,关闭订单等功能)-JAVA
2020-02-23
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人