- 博客(136)
- 资源 (12)
- 收藏
- 关注
原创 docker 常用命令
1、启动docker(以centos7安装docker23.0.1为例)12、容器与主机间数据拷贝(容器外操作)6、查看docker存储使用情况。2、查看docker服务状态。5、查看docker容器信息。7、查看本地所有镜像。
2023-11-11 17:02:26 367
原创 服务器带宽忽然暴增,不停的触发告警
线上环境,服务器的外网下行带宽达到某个阈值,触发告警,查了下服务器的带宽监控信息,是从某个时间开始突然串上去的,然后监控图形非常有规律,都是每秒达到顶峰后,又立马下去了,怀疑是不是有测试人员定时压测。),定位到了对应的ip,果然是内部人为测试导致的(正常消耗这些带宽是正常的,只是线上环境带宽不足还未扩容)上面的结果将显示每个请求的统计信息,包括请求数量,各种响应状态码的计数,以及发送的字节数。追踪到耗带宽最大的请求,以及请求频率,差不多定位到了问题,再结合抓包(通过nethogs 网卡查看。
2023-10-31 20:09:47 681
原创 Arthas生成火焰图命令报错汇总
AsyncProfiler error: Can not find libasyncProfiler so, please check the arthas directory.2、发现alpine基础镜像中缺乏libstdc++.so.6库,于是按照提示安装libstdc++,容器中执行命令apk add libstdc++;再次执行profiler start,又出现了如下错误Perf events unavailable. See stderr of the target process.
2023-10-29 11:31:21 770
原创 centos7配置 SFTP(限制指定用户访问指定目录)
确保您已经安装了OpenSSH服务器和vsftpd软件包。如果没有安装,可以使用以下命令进行安装。这样就可以对/home/oss/files/device目录进行读写,文件上传等操作。如果想要在该目录下执行写操作,则再新建目录,并授予当前登录用户的权限。禁用sftpuser用户的SSH登录,以确保只能通过SFTP访问。可以使用以下命令来查看系统中的有效用户和组。创建一个新的系统用户,并设置其密码。编辑OpenSSH服务器的配置文件。
2023-09-18 19:54:51 828
原创 python连接mysql数据库报错pymysql.err.OperationalError
2、可能新版mysql默认使用的caching_sha2_password认证方式,换成mysql_native_password就可以。2、进入msql服务,执行mysql -u root -p 回车,输入密码,也可以通过navicat/DBeaver连接数据库。优化思考,一般程序里头不会直接使用root,权限范围过大,这里新建用户,并授予特定数据库权限,供ai服务使用。1、创建账号:ai_user,密码:pw@666的用户。4、刷新内存,重新加载权限信息。3、刷新内存,重新加载权限信息。
2023-09-15 10:50:33 2401
原创 websocket服务部署在内网,app无法访问
通过nginx配置ws代理,部署nginx的服务器连通的外网和内网,通过nginx配置将原有的ws请求转换成wss,保证安全
2023-09-12 21:10:03 476
原创 redis缓存失效时间没到,数据莫名丢失问题排查
述:redis缓存了token,失效时间为24小时,可是每次不到多久,就提示token失效,重新登录后,没用多久,又提示token失效。查看了下缓存,发现数据全部没掉了,并且多了几个back1,back2...,怀疑原来redis未设置密码,会不会是被攻击了。3、输入monitor (也可以把监控信息输出到文件中:redis-cli monitor >/data/logs/redis/log0326.txt)修改宿主机/etc/conf/redis/redis.conf配置,加入密码。
2023-09-05 14:34:01 866 1
原创 浅谈下cdn以及防盗链问题
CDN(Content Delivery Network)是一种分布式网络架构,用于提供高效的内容分发服务。CDN通过将内容缓存在离用户最近的节点上,以降低用户访问内容时的延迟和提高性能。CDN通过在全球范围内部署服务器节点,使用户能够从就近的节点获取内容,从而减少了传输距离和网络拥塞,提供更快的访问速度和更稳定的用户体验。
2023-09-03 19:35:15 532
原创 Prometheus之file_sd_configs配置
基于文件的服务注册方式,可以将target的配置信息单独的写入json或者yaml配置文件中,然后将这些配置文件添加到file_sd_configs中,Prometheus服务会定期检测这些服务是否发生变化,若发生变化,则会重新配置target信息。Prometheus 服务除了通过静态配置【static_configs】配置target地址之外,还可以通过服务发现的方式来抓取目标,例如kubernetes,consol等,如果不基于容器部署,那么这里介绍基于文件的服务发现方式可能适合你。
2023-09-02 15:48:32 678
原创 集群路由策略
路由策略1.第一个:当选择该策略时,会选择执行器注册地址的第一台机器执行,如果第一台机器出现故障,则调度任务失败。2.第二个:当选择该策略时,会选择执行器注册地址的第二台机器执行,如果第二台机器出现故障,则调度任务失败。3.轮询:当选择该策略时,会按照执行器注册地址轮询分配任务,如果其中一台机器出现故障,调度任务失败,任务不会转移。4.随机:当选择该策略时,会按照执行器注册地址随机分配任务,如果其中一台机器出现故障,调度任务失败,任务不会转移。5.一致性HASH:当选择该策略时,每个任务按
2023-08-27 11:53:03 109
原创 网卡重启,导致docker容器暴露端口都无法对外开放
公司内部网络ip冲突,重新分配了某个范围的ip后,修改网络信息(位于/etc/sysconfig/network-scripts目录下对应网卡)后,重启网卡(systemctl restart network);通过iptables -n --line-numbers -vL DOCKE 查看到的数据包都是0。通过iptables -n --line-numbers -vL DOCKE 查看。二:重启docker(生效,具体是否还有其他方式后续有空再试下)一:重启iptables防火墙(不生效)
2023-08-27 11:47:13 326
原创 解析资源文件-PathMatchingResourcePatternResolver
PathMatchingResourcePatternResolver可以用来解析资源文件,主要是用来解析下的资源文件。当然它也可以用来解析其它资源文件,如基于文件系统的本地资源文件。
2023-08-27 11:46:11 311
原创 mybatis.mapper-locations=classpath*:/sql/.xml与mybatis.mapper-locations=classpath:/sql/.xml的区别在于资源路径的
需要注意的是,这两种配置方式在MyBatis中都是支持的,选择使用哪种方式取决于具体的需求和项目结构。使用了精确的classpath路径,只在classpath根路径下查找满足指定路径模式(这意味着会在所有的classpath路径下递归搜索。,表示在所有的classpath路径下查找满足指定路径模式(这意味着只会在classpath根路径下的。具体的区别在于资源路径的匹配范围不同,会更加灵活地匹配到更多的资源文件,而。则只会匹配到指定路径下的资源文件。
2023-08-21 14:08:15 537
原创 arthas—阿里开源的Java诊断工具
上面是通过trace命令来获取信息,从结果里,我们可以知道通过stack跟踪HttpServletResponse:sendError(),同样可以知道是哪个Filter返回了401。使用(选择方法或者静态变量,右键,在弹出框中选择arthas command,然后再选择对应的命令,就会copy生成好对应的命令)tt:方法执行数据的时空隧道,记录下指定方法每次调用的入参和返回信息,并能对这些不同的时间下调用进行观测。获取静态类的静态字段(获取UserController类里的logger字段)
2023-03-26 13:25:43 1560 1
原创 postgresql SQL语句优化
这样的话SELECT ID FROM lb_api_test_task将成为一个子查询,而且不会走索引,每次走一遍全表扫描。SQL优化之一NOT IN 优化。查询正在执行的所有sql。耗时很长的sql语句。
2022-10-13 10:35:20 606
原创 Error fetching server time: Detected 31.361999988555908 seconds time difference between your browser
Error fetching server time: Detected 31.361999988555908 seconds time difference between your browser
2022-09-30 19:08:29 2342
原创 redis集群监控
1、下载https://github.com/oliver006/redis_exporter/releases/download/v1.39.0/redis_exporter-v1.39.0.linux-amd64.tar.gz。vim /usr/local/prometheus-2.32.1.linux-amd64/prometheus.yml ,添加如下信息。Prometheus内置了一个web界面,我们可通过http://ip:9090进行访问。3、编写systemctl启动脚本。
2022-09-09 15:07:28 3699 3
原创 redis-6.2.6 集群搭建
1、下载安装包官网地址:Redishttps://redis.io/download可以手动下载,也可以通过如下命令下载wgethttps://download.redis.io/releases/redis-6.2.6.tar.gz2、前置说明只有一台服务器(172.168.81.16),采用伪分布式集群的方式搭建三主三从3、安装步骤#查看是否安装gccgcc --version如果未安装则先安装gcc(因为redis底层是c/c+......
2022-06-19 18:18:30 254
原创 基于Python深抓页面
一、爬虫是什么?沿着网络抓取自己的猎物(数据)爬虫指的是:向网站发起请求,获取资源后分析并提取有用数据的程序;从技术层面来说就是 通过程序模拟浏览器请求站点的行为,把站点返回的HTML代码/JSON数据/二进制数据(图片、视频) 爬到本地,进而提取自己需要的数据,存放起来使用;二、爬虫的基本流程:用户获取网络数据的方式:方式1:浏览器提交请求--->下载网页代码--.........
2022-05-13 10:22:33 180
原创 Centos7 python2.7误删重装
1、查看系统内核cat /etc/redhat-release2、彻底卸载python2rpm -qa|grep python|xargs rpm -ev --allmatches --nodeps #强制删除已安装程序及其关联whereis python |xargs rm -frv #删除所有残余文件 ##xargs,允许你对输出执行其他某些命令3、卸载yum由于yum会依赖python2,python2误删,导致yum不可用,不可用了就先删掉,以防依赖出错#删...
2021-09-06 21:02:33 482
原创 docker容器与宿主机文件copy
宿主机和容器之间复制命令如下:容器复制文件到物理机:docker cp 容器名称:容器目录 物理机目录 物理机复制文件到容器:docker cp 物理机目录 容器名称:容器目录
2021-07-16 16:08:59 193
原创 Maven中依赖包为provided,导致NoClassDefFoundError
明明包引入了,却报类找不到,查找后发现pom文件中依赖包引入的方式maven pom.xml中dependency配置了<scope>provided<scope/>,运行时该依赖无效,导致异常但是在IDEA中,maven配置<scope>provided</scope>,依赖只作用于编译和打包等,但不能用于运行类。通俗的说,配置了<scope>provided</scope>,就是在告诉IDEA,你不要担心,...
2021-07-14 18:33:35 2945
原创 IDEA中 Tomcat 控制台打印log4j日志中文乱码的解决
一、tomcat日志编码修改logging.properties,增加ava.util.logging.ConsoleHandler.encoding = UTF-8,设置控制台输出编码为UTF-8二、idea的日志显示控制台编码设置File Encodings在工具栏help -》 Edit Custom VM Options,加上-Dfile.encoding=UTF-8 注意:在idea里面改才能生效正确的操作如下所示:三、idea控制台tomcat...
2021-05-14 10:50:19 1012 1
原创 通过javadoc 生成java通用文档
说明:idea整合了javadoc的操作,可以一键生成doc文档具体步骤如下:1.选中你要生成文档的项目或者文件2. 点击上方tools->Generate JavaDoc,进行相关配置注意:前方有坑,javadoc命令运行时,默认用了gbk,需要我们在"Tools->Gerenate JavaDoc”面版的Other command line arguments 栏里输入:-encoding utf-8 -charset utf-8否则报错: 编码gbk的不可映射字符.
2021-04-27 15:54:06 124
原创 centos7ntp时间同步和时区设置
1、timedatectl查看时间各种状态:Local time: 三 2021-04-21 00:01:05 CST Universal time: 二 2021-04-20 16:01:05 UTC RTC time: 三 2021-04-21 00:01:05 Time zone: Asia/Shanghai (CST, +0800) NTP enabled: noNTP synchronized: noRTC in local TZ: yes.........
2021-04-20 16:38:45 2425
原创 redis的线程模型
1)文件事件处理器redis基于reactor模式开发了网络事件处理器,这个处理器叫做文件事件处理器,file event handler。这个文件事件处理器,是单线程的,redis才叫做单线程的模型,采用IO多路复用机制同时监听多个socket,根据socket上的事件来选择对应的事件处理器来处理这个事件。如果被监听的socket准备好执行accept、read、write、close等操作的时候,跟操作对应的文件事件就会产生,这个时候文件事件处理器就会调用之前关联好的事件处理器来处理这个事件。..
2021-04-05 21:57:29 1122
原创 日志框架冲突、适配问题
日志框架的冲突那么为什么会出现共存或者冲突呢?一般是以下几种原因: 项目手动引用了各种日志框架的包 - 比如同时引用了log4j/log4j2/logback/jboss-logging/jcl等 包管理工具的传递依赖(Transitive Dependencies)导致,比如依赖了dubbo,但是dubbo依赖了zkclient,可zkclient又依赖了log4j,此时如果你的项目中还有其他日志框架存在并有使用,那么就会导致多套共存 同一个日志框架多版本共存 JAV
2021-04-02 23:37:57 182
转载 这六个 MySQL 死锁案例,能让你理解死锁的原因!
Mysql 锁类型和加锁分析MySQL有三种锁的级别:页级、表级、行级。表级锁:开销小,加锁快;不会出现死锁;锁定粒度大,发生锁冲突的概率最高,并发度最低。行级锁:开销大,加锁慢;会出现死锁;锁定粒度最小,发生锁冲突的概率最低,并发度也最高。页面锁:开销和加锁时间界于表锁和行锁之间;会出现死锁;锁定粒度界于表锁和行锁之间,并发度算法: next KeyLocks锁,同时锁住记录(数据),并且锁住记录前面的Gap Gap锁,不锁记录,仅仅记录前面的Ga...
2021-03-31 23:16:15 93
原创 volatile关键字原理
Java内存模型(JMM)工作内存:虚拟机栈JMM8大操作JMM带来的问题线程间的变量副本不可见,会出现数据脏读的现象。volatile主要作用:使变量在多个线程间可见。也就是说被volatile修饰的变量能够保证每个线程能够获取该变量的最新值,从而避免出现数据脏读的现象。底层使用了MESI缓存一致性协议。线程1,线程2从主内存中读取变量flag加载到自己的现场栈内存中,假如线程2将flag的值修改为true,并写入到主内存中,这时候会触发总线嗅探机制,会将线程1..
2021-03-29 23:52:30 137
原创 JVM进程CPU占用率过高问题排查
定位故障的思路找出CPU占用率高的进程找出问题进程内CPU占用率高的线程通过线程栈信息找出该线程当时在运行的问题代码段操作步骤1.用top命令查找导致CPU占用率高的进程2. 用top命令查找进程内导致CPU占用率高的线程top -Hbp 进程号例如top -Hbp 153873.用JVM命令 jstack 精确定位出问题的代码段3.1 用jstack 命令dump出线程栈信息,可以直接定位到出问题的代码段。这里也分两步。第一步把上面的线程ID 15531 转...
2021-03-29 17:26:34 601
原创 xxl-job架构设计
我们先看官网提供的一张架构图来分析。从架构图可以看出,分别有调度中心和执行器两大组成部分调度中心。负责管理调度信息,按照调度配置发出调度请求,自身不承担业务代码。支持可视化界面,可以在调度中心对任务进行新增,更新,删除,会实时生效。支持监控调度结果,查看执行日志,查看调度任务统计报表,任务失败告警等等。 执行器。负责接收调度请求,执行调度任务的业务逻辑。执行器启动后需要注册到调度中心。接收调度中心的发出的执行请求,终止请求,日志请求等等。接下来我们看一下xxl-job的工作原理。
2021-03-28 21:53:35 847 1
原创 SQL性能差,想要优化,又不知如何分析,那么分析神器Explain值得你拥有!
在MySQL中,我们知道加索引能提高查询效率,但是有时候,我们加了索引依然觉得SQL查询效率低下,想看看有没有使用到索引,扫描了多少行,表的加载顺序等等,怎么查看呢?其实MySQL自带的SQL分析神器Explain执行计划就能完成以上的事情!使用方法也很简单,只需要在SQL语句前加上explain关键字就可以查看执行计划即可。执行计划包括以下信息:id、select_type、table、partitions、type、possible_keys、key、key_len、ref、rows、filte
2021-03-10 17:43:58 196 1
原创 泛型
泛型的好处是在编译的时候检查类型安全,并且所有的强制转换都是自动和隐式的,以提高代码的重用率。下面来看看这些 T、E、K、V、?这些究竟是何方神圣?其实这些全都属于java泛型的通配符,刚开始如果看到这么多通配符,可能觉得就够自己喝一壶的了,实际上这几个其实没啥区别,只不过是一个约定好的字母标识,不要害怕。其实也可以 使用大写字母A,B,C,D......X,Y,Z定义的,就都是泛型,把T换成A也一样,这里T只是名字上的意义而已。E - Element (在集合中使用,因为集合中存放的是元素),
2021-03-10 12:11:03 64
原创 mysql主从复制,读写分离
目录为什么使用主从复制主从复制基本原理主从复制基本原则主从复制存在的最大问题如何实现主从复制Master配置Slave配置为什么使用主从复制主从复制目的:可以做数据库的实时备份,保证数据的完整性; 可做读写分离,主服务器只管写,从服务器只管读,这样可以提升整体性能。随着业务量的扩展、如果是单机部署的MySQL,会导致I/O频率过高。采用主从复制、读写分离可以提高数据库的可用性。主从复制基本原理1.master 将改变(例如insert、u...
2021-03-09 23:02:03 113 2
原创 堆栈内存溢出的常见原因
栈内存溢出(StackOverflowError)的常见原因有哪些?栈溢出原因就是方法执行时创建的栈帧超过了栈的深度。最有可能的就是方法递归调用产生这种结果。堆内存溢出(OOM)的常见原因有哪些?OutOfMemoryError: Java heap space。在创建新的对象时, 堆内存中的空间不足以存放新创建的对象时发生。产生原因:程序中出现了死循环,不断创建对象;程序占用内存太多,超过了JVM堆设置的最大值。 OutOfMemoryError: unable to create new
2021-03-09 22:36:21 4912
原创 truncate和delete的区别
truncate和delete的区别 : 1、事务:truncate操作是不可以rollback的,但是delete操作是可以rollback的; 原因:truncate删除整表数据(ddl语句,隐式提交),delete是一行一行的删除,可以rollback 2、效果:truncate删除后将重新水平线和索引(id从零开始) ,delete不会删除索引 3、 truncate不能触发任何Delete触发器。...
2021-03-04 14:04:41 1194 1
原创 spring security 之 记住我功能
记住我基本原理UsernamePasswordAuthenticationFilter认证成功后会走successfulAuthentication方法 然后经过successfulAuthentication的RememberMeService其中有个TokenRepository TokenRepository生成token,首先将 token 写入到浏览器的 Cookie 中,然后将 token、认证成功的用户名写入到数据库中 下次请求时,会经过RememberMeAuth...
2021-02-18 18:02:49 152
classic-cache-killer-2.1.crx
2020-03-29
RabbitMQ用户手册
2014-10-12
freemarker教程_中文版
2012-07-04
磁盘调度算法(最短寻道时间优先算法(SSTF) 扫描算法(SCAN) 先来先服务算法(FCFS) 循环扫描算法(CSCAN)....)
2010-04-30
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人