- 博客(116)
- 资源 (1)
- 问答 (1)
- 收藏
- 关注
原创 redisson分布式锁
redisson是可重入锁,使用的是redis的hash接口,判断如果redis的hash里面的key是同一个线程时,value值加1,是使用lua脚本实现的。Redisson的multiLock:原理: 多个独立的Redis节点,必须在所有节点都获取重入锁,才算获取锁成功. 缺陷:运维成本高、实现复杂。4、主从一致性:如果Redis提供了主从集群主从同步存在延迟,当主宕机时,如果从并同步主中的锁数据,则会出现锁实现。可重试: 利用信号量和PubSub功能实现等待、唤醒,获取锁失败的重试机制。
2024-07-18 20:56:12 265
原创 RocketMQ实现分布式事务
5、在断网或者是生产者应用重启的特殊情况下,若服务端未收到生产者提交的二次确认结果,或服务端收到的二次确认结果为Unknown未知状态,经过固定时间后,服务端将对消息生产者集群中任一生产者实例发起消息回查。RocketMQ事务消息保证生产者本地事务和下游消息发送事务的一致性,但不保证消息消费结果和上游事务的一致性。因此,事务消息仅适合能接受异步执行的场景。2、RocketMQ服务端将消息持久化成功之后,向生产者返回Ack确认消息已经发送成功,此时消息被标记为"暂不能投递",这种状态下的消息即为半事务消息。
2024-07-15 17:15:24 465
原创 .gitignore文件不生效(git第一次没忽略的情况)
把某些目录或文件加入忽略规则,按照上述方法定义后发现并未生效,原因是.gitignore只能忽略那些原来没有被追踪的文件,如果某些文件已经被纳入了版本管理中,则修改.gitignore是无效的。2、想要.gitignore起作用,必须要在这些文件不在暂存区中才可以,.gitignore文件只是忽略没有被staged(cached)文件, 对于已经被staged文件,加入ignore文件时一定要先从staged移除,才可以忽略。解决办法及时删除下缓存git rm -r –cached .
2024-07-14 19:57:56 230
原创 Portainer工具
的图形化管理工具,其能够提供状态显示面板、应用模板快速部署、容器镜像网络数据卷的基本操作(包括上传下载镜像,创建容器等操作)、事件日志显示、容器控制台操作、Swarm集群和服务等集中管理和操作、登录用户管理和控制等功能。功能十分全面,基本能满足中小型单位对容器管理的全部需求。3、基于docker api,安全性高,可指定docker api端口,支持TLS证书认证。如果是针对中大型企业规模的业务需求,则可能需要对其进行2次开发,以满足实际的维护需求。1、支持容器管理、镜像管理。4、支持权限分配、集群。
2024-07-12 19:44:22 398
原创 rocket mq保证消息幂等性
在互联网应用中,尤其在网络不稳定的情况下,消息队列 RocketMO 的消息有可能会出现重复,这个重复简单可以概括为以下情况:1、发送时消息重复当一条消息已被成功发送到服务端并完成持久化,此时出现了网络闪断或者客户端宕机,导致服务端对客户端应答失败。如果此时生产者意识到消息发送失败并尝试再次发送消息,消费者后续会收到两条内容相同并日 Message lD 也相同的消惠2、投递时消息重复消息消费的场景下,消息已投递到消费者并完成业务处理,当客户端给服务端反馈应答的时候网络闪断。
2024-07-11 22:02:30 302
原创 如何保证RocketMQ消息不丢失
Rocket mq有两种刷盘机制,一种是异步刷盘。在集群环境下,想要消息零丢失,要进行同步刷盘机制。c.ack机制,可能存储CommitLog,存储ConsumerQueue失败,此时对消费者不可见。a.同步阻塞的方式发送消息,加上失败重试机制,可能broker存储失败,可以通过查询确认。broker: 同步刷盘、集群模式下采用同步复制、会等待slave复制完成才会返回确认。rocket mq在生产阶段、Brocker存储阶段、消费阶段都会出现消息丢失。b.异步发送需要重写回调方法,检查发送结果。
2024-07-11 20:15:11 204
转载 java分布式事务——9种解决方案的原理与分类
Prepare 阶段:事务管理器给每个资源管理器发送 prepare 消息,资源管理器判断是否可以执行事务。若可以执行,则开启本地事务,将事务写入本地的 redo log 和 undo log,但是不提交,然后返回成功;若不可以执行,则返回失败。Commit 阶段:若事务管理器没有收到任何资源管理器的失败反馈,则给所有资源管理器发送 commit 消息;若事务管理器收到了部分资源管理器的失败反馈,则给所有资源管理器发送 rollback 消息。
2024-07-09 21:43:34 264
原创 vue项目快速搭建
由于新版的nodejs已经集成了npm,所以之前npm也一并安装好了。分别运行 node -v vue -V 查看是否安装node和vue-cli(如果安装过按需跳过以下步骤)cnpm install -g @vue/cli //使用淘宝镜像源。npm install -g @vue/cli //这是国外的比较慢。3、为了提升后期npm的安装速度,可以使用淘宝镜像源 (可跳过)检查是否安装成功 vue -V(注意大小写)检查cnpm的安装是否成功 cnpm -v。1、安装vue-cli。
2024-07-07 23:13:17 221
原创 VScode
webpack-cli: 这是 Webpack 的命令行工具,为了在命令行中使用 Webpack,安装 webpack-cli 是必要的。安装Vue CLI:Vue CLI是一个官方提供的命令行工具,用于创建和管理Vue项目。如果出现上面的错误,输入 npm cache clean --force,再次输入npm install -g @vue/cli。--save-dev: 这是一个选项,指示 npm 将这两个包安装为项目的“开发依赖”。3、等待自动下载安装完成后,会弹出一个窗口,我们点击“
2023-11-25 23:18:19 651
原创 centos7安装mongodb
如果出现 Illegal instruction (core dumped),应该就是版本问题,降低mongodb.conf。db.shutdownServer() --关闭服务。我这里重新下载mongodb,版本是4.4.25。4、创建mongodb的data、logs目录。use admin --进入admin库。10、下载mongodb连接工具。exit --退出shell即可。7、使用mongo命令进入。5、启动mongodb,1、下载mongodb。8、关闭mongodb。9、设置用户名、密码。
2023-11-18 16:38:20 832
原创 输入npm install npm ERR! node-sass@4.13.0 postinstall: `node scripts/build.js
因为sass安装时获取源的问题,修改sass安装的源,改为淘宝的源。2、npm install 就可以了。
2023-11-18 14:54:46 361
原创 linux添加磁盘
文件与分区已经挂载完成了,不过这里要注意:通过命令行的方式挂载分区,等到虚拟机重启的时候就会消失,如果要永久挂载,需要进去。du -hca --max-depth=1 目录路径 来查看某个目录磁盘的使用情况。,注意:后面的sdb要与自己上面磁盘的名称一样,我这里是磁盘名为:sdb。分区号:表示当前分区是第几个分区,要设置多个分区,重复分区操作即可。mount 挂载的分区地址 要将该分区挂在到哪个文件下。这里的 ext4:表示的是该分区类型,一般都是ext4。输入m,获取帮助,这里选择 n,添加一个新分区。
2023-08-12 23:06:20 763
原创 mongodb 容器 “attr“:{“path“:“/tmp/mongodb-27017.sock“
1、docker inspect 容器id。删除mongodb-27017.sock。docker restart 容器id。
2023-08-12 15:22:00 102
原创 vue 文档
https://blog.csdn.net/qq_36538012/article/details/118788087https://www.jianshu.com/p/5ef2b17f9b25
2023-06-20 16:03:33 88
原创 mysql出表锁表(com.mysql.cj.jdbc.exceptions.MySQLTransactionRollbackException: Lock wait timeout exc)
kill 进程号;1、找到哪些线程死锁。
2023-06-20 15:56:31 68
原创 docker 报错Error response from daemon: Get https:///v1 proxyconnect tcp: dial tcp 127.0.0.1
删除代理的内容,把http-proxy.conf里面的内容注释掉。1.修改daemon.json,往里面增加地址。原因一: docker使用了代理。3、刷新docker配置。4、重启docker。2.重启docker。
2023-05-30 15:21:22 2734
原创 ip 归属地离线查询
https://github.com/lionsoul2014/ip2region<dependency> <groupId>org.lionsoul</groupId> <artifactId>ip2region</artifactId> <version>2.7.0</version></dependency>
2023-05-26 16:25:18 101
原创 微信退款出现No appropriate protocol (protocol is disabled or cipher suites are inappropriate)
微信
2023-04-25 14:16:12 794
原创 npm install 出现错误 unable to access ‘https://github.com/adobe-webplatform/eve.git/‘:
npm
2023-02-20 12:20:11 859
原创 npm install:出现错误 unable to connect to github.com: github.com[0: 20.205.243.166]: errno=
npm install
2023-02-20 12:16:18 1776
原创 springboot+mybatis plus+share-jdbc读写分离项目
前言: 首先准备三台机,分别装了mysql,主(192.168.1.132),从1(192.168.1.133),从2(192.168.1.134)springboot的项目结构如下:1、pom.xml<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-ins
2022-02-01 15:39:53 789
鼠标移动只会下拉第一个,用的是onmouseover。求帮忙
2014-09-01
TA创建的收藏夹 TA关注的收藏夹
TA关注的人