- 博客(143)
- 资源 (4)
- 收藏
- 关注
原创 RocketMQ | Docker安装RocketMQ详细教程(foxiswho/rocketmq:4.8.0)
RocketMQ | Docker安装RocketMQ详细教程(foxiswho/rocketmq:4.8.0)
2022-10-13 20:45:00
1055
原创 redis报错:MISCONF Errors writing to the AOF file: No space left on device
redis报错:MISCONF Errors writing to the AOF file: No space left on device。原因和解决方案
2022-10-13 12:48:49
4149
原创 ES(三)| 查询、排序、分页(深度分页问题)、高亮显示、Java使用RestClient进行ES操作
ES(三)| 查询、排序、分页(深度分页问题)、高亮显示、Java使用RestClient进行ES操作
2022-08-24 22:00:00
306
原创 ES(二)| 安装ES、Kibana、IK分词器、拼音分词器(自动补全)
ES(二)| 安装ES、Kibana、IK分词器、拼音分词器(自动补全)
2022-08-23 21:45:00
899
原创 ES(一)| ES简介、倒排索引、索引库操作语法、文档操作语法、Java使用RestClient进行ES操作
ES简介、倒排索引、索引库操作语法、文档操作语法、Java使用RestClient进行ES操作
2022-08-23 21:00:00
290
原创 Canal | 工作原理、安装部署、使用第三方插件与SpringBoot完美整合
一、简介1.1.工作原理1.1.1.MySQL主备复制原理1.1.2.canal 工作原理1.2.使用场景1.2.1.抓取业务数据新增变化表1.2.2.更新缓存1.3.重要版本更新说明1.4.多语言二、安装和配置Canal1.开启MySQL主从1.1.开启binlog1.2.设置用户权限2.安装Canal2.1.创建网络2.2.安装Canal三、监听Canal(使用第三方插件)5.3.1.引入POM依赖:5.3.2.编写配置:5.3.3.编写Item实体类5.3.4.
2022-07-03 16:00:00
540
原创 Redis分布式缓存(四)| 分片集群搭建、散列插槽、集群伸缩、故障转移、与SpringBoot集成分片集群
Redis分片集群1.搭建分片集群1.1.集群结构1.2.准备实例和配置1.3.启动1.4.关闭1.5.创建集群1.6.创建集群报错1.7.测试集群连接2.散列插槽2.1.插槽原理2.2.插槽切换测试2.3.小结3.集群伸缩3.1.向集群中添加一个节点分析3.2.创建新的redis实例3.3.添加新节点到redis3.4.转移插槽3.5.测试插槽转移3.6.从集群中删除一个节点4.故障转移4.1.自动故障转移4.2.手动故障转移4.2.1.案例需求:.....
2022-07-02 22:30:00
491
原创 Redis分布式缓存(三)| 哨兵集群原理、哨兵集群搭建、集群故障恢复、与SpringBoot集成
Redis哨兵集群1.哨兵原理1.1.集群结构和作用1.2.集群监控原理1.3.集群故障恢复原理1.4.小结2.搭建哨兵集群2.1.集群结构2.2.准备实例和配置2.3.启动2.4.测试3.使用Java的RedisTemplate连接哨兵集群3.1.新建一个SpringBoot的Demo工程3.1.引入POM依赖3.2. 新加一个 TestController 类:3.3.配置yml文件中的Redis地址3.4.配置读写分离......
2022-07-02 09:00:00
364
原创 Redis分布式缓存(二)| 主从架构搭建、全量/增量同步原理、主从同步优化
Redis主从架构1.搭建主从架构1.1.集群结构1.2.准备实例和配置1.3.启动1.4.停止1.5.开启主从关系1.6.测试2.主从数据同步原理2.1.全量同步2.2.增量同步2.3.repl_backlog原理3.主从同步优化
2022-07-02 08:30:00
545
原创 Redis分布式缓存(一)| 单机安装、RDB和AOF持久化
分布式缓存0.单机安装Redis0.1.首先需要安装Redis所需要的依赖:0.2.下载reids安装包1.Redis持久化1.1.RDB持久化1.1.1.执行时机1.1.2.RDB原理1.1.3.小结1.2.AOF持久化1.2.1.AOF原理1.2.2.AOF配置1.2.3.AOF文件重写1.3.RDB与AOF对比......
2022-07-01 22:30:00
359
原创 RabbitMQ(五) | MQ集群搭建、部署、仲裁队列、集群扩容
接上一篇:RabbitMQ(四) | 惰性队列 - 解决消息堆积问题RabbitMQ的是基于Erlang语言编写,而Erlang又是一个面向并发的语言,天然支持集群模式。在RabbitMQ的官方文档中,讲述了两种集群的配置方式:镜像集群虽然支持主从,但主从同步并不是强一致的,某些情况下可能有数据丢失的风险。因此在RabbitMQ的3.8版本以后,推出了新的功能:仲裁队列来代替镜像集群,底层采用Raft协议确保主从的数据一致性。普通集群,或者叫标准集群(classic cluster),具备下列特征:结构如
2022-06-24 23:45:00
855
原创 RabbitMQ(四) | 惰性队列 - 解决消息堆积问题
接上一篇:RabbitMQ(三) | 死信交换机、死信队列、TTL、延迟队列(安装DelayExchange插件)当生产者发送消息的速度超过了消费者处理消息的速度,就会导致队列中的消息堆积,直到队列存储消息达到上限。之后发送的消息就会成为死信,可能会被丢弃,这就是消息堆积问题。解决消息堆积有两种思路:要提升队列容积,把消息保存在内存中显然是不行的。从RabbitMQ的3.6.0版本开始,就增加了Lazy Queues的概念,也就是惰性队列。惰性队列的特征如下:而要设置一个队列为惰性队列,只需要在声明队列时
2022-06-24 23:30:00
1476
原创 RabbitMQ(三) | 死信交换机、死信队列、TTL、延迟队列(安装DelayExchange插件)
接上一篇:RabbitMQ(二) | 消息可靠性(消息确认机制、消息持久化、消息重试机制)什么是死信?当一个队列中的消息满足下列情况之一时,可以成为死信(dead letter):如果这个包含死信的队列配置了属性,指定了一个交换机,那么队列中的死信就会投递到这个交换机中,而这个交换机称为死信交换机(Dead Letter Exchange,检查DLX)。如图,一个消息被消费者拒绝了,变成了死信:因为simple.queue绑定了死信交换机 dl.direct,因此死信会投递给这个交换机:如果这个死信交
2022-06-24 23:15:00
650
原创 RabbitMQ(二) | 消息可靠性(消息确认机制、消息持久化、消息重试机制)
接上一篇:RabbitMQ(一) | MQ技术对比,以及对RabbitMQ五种消息模型的使用消息从发送,到消费者接收,会经历多个过程:其中的每一步都可能导致消息丢失,常见的丢失原因包括:针对这些问题,RabbitMQ分别给出了解决方案:RabbitMQ提供了publisher confirm机制来避免消息发送到MQ过程中丢失。这种机制必须给每个消息指定一个唯一ID。消息发送到MQ以后,会返回一个结果给发送者,表示消息是否处理成功。返回结果有两种方式:首先,修改publisher服务中的applicati
2022-06-24 23:00:00
429
原创 RabbitMQ(一) | MQ技术对比,以及对RabbitMQ五种消息模型的使用
MQ,中文是消息队列(MessageQueue),字面来看就是存放消息的队列。也就是事件驱动架构中的Broker。比较常见的MQ实现:几种常见MQ的对比:追求可用性:Kafka、 RocketMQ 、RabbitMQ追求可靠性:RabbitMQ、RocketMQ追求吞吐能力:RocketMQ、Kafka追求消息低延迟:RabbitMQ、KafkaRabbitMQ官方提供了5个不同的Demo示例,对应了不同的消息模型:建立一个父工程,包含两个SpringBoot子工程。如下图:demo工程地址:在父工程p
2022-06-24 22:45:00
392
原创 Docker | 安装RabbitMQ详细教程,以及安装遇到的问题:Stats in management UI are disabled on this node
一、前言鉴于前面看过几个用Docker安装RabbitMQ的文章,在自己安装他们的安装教程后都会遇到的一个问题,这里我就重新再写一遍Docker安装RabbitMQ流程(内心复杂,就不能好好的让我把你们的安装教程链接分享出去吗,还要我自己来写一篇,让广大程序员避坑)。前面多数是跟别的安装教程重复的,老手可略过。二、找到对应镜像进入docker hub镜像仓库地址:https://hub.docker.com/.左上角搜索框输入rabbitMq,进入官方的镜像,可以看到以下几种类型的镜像;我们可.
2022-06-24 18:35:29
1657
3
原创 Docker 挂载数据卷、查看数据卷、清理数据卷
Docker 挂载数据卷、查看数据卷、清理数据卷创建容器并设置数据卷挂载查看所有数据卷列表清除数据卷
2022-06-24 15:21:34
2229
原创 SpringBoot整合Redisson使用分布式锁,模拟茅台抢购场景
SpringBoot整合Redisson使用分布式锁,模拟茅台抢购场景一、前言介绍二、项目Demo2.1.Demo下载地址2.2.模拟用户抢购2.2.1.将库存缓存到redis2.2.2.JMeter设置线程数:2.2.3.JMeter设置http请求:2.2.4.调用结果三、POM依赖四、配置类,可配置单节点和集群五、参考博客一、前言介绍前段时间研究了下分布式锁,实现分布式锁也有很多种方案,有基于数据库,基于zookeeper,基于redis+lua。一般我们常用redis+lua进行实现,zooke
2022-04-01 23:00:00
3969
原创 InnoDB解决幻读的方案 -- LBCC&MVCC
InnoDB解决幻读的方案 – LBCC&MVCC最近看了一篇写的挺不错的文章,分享给大家,文章对LBCC和MVCC都做了比较详细的解释说明,看完会有一种通透的感觉:https://mp.weixin.qq.com/s/738dB9Da-AIbMuaQLgqlzA.
2022-04-01 20:45:00
285
原创 Git | 配置命令、项目命令、常见问题、git-crypt加密解密
这里写目录标题@[TOC](这里写目录标题)一、Git安装和配置1.linux上安装git:2.查看git配置信息3.查看git用户名、密码、邮箱的配置4.设置git用户名、密码、邮箱的配置5.设置git用户名、密码、邮箱的配置(全局配置):6.git生成公钥:7.查看密钥(linux):8.查看密钥(windows):二、操作项目-常用命令汇总1.常用命令2.git子模块命令:2.git报错:命令command not found四、扩展:git-crypt加密解密1.How to Encrypt Rep
2022-03-14 12:25:04
921
原创 Linux上git pull等操作需要每次都输入用户名和密码等问题
在linux上拉取项目代码后,发现每次git pull都需要输入用户名和密码,设置全局的都没有用,终于找到解决方法,直接用以下的命令即可。git config --global credential.helper store使用此命令后还会需要输入一次用户名和密码,但是下一次就不需要了...
2022-03-14 12:23:11
2477
原创 不要再问我怎么设置Postman的环境变量和全局变量了
最近有同事问我怎么设置postman的环境变量和全局变量token,避免每次更换环境进行接口测试还需要手动改请求地址,也避免每次token后失效重新获取的token还需要手动替换。比如我们有三个环境,本地、测试、正式,一般正式不对外进行开放。下面就开始实操:一、设置环境变量(图片较多,尽量说的详细点)1.示例首先,打开新版的postman(旧版和新版有一点小区别,就是环境变量后面的图标可能变了),如下图:刚开始的时候我新建了一个请求,测试登录,看右上角是没有环境变量的,然后那个眼睛的图标其.
2022-01-06 10:06:29
10694
原创 SpringBoot 实现异步调用@Async | 以及使用@Async注解可能会导致的问题
首先我们来看看在Spring中为什么要使用异步编程,它能解决什么问题?为什么要用异步框架,它解决什么问题?在SpringBoot的日常开发中,一般都是同步调用的。但实际中有很多场景非常适合使用异步来处理,如:注册新用户,送100个积分;或下单成功,发送push消息等等。就拿注册新用户这个用例来说,为什么要异步处理?第一个原因:容错性、健壮性,如果送积分出现异常,不能因为送积分而导致用户注册失败;因为用户注册是主要功能,送积分是次要功能,即使送积分异常也要提示用户注册成功,然后后面在针对积分异常.
2021-12-01 20:30:00
6092
4
原创 Exception | 优雅的输出Exception异常信息
这两种输出方式一直在用,趁着无聊把这个发出来,顺便自己记录一下,大家视不同情况使用。通常e.getMessage()并不能获取全部的错误信息,需要用到e.printStackTrace()查看完整错误信息,但是这个方法是void 只能在控制台输出。注意:e.printStackTrace()要尽量少用或不用,可能会导致锁死有两种方式推荐1.logger方式一个直接通过logger打印出来,这个方法是最简便的import org.slf4j.Logger;import org.slf4j..
2021-11-18 20:45:00
3442
原创 Kubernetes/k8s | kubectl、stern命令行工具安装,以及常用命令汇总
文章目录一、Kubernetes/k8s基本概念CKA证书:二、kubectl常用命令汇总三、stern命令行工具安装安装命令:stern常用命令:四、其他kubectl命令文章一、Kubernetes/k8s基本概念不了解k8s的pod、svc等概念的可以阅读一下k8s的官方文档,目前已有中文版:https://kubernetes.io/zh/docs/home/.CKA证书:有兴趣的开发或运维同学可以考一下CKA证书CKA考试报名,目前支持中文:https://training.lin
2021-11-18 20:00:00
1187
原创 发现一个好用的Java本地缓存解决方案 | Google 的 Guava CacheBuilder
public static void main(String[] args) { final Cache<String, Object> cache = CacheBuilder.newBuilder().expireAfterWrite(5, TimeUnit.SECONDS).build(); Thread t1 = new Thread(() -> { while (true) { try { Thread.sleep(1
2021-08-05 09:36:13
427
原创 Explain详解与索引优化实践 | 文章记录
https://www.cnblogs.com/tufujie/p/9413852.htmlhttps://blog.csdn.net/qq_25667815/article/details/108682715
2021-08-05 09:35:02
77
原创 Kubernetes | k8s 集群环境搭建
一、集群类型Kubernetes集群大致分为两类:一主多从和多主多从。一主多从:一个Master节点和多台Node节点,搭建简单,但是有单机故障风险,适合用于测试环境。多主多从:多台Master和多台Node节点,搭建麻烦,安全性高,适合用于生产环境。...
2021-08-02 17:12:46
101
原创 CentOS8虚拟机,NAT模式连接不上宿主机或外网解决方法
一、关闭防火墙关闭防火墙:systemctl stop firewalld禁止防火墙开机启动:systemctl stop firewalld二、查看虚拟机是否正常虚拟机正常,但是宿主机无法通过ssh连接虚拟机或者是虚拟机无法连接宿主机,那也就无法ping通百度和谷歌了三、解决方法1.关闭虚拟机:编辑->虚拟网络编辑器2.重启网卡:打开windows网络连接,将下面的两个网卡禁用再启动3.测试再测试一下虚拟机或宿主机能不能互相ping通,我基本上通过这两
2021-08-02 16:42:14
1801
原创 Linux 安装gcloud(google cloud sdk)和配置环境变量
前言我在本地使用VMware安装了CentOS8的虚拟机环境,使用的NAT模式,然后可以ping通www.baidu.com和www.google.com,虚拟机能ping通外网说明网络可用,能下载相关google cloud sdk包。虚拟机VMvare,NAT模式连接不上宿主机解决方法.1、安装基础环境Linux 安装Google SDK时要求安装Python 2.7或以上版本yum -y install python362、安装Google sdk切换到你需要安装的目录下,比如我想安
2021-08-02 16:41:52
2768
原创 Solidity智能合约开发 基础语法 | 文档 | 编译器 汇总
这里写自定义目录标题Solidity源文件布局Solidity源文件布局-- importSolidity值类型Solidity引用类型Solidity地址类型地址类型成员变量地址成员变量用法字符数组(Byte Arrays)枚举(Enum)数组(Array)数组示例结构(Struct)映射(Mapping)Solidity数据位置数据位置总结// 一个简单的例子// 下面代码包含一个错误// 下面代码编译错误// 下面我们一起来玩一个猜数字游戏Solidity函数声明和类型Solidity函数可见性//
2021-07-30 10:41:48
4272
1
原创 Java 将jar包生成在项目的指定目录下
通常情况下我们的项目通过mvn clean install命令进行打包编译,然后生成的jar包在target目录下,下面代码可以直接指定到具体的目录输出:<plugin> <artifactId>maven-antrun-plugin</artifactId> <executions> <execution> <id>copy</id> <
2021-07-30 09:38:27
1131
原创 Docker 安装Maven私服Nexus,设置初始化密码
一、下载nexus3的镜像docker pull sonatype/nexus3二、查看下载的镜像docker images三、将容器内部/var/nexus-data挂载到主机/root/nexus-data目录docker run -d -p 8081:8081 --name nexus -v /root/nexus-data:/var/nexus-data --restart=always sonatype/nexus3四、查看启动的容器docker ps五、访问n
2021-06-10 18:02:33
1183
原创 Docker服务重启后让容器自动启动 | restart参数
问题:有时候我们配置docker参数后需要重启docker才生效,但是我们重启docker后,容器也就停止了,不会跟随docker启动而启动。如果服务器上需要这样的重启功能,可以有两种方法进行设置:1.容器还没有创建,在运行容器的时候加入–restart=always参数docker run -id --restart=always -p 9999:9999 -v xxxx:xxxx 镜像名称:tag2.容器已经运行的情况,运行以下命令:docker update --restart=a.
2021-05-26 17:58:50
1782
原创 Docker服务重启和关闭2800端口
docker上传镜像一般使用2800端口,但是一般对外开放的2800端口容易被挖矿病毒扫描到,上传非法文件之类的,我们可以手动修改docker的配置文件用以关闭2800端口步骤1.进入docker配置文件vi /usr/lib/systemd/system/docker.service将里面的这一行注释:ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2800 -H unix:///var/run/docker.sock 再将这一行放开注释即可:.
2021-05-26 17:58:45
1145
mybatis_plus-17版本.zip
2019-07-29
generator-Mybatis快速生成实体类和mapper文件
2018-08-01
mybatis_plus,idea快速从mapper进入xml工具-15版
2018-08-01
Mybatis快速生成实体类和mapperAndXml
2018-07-31
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人