![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
运维
文章平均质量分 85
6曦轩
一个家事复杂的程序员
一个没有感情的广东人
展开
-
Centos 定时重启 tomcat 服务的方法
场景某一天客户突然跟我说单机服务请求失败,我一看情况,是 tomcat 挂了,但是日志却没有任何报错信息,用 top 命令查看也没发现啥问题,直接重启之后并没有啥问题,于是我就猜想会不会是运行太长时间,有一些程序内部出了异常,但是没有抛出来,短时间定位不到问题,于是我就想着,先把 tomcat 做个定时重启,确保每天服务都正常运行。正文重启tomcat的shell脚本#!/bin/bash. /etc/profiletomcatPath="这里放tomcat的路径"binPath="$tom原创 2021-08-07 15:40:56 · 1086 阅读 · 0 评论 -
【转】Redis 分布式——可用性保证之 Sentinel(实战篇)
Sentinel 实战Sentinel 配置为了保证 Sentinel 的高可用,Sentinel 也需要做集群部署,集群中至少需要三个 Sentinel 实例(推荐奇数个,防止脑裂)。hostname IP 地址 节点角色&端口master 192.168.8.203 Master:6379 / Sentinel : 26379slave1 192.168.8.204 Slave :6379 / Sentinel : 26379Slave2 192.168.8.205 Slave :6原创 2021-02-19 21:15:03 · 402 阅读 · 2 评论 -
Redis一主二从Sentinel监控配置
开启哨兵模式,至少需要3个Sentinel实例(奇数个,否则无法选举Leader)。本例通过3个Sentinel实例监控3个Redis服务(1主2从)。IP地址 节点角色&端口192.168.8.203 Master:6379 / Sentinel : 26379192.168.8.204 Slave :6379 / Sentinel : 26379192.168.8.205 Slave :6379 / Sentinel : 26379防火墙记得关闭!!!原创 2021-02-18 23:33:07 · 222 阅读 · 2 评论 -
VMware+Centos7 静态IP设置方法
有很多小伙伴问我关于VMware+Centos7如何设置静态IP的问题。为了彻底帮助大家解决这个问题,我专门写一篇文章做一个说明查看虚拟网卡信息虚拟机安装好以后,当前的系统会多出来两个虚拟网卡,一般情况下这两个网卡的命名是VMware Virtual Ethernet Adapter for VMnet1VMware Virtual Ethernet Adapter for VMnet8我们可以把虚拟机中的系统的静态IP绑定到VMnet8上,所以第一步,我们要看一下VMnet8的..原创 2021-02-18 23:19:20 · 456 阅读 · 0 评论 -
CentOS 7单机安装Redis Cluster(3主3从)
为了节省机器,我们直接把6个Redis实例安装在同一台机器上(3主3从),只是使用不同的端口号。机器IP 192.168.8.207更新:新版的cluster已经不需要通过ruby脚本创建,删掉了ruby相关依赖的安装cd /usr/local/soft/redis-5.0.5mkdir redis-clustercd redis-clustermkdir 7291 7292 7293 7294 7295 7296复制redis配置文件到7291目录cp /usr/local/原创 2021-01-24 22:29:57 · 214 阅读 · 0 评论 -
【承】Redis 原理篇——Redis 高性能深入剖析
Redis 为什么这么快?Redis 到底有多快?https://redis.io/topics/benchmarkscd /usr/local/soft/redis-5.0.5/srcredis-benchmark -t set,lpush -n 100000 -q结果(本地虚拟机):SET: 51813.47 requests per second —— 每秒钟处理 5 万多次 set 请求LPUSH: 51706.31 requests per second —— 每秒钟处理 5 万原创 2020-11-01 14:31:21 · 691 阅读 · 0 评论 -
【承】Redis 原理篇——Redis 的内存回收机制
内存回收Reids 所有的数据都是存储在内存中的,在某些情况下需要对占用的内存空间进行回收。内存回收主要分为两类,一类是 key 过期,一类是内存使用达到上限(max_memory)触发内存淘汰。过期策略要实现 key 过期,我们有几种思路。定时过期(主动淘汰)每个设置过期时间的 key 都需要创建一个定时器,到过期时间就会立即清除。该策略可以立即清除过期的数据,对内存很友好;但是会占用大量的 CPU 资源去处理过期的数据,从而影响缓存的响应时间和吞吐量。惰性过期(被动淘汰)只有当访问一个 k原创 2020-08-29 11:32:59 · 319 阅读 · 0 评论 -
【承】Redis 原理篇——关于 Redis 中的事务
Redis 事务先看官网https://redis.io/topics/transactions/http://redisdoc.com/topic/transaction.html为什么要用事务我们知道 Redis 的单个命令是原子性的(比如 get set mget mset),如果涉及到多个命令的时候,需要把多个命令作为一个不可分割的处理序列,就需要用到事务。例如我们之前说的用 setnx实现分布式锁,我们先 set,然后设置对 key 设置 expire,防止 del 发生异常的时候锁不原创 2020-08-24 21:32:10 · 282 阅读 · 0 评论 -
【起】Redis 基础篇——基本数据结构之总结篇
前言距离过年那会闲在家更新的 MySQL 系列已经过去一段时间了,这段时间一直在忙其他的,所以博客的更新也就搁置了,但是一直在想着要更新啥内容比较好,刚好朋友给了我一本 Redis 的书籍,我就打算看完结合官方的文档总结一下,分享给大家,如果有什么不对的地方请指正。Redis 系列,我想以“起承转合”的形式来更新,不过不一定是四篇噢,因为篇幅有限,太长怕你们没有耐心看完,可能《起》篇就分为几篇博文来叙述了,我也会对其进行规整,方便大家看完能更好的吸收,毕竟写文章的我能得到各位观看我的文章,是我的荣幸,我原创 2020-08-07 09:26:18 · 295 阅读 · 0 评论 -
【起】Redis 基础篇——基本数据结构之 List,Set
List 列表存储类型存储有序的字符串(从左到右),元素可以重复。可以充当队列和栈的角色。操作命令元素增减:lpush queue alpush queue b crpush queue d elpop queuerpop queueblpop queuebrpop queue取值lindex queue 0lrange queue 0 -1存储(实现)原理在早期的版本中,数据量较小时用 ziplist 存储,达到临界值时转换为 linkedlist 进行存储,分别对原创 2020-07-31 10:08:14 · 462 阅读 · 0 评论 -
【起】Redis 基础篇——基本数据结构之String,Hash
前言距离过年那会闲在家更新的 MySQL 系列已经过去一段时间了,这段时间一直在忙其他的,所以博客的更新也就搁置了,但是一直在想着要更新啥内容比较好,刚好朋友给了我一本 Redis 的书籍,我就打算看完结合官方的文档总结一下,分享给大家,如果有什么不对的地方请指正。Redis 系列,我想以“起承转合”的形式来更新,不过不一定是四篇噢,因为篇幅有限,太长怕你们没有耐心看完,可能《起》篇就分为几篇博文来叙述了,我也会对其进行规整,方便大家看完能更好的吸收,毕竟写文章的我能得到各位观看我的文章,是我的荣幸,我原创 2020-07-27 15:03:30 · 502 阅读 · 0 评论 -
【起】Redis 概述篇——带你走过 Redis 的前世今生
距离过年那会闲在家更新的 MySQL 系列已经过去一段时间了,这段时间一直在忙其他的,所以博客的更新也就搁置了,但是一直在想着要更新啥内容比较好,刚好朋友给了我一本 Redis 的书籍,我就打算看完结合官方的文档总结一下,分享给大家,如果有什么不对的地方请指正。Redis 系列,我想以“起承转合”的形式来更新,不过不一定是四篇噢,因为篇幅有限,太长怕你们没有耐心看完,可能《起》篇就分为几篇博文来叙述了,我也会对其进行规整,方便大家看完能更好的吸收,毕竟写文章的我能得到各位观看我的文章,是我的荣幸,我必须原创 2020-07-23 10:24:33 · 624 阅读 · 0 评论 -
mount:未知的文件系统类型“exfat“ 问题思考与解决
问题描述给公司的闲置电脑装了一个 CentOS7,打算当自己平时练手用的服务器,今天拿了自己的移动硬盘,想把之前的东西拷过去,但是 mount 的时候发现 mount 不上去(我的是 exFat 格式的也就是 fat64,支持 macOS和 Windows 的文件互传)。思考那 Mac 上原本也是不支持 ntfs 的啊(苹果没有明确说支持,也没有在系统中自带提供),但是我们可以通过插件的形式来让其可以支持这种格式(但是曦轩为了方便,还是直接把移动硬盘格式化成 exFat 格式,毕竟很多 NTFS 插原创 2020-07-03 14:09:24 · 16040 阅读 · 5 评论 -
CentOS7.2 安装单机 Redis
前言鉴于我在准备 Redis 方面的文章,所以,我先附上一份《CentOS7 安装单机 Redis》的教程,教程比较简单,按照文章所说一步一步执行即可。正文我用的是 CentOS 7.2,其实 Redis 安装在每个系统上大同小异,所以我就以我的系统为例,但是由于可能因为环境差异,遇到一些问题,记住,不要慌,可以找度娘,也可以找我,毕竟教学相长嘛。1. 下载redis下载地址在:redis.io比如把 Redis 安装到 /home/usr/soft/cd /home/usr/soft/wg原创 2020-06-15 15:29:52 · 279 阅读 · 0 评论 -
Failed to initialize component [org.apache.catalina.webresources.WarResourceSet@1552a862]解决
异常小项目直接打包成 war 包丢到 tomcat 运行,在发布的时候发生错误:Failed to initialize component [org.apache.catalina.webresources.WarResourceSet@1552a862]分析项目是用 maven 管理的,有代码改动,想部署多一个供另外一个项目访问,pom 文件中的 groupId 和 artifactId 没有改动,导致冲突。解决groupId 和 artifactId 组成 war 包的唯一识别标志,只要原创 2020-05-22 10:11:40 · 2166 阅读 · 0 评论 -
"The valid characters are defined in RFC 7230 and RFC 3986"解决
问题java.lang.IllegalArgumentException: Invalid character found in the requesttarget. The valid characters are defined in RFC 7230 and RFC 3986org.apache.coyote.http11.Http11InputBuffer.parseRequestLine(Http11InputBuffer.java:467)org.apache.coyote.http1原创 2020-05-09 15:48:32 · 483 阅读 · 0 评论 -
【概述篇】分布式架构的演进过程
前言正文架构的本质一个软件系统随着功能越来越多,调用量急剧增长,整个系统逐渐碎片化,越来越无序,最终无法维护和扩展,所以系统在一段时间的野蛮生长后,也需要及时干预,避免越来越无序。架构的本质就是对系统进行有序化重构,使系统不断进化。那架构是如何实现无序到有序的呢?基本的手段就是分和合,先把系统打散,然后重新组合。分的过程是把系统拆分为各个子系统 / 模块 / 组件,拆的时候,首先...原创 2020-03-24 15:28:50 · 402 阅读 · 0 评论 -
MySQL相关(二)- 一条更新语句是如何执行的
前言上一篇文章讲了 《一条查询语句是如何执行的》,应该很多人都注意到我在前缀 MySQL 相关后面加了个(一)吧,哈哈哈哈,有一肯定有二,认真负责的我怎么会只说查询语句的执行流程而不说更新修改删除语句的执行流程呢?说完这些流程原理之后肯定还要再说说索引方面的东西啦,至于啥时候能更新完,曦轩在这里只能说,尽情期待~这里有一张脑图,想要完整高清图片可以到微信我的公众号下【6曦轩】下回复 MySQL...原创 2020-01-30 20:34:27 · 975 阅读 · 0 评论 -
MySQL相关(一)- 一条查询语句是如何执行的
前言学习一个新知识最好的方式就是上官网,所以我先把官网贴出来 MySQL官网 (点击查阅),如果大家有想了解我没有说到的东西可以直接上官网看哈~目前 MySQL 最新大版本为8.0,但是鉴于目前应用比较多的还是 5.7,所以今天在这里还是针对 5.7 来做讨论。看了官网关于 MySQL 的介绍之后,我发现一个有趣的事情。在我身边的同事,很多都是把 MySQL 读错了,当然,也是因为大家已经约定...原创 2020-01-29 22:04:07 · 3526 阅读 · 0 评论 -
阿里云RDS数据库与自建数据库做主从同步
场景购买了阿里云的RDS数据库,基础版,没有主备,有做本地备份,但是如果RDS宕机了没办法马上切到可用的数据库,为了系统的高可用和容灾,决定做一下RDS和自建数据库的主从同步(不购买RDS的高可用版说到底也是因为qiong……)前提大版本相同的MySQL,我的RDS是5.7的,原本CentOS上是用预置yum源安装的mariadb5.5,于是我就先新增了MySQL5.7的源对数据库版本进行更...原创 2019-03-22 12:14:11 · 5437 阅读 · 4 评论 -
关于tomcat在centos 7下启动慢的问题
场景在 centos 7 下安装 tomcat 之后重启速度很慢,有时候要等个十几分钟到几十分钟。解决经查阅验证,是由于熵过低导致,执行以下命令:yum install rng-tools systemctl start rngd ...原创 2019-05-20 09:51:09 · 307 阅读 · 0 评论 -
JVM GC知识(二)- HotSpot 垃圾回收器
Sun HotSpot垃圾回收器概览新生代和老年代用到的一些垃圾回收器永久代当永久代和老年代触发 GC 时,除CMS均会触发 Full GC首先按照新生代配置的GC方式进行 Minor GC;再按照老年代配置的GC方式对老年代和永久代进行GC;若 JVM 估计 Minor GC后可能会发生晋升失败,则直接采用老年代配置的GC方式对新生代,老年代进行GC一些术语串行 ( Se...原创 2019-05-24 15:24:24 · 290 阅读 · 0 评论 -
JVM GC相关(三)- GC 调优
前言在前面两篇文章已经介绍了有关GC的算法以及垃圾回收器的选择,今天这篇来讲下如何针对GC进行JVM调优。正文堆大小的调优一般来说,堆越大越好降低GC频率,但过大可能会增加单次GC的时间对象更有可能成为垃圾受硬件和操作系统限制32位操作系统单个进程的最大可用内存为2G,64位无限制小心平衡New和Old的比例参数-Xms=1024MB:堆的最小值-Xmx=1024...原创 2019-05-24 16:57:03 · 199 阅读 · 0 评论 -
JVM GC知识(一)- GC算法
每个使用Java的开发者都知道Java字节码是在JRE中运行。JVM则是JRE中的核心组成部分,承担分析和执行Java字节码的工作,而Java程序员通常并不需要深入了解JVM运行情况就可以开发出大型应用和类库。尽管如此,如果你对JVM有足够了解,就会对Java有更好的掌握,并且能解决一些看起来简单但又尚未解决的问题。首先,我们来看一下JVM不得不知道的体系结构,在编译完之后的class文件装载到...原创 2019-05-23 17:58:15 · 263 阅读 · 0 评论 -
docker踩坑"Cannot connect to the Docker daemon at unix:/var/run/docker.sock. Is the docker daemon"
前言由于最近想把阿里云服务器上发布的内容做一下迁移,就想起之前有听说过的docker容器技术。Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。发现在慢慢熟悉 docker 之后,准备将服务器的内容放到容器(container)中打包(...原创 2019-06-20 16:58:06 · 4145 阅读 · 4 评论 -
Dockerfile的编写指令
FROM功能为指定基础镜像,并且必须是第一条指令。如果不以任何镜像为基础,那么写法为:FROM scratch。同时意味着接下来所写的指令将作为镜像的第一层开始语法:FROM < image >FROM < image >:< tag >FROM < image >:< digest>三种写法,其中< tag...原创 2019-06-25 17:28:44 · 1744 阅读 · 2 评论 -
docker学习总结整理
前言关于 docker 的容器技术很早之前就有耳闻,一直以来就以为是一个类似虚拟机的东西,但是能更轻量级,方便开发和运维之间的环境部署这样。刚好最近有个需求要把原先的云服务器的东西迁移(之前都没用上容器技术),我马上就想到了 docker,经过一个星期的学习有了更深刻的了解,在此想分享下自己一些关于docker的知识和理解。总结docker是什么Docker 是一个开源的应用容器引擎,让开...原创 2019-06-26 14:14:27 · 346 阅读 · 0 评论