- 博客(44)
- 资源 (1)
- 收藏
- 关注
原创 Redis哨兵搭建
Redis一主两从+三哨兵集群部署指南 本文详细介绍了在三台服务器(192.168.48.10-12)上搭建Redis高可用集群的完整步骤: 架构规划:10为主节点,11/12为从节点,三台机器均部署Sentinel哨兵,使用默认端口(Redis 6379,Sentinel 26379)。 部署流程: 统一安装Redis并配置防火墙 主节点配置bind、密码及持久化 从节点通过replicaof同步主节点 三台机器配置Sentinel监控主节点(quorum=2) 关键配置: 主从复制密码验证 哨兵故障检测
2026-07-29 10:44:06
132
原创 Redis集群模式搭建
本文详细介绍了Redis3主3从集群的生产级部署方案。方案采用Redis7.2.5版本,3台服务器各部署2个实例(1主1从),确保高可用和数据分片。部署步骤包括:系统环境准备、Redis编译安装、生产级配置模板应用、集群创建与验证。重点配置了数据持久化(RDB+AOF)、安全认证、内存管理、危险命令禁用等生产关键参数,并通过systemd实现服务自启。最后提供了集群状态检查、故障转移测试、扩容操作等运维命令,并强调安全加固和性能优化要点,确保满足企业生产环境的高并发、高可用需求。
2026-07-27 15:35:04
423
原创 Nacos集群搭建
接入 Prometheus+Grafana 监控 Nacos 服务状态、Raft 集群状态、数据库连接池,宕机触发短信 / 钉钉告警。(2)MySQL5.7+/8.0:独立数据库服务器 192.168.1.200,开启主从复制,存储 Nacos 配置库。(3)防火墙放行端口:8848(http)、7848(raft 选举)、9848(grpc 通信)在节点 1 新增配置,登录节点 2、3 控制台,查看配置是否同步,验证集群数据一致性。停止 Leader 节点,等待 30 秒,重新查询集群节点接口。
2026-07-27 15:00:22
368
原创 Redis的java客户端(SpringDataRedis)
本文介绍了SpringDataRedis的使用方法。首先通过引入依赖和配置application.yml文件建立Redis集群连接。针对序列化问题,提供了两种解决方案:一是自定义RedisTemplate使用JSON序列化,但会额外存储类信息增加内存开销;二是使用StringRedisTemplate手动处理对象序列化,通过ObjectMapper将对象转为JSON字符串存储,以节省内存空间。最后通过测试案例演示了两种方案的具体实现,并对比了它们的优缺点。
2025-09-19 17:33:33
325
1
原创 Spring AOP 实战流程
日志记录(操作日志、调用日志、性能日志)权限校验(方法级权限控制)事务管理(声明式事务)异常统一处理缓存控制(方法结果缓存)接口限流、防重复提交等
2025-09-14 09:56:02
1007
原创 VMware启动虚拟机报“另一个程序已锁定文件的一部分,进程无法访问”
这个目录,每个人目录不一样,详见上图报错位置。1)定位到虚拟机磁盘目录,我这里是。2)在这个目录中找到后缀名以。3)再次重新启动此虚拟机即可。结尾的目录,将所有以。
2025-03-25 17:03:15
1392
1
原创 Apache HttpClient使用
Apache HttpClient 是一个开源的 Java HTTP 客户端库,支持 HTTP/1.1 和 HTTP/2 协议。它提供了丰富的功能,例如:发送 GET、POST、PUT、DELETE 等 HTTP 请求。处理 HTTP 请求和响应的头部、状态码、实体等。支持连接池、重试机制、代理、SSL/TLS 等高级功能。
2025-03-25 11:25:55
2533
原创 Oracle12C数据库搭建手册
创建文件sudo systemctl daemon-reload #重载systemd管理守护进程配置文件sudo systemctl restart docker #重启 Docker 服务保存退出镜像加速方法一:假如拉取原始镜像命令如下仅需在原命令前缀加入加速镜像地址 例如:方法二:一键设置镜像加速:修改文件 /etc/docker/daemon.json(如果不存在则创建)修改JSON文件 更改为以下内容 然后保存保存好之后 执行以下两条命令。
2024-10-31 11:20:16
1808
原创 PostgreSQL数据库离线搭建手册
在欧拉(EulerOS)系统中离线搭建PostgreSQL 15.8和PostGIS 3.2的过程,需要考虑到欧拉系统的特定环境和离线安装的约束。以下是一个详细的搭建过程,但请注意,由于欧拉系统的具体版本和配置可能有所不同,以下步骤可能需要根据实际情况进行调整。确保库的路径被添加到系统的库搜索路径中,例如通过编辑/etc/ld.so.conf.d/下的配置文件并运行ldconfig。同时下载PostGIS依赖的库文件,如GEOS、Proj、GDAL等,确保这些库与PostGIS 3.2兼容。
2024-10-31 11:19:33
1127
原创 Prometheus+Grafana监控MySQL
【3.2】通过浏览器访问http://被监控端IP:9100/metrics就可以查看到node_exporter在被监控端收集的监控信息。【6.1】我们把prometheus服务器收集的数据做为一个数据源添加到grafana,让grafana可以得到prometheus的数据。【5.3】回到web管理界面点Status-->Targets-->就可以看到监控的MySQL服务器了。【5.2】回到prometheus服务器的配置文件里添加被监控的mariadb的配置段。【2.4】监控本机数据展示。
2024-06-14 15:52:37
2678
原创 Tomcat版本升级
二、若Linux启动Tomcat的时候,报如下错误:意思是没有给bin目录下的文件授权可执行权限。从Apache Tomcat官方网站下载所需的Tomcat版本。检查新版本的Tomcat是否与你的应用程序和其他依赖项完全兼容。将之前备份的配置文件复制到新Tomcat的相应目录下。如果Tomcat的路径更改,更新系统环境变量(如。将下载的Tomcat压缩包解压到新的目录。(Windows)启动Tomcat。备份当前的Tomcat配置文件(如。将你的应用程序复制到Tomcat的。备份数据库(如果相关)。
2024-05-22 17:04:15
3780
1
原创 阿里云对象存储OSS
2、将生成的access-key、secret-key等信息配置到application.yml。在用户可以看见刚才的创建的用户信息并将生成的access-key、secret-key保存。3、接下来创建子用户,鼠标放到主账号上面会弹出AccessKey管理。创建完成后在Bucket列表可以查看到刚刚创建的Bucket。6、这里文件上传的功能我们采用后端签名后直传,流程如下。2、singleUpload.vue单个文件上传。2、开通OSS对象存储 并创建Bucket。5、需要实现的效果图展示。
2024-05-22 15:43:37
1145
原创 DataX-Web部署和使用
目录一、准备(一)一台centos 7主机、连网(二)关闭防火墙二、jdk安装配置(一)将jdk安装包上传到opt下或用wget下载将jdk压缩包授权并解压(二)配置环境变量,在profile最后面添加(三)让配置生效(四)查看java版本,执行下面命令出现jdk版本即安装成功三、mysql5.7安装配置(一)查找已经安装的mysql安装包(二)CentOS7下还需要查找是否存在mariadb包:(三)上述两步骤如果查出了mysql则需要将对应的文件删除(四)MySQL 安装会通过 MySQL 用户在 /t
2024-05-18 13:31:35
3726
原创 Slave_IO_Running: Yes Slave_SQL_Running: No 解决方案
salve 连接 master 成功,但是 slave 自己的 SQL 功能关闭了,这样是没办法完成主从复制的!到slave服务器上执行手动同步。
2024-04-29 09:50:40
758
原创 mysql+keepalived实现高可用
首先我们关闭master01上的mysql(因为此时vip正在mater01上),制造mysql故障。刚开始vip在master01上,但我的master02启动的早,所以vip在master02上。查看master01有没有vip,从下面的结果可以看出vip已经漂移到master01上。若没有报错,进入下一步操作,若执行报错,多半是没有权限,执行下面语句赋予权限,然后重试。正如预期,master02上没有vip,vip依旧在master01上,测试成功。关闭master01上的mysql。
2024-04-28 16:46:06
1365
原创 java多线程及异步编排
核心线程数,创建好就准备就绪的线程数量,就等待接受异步任务去执行,此核心线程一直存活,除非线程池消毁或指定allowCoreThreadTimeOut参数,:存活时间,如果当前的线程数大于核心线程数,只要线程空闲大于指定的存活时间就释放空闲的线程(maximumPoolSize-corePoolSize)方法以Async结尾,意味着Action使用相同的线程执行,而Async可能会使用其他线程执行(如果是使用相同的线程池,也可能被同一个线程选中执行)接收任务的处理结果,并消费处理,无返回结果。
2024-04-26 14:57:20
2136
2
原创 linux centos查看及删除用户组的方法
在使用useradd添加用户时,有时会丢失根目录下的环境变量文件,.bashrc和.bash_profile文件。linux切换创建的用户组时发现如上问题,本应该是用户@主机名+路径的形式。
2024-04-08 08:29:38
1157
1
原创 centos卸载docker教程
2、执行一下命令防止文件有残留。较旧的 Docker 版本称为 docker 或 docker-engine。6、完成以上步骤后,Docker成功从CentOS系统中卸载。3、卸载新的 Docker 版本称为 docker-ce(社区版)1、查看当前docker的服务和镜像。
2024-03-28 11:16:40
2227
原创 TCP协议的三次握手和四次挥手
二者都是传输层协议,TCP是面向连接的,而UDP是无连接的协议。而在UDP的情况下,如果数据包丢失,它不会请求重新传输,目标计算机会收到损坏的数据。与UDP相比,TCP速度较慢,因为TCP在传输数据之前建立连接,并确保数据包的正确传递。TCP 标头大小为 20 字节,TCP 标头包含选项、填充、校验和、标志、数据偏移量、确认号、序列号、源端口和目标端口等。另一方面,TCP是健壮的,可靠的,并保证以相同的顺序传递数据包。因此,我们得出结论,TCP和UDP对于数据传输都是必不可少的。TCP连接(三次握手)
2023-10-06 11:38:41
176
原创 mysql存储引擎
存储引擎就是存储数据、建立索引、更新/查询数据等技术的实现方式。存储引擎是基于表的,而不是基于库的,所以存储引擎也可以被称为表类型。查询建表语句(mysql默认存储引擎为:InnoDB)查询当前数据库支持的存储引擎。
2023-06-02 11:56:43
346
原创 mysql数据传到前端时间格式错误
在application.yml或application.yml中添加以下代码,配置json的时间格式和时区(东八区)
2023-03-15 19:44:34
295
1
原创 mysql多表查询
三、通过外连接left join,left outer join,right join,right outer jion,union进行查询。right outer join(相当于right join+[where 表1.字段 is null])left outer join(相当于left join+[where表2.字段 is null])准备两张表:一张users用户表,一张user_addr用户地址表,它们有共同的user_id。二、通过内连接inner join进行查询。
2023-01-31 17:22:10
4250
原创 Java中的Lambda表达式
而在这之上,如果一个方法的调用中,这个方法给接口提供的参数和他接收的返回,和你现有某个实现完全一致,就可以进一步进行简化,称为方法引用。forEach是属于java集合的一个方法,准确来说,集合在java8中拥有一个stream方法,可以得到一个流对象,这个对象拥有很多方法,这些方法可以很方便的对集合进行例如排序,分组,计数,遍历,转换等操作,而遍历是比较常见的一种,forEach就是用来做这个的,这里的forEach就是stream的forEach。为了让编译器能确保一个接口满足函数式接口的要求,
2022-09-09 11:26:54
780
原创 Java File类
一、java使用File类来表示计算机系统磁盘文件的对象类型。File中提供了大量的方法,可以对文件进行增加、删除、修改、重命名等常规操作。File类的对象会存储文件自身的信息,例如文件在系统中的存储目录、文件大小、文件读写权限等。二、创建File文件package Java_IO.EilePractice;import java.io.File;import java.io.IOException;public class Demo01 { public static void
2022-05-21 16:48:26
2371
原创 Java集合
一、HashMap实现了Map接口,同时继承了AbstractMap类。它利用哈希值来存储数据,不允许重复的键出现,但允许有null值和null键,最多只允许一个为null的键(这也是因为hashMap键不能重复)。HashMap因为使用了哈希表,所以对其中的映射关系具有很快的访问速度。HashMap不保证存入键值对映射的顺序,而且它的顺序可能会发生变化。二、以下是遍历HashMap的四种方法:package HashMap;import java.util.HashMap;import j
2022-05-19 10:38:39
818
原创 Java 对象和类
Java作为一种面向对象语言。支持以下基本概念:多态 继承 封装 抽象 类 对象 实例 方法 重载本节我们重点研究对象和类的概念。对象:对象是类的一个实例,有状态和行为。例如,一条狗是一个对象,它的状态有:颜色、名字、品种;行为有:摇尾巴、叫、吃等。 类:类是一个模板,它描述一类对象的行为和状态。下图中男孩(boy)、女孩(girl)为类(class),而具体的每个人为该类的对象(object):Java中的对象现在让我们深入了解什么是对象。看看周围真实的世界,会发
2022-05-09 20:38:47
157
原创 Java 重写与重载
重写(Override)重写是子类对父类的允许访问的方法的实现过程进行重新编写, 返回值和形参都不能改变。即外壳不变,核心重写!重写的好处在于子类可以根据需要,定义特定于自己的行为。 也就是说子类能够根据需要实现父类的方法。重写方法不能抛出新的检查异常或者比被重写方法申明更加宽泛的异常。例如: 父类的一个方法申明了一个检查异常 IOException,但是在重写这个方法的时候不能抛出 Exception 异常,因为 Exception 是 IOException 的父类,只能抛出 IOExcep
2022-05-09 20:36:16
1980
原创 学生管理系统
学生信息管理系统设计一、需求分析1、开发背景:信息化已经渗透到我们生活的方方面面,学校信息化的发展也是一种不可避免的趋势。伴随着高等院校招生规模的不断扩大,传统人工管理信息的方法不但不能满足这种管理上的需求,而且因为人员、资源成本的上涨,它给学校带来越来越多管理上的问题。同人工管理方式相比,信息化、网络化的学生信息管理系统不但解决了信息管理上的复杂问题,也降低学校的了管理成本,而且在节约性、灵活性、方便性这几方面上也是人工管理方式不可比拟的。因此,学生信息管理系统的开发和使用对于学校而言是必要的
2022-05-09 20:29:15
39708
3
原创 Java 封装、继承和多态
在面向对象程式设计方法中,封装(英语:Encapsulation)是指一种将抽象性函式接口的实现细节部份包装、隐藏起来的方法。封装可以被认为是一个保护屏障,防止该类的代码和数据被外部类定义的代码随机访问。要访问该类的代码和数据,必须通过严格的接口控制。封装最主要的功能在于我们能修改自己的实现代码,而不用修改那些调用我们代码的程序片段。适当的封装可以让程式码更容易理解与维护,也加强了程式码的安全性。封装的优点良好的封装能够减少耦合。 类内部的结构可以自由修改。 可以对成员变量进行更精确的控
2022-05-08 17:59:18
169
原创 Java多线程(一)
一、普通方法调用和多线程二、进程(Process)和线程(Thread)。1、提起进程,就不得不说程序。程序是指令和数据的有序集合,其本身没有任何运行意义,是一个静态概念。2、进程则是执行程序的一次执行过程,是一个动态概念。是系统资源分配的单位。3、通常在一个进程中包含多个线程,当然一个进程至少有一个线程,不然没有存在的意义。线程是CPU调度和执行的单位。注意:很多多线程是模拟出来的,真正的多线程是指有多个cup,即多核,如服务器。如果是模拟出来的多线程,即在一个cpu的情况下,在同
2022-04-16 16:40:42
184
原创 搭建和使用OpenStack
内容及原理 1.0.系统环境 1)生产测试应用的服务器最好是物理机,虚拟目前可以完成搭建测试体验 2)系统选择版本:CentOS7 3)控制节点Controller :192.168.48.165 计算节点Nova:192.168.48.164 1.1.配置域名解析 1)配置主机名 hostname openstack01.zuiyoujie.com hostname ...
2022-04-09 20:50:25
3341
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅