- 博客(16)
- 收藏
- 关注
原创 在AWS EKS上滚动更新pod时ingress出现502 Bad Gateway错误
主要思想是确保pod的状态变更有足够的时间传播到ingress,并且貌似pod进入状态时ingress才会开始处理,pod在执行preStop的时候依然是处于Running状态,执行完毕才会进入Terminating状态。所以在preStop进行休眠时没有效果的,需要程序收到SIGTERM信号后,再延迟一段时间关闭(好像只能在自己程序里进行处理了)。
2023-10-06 22:34:01
396
1
原创 什么是字符集与编码?
文章目录用一个简单的例子理解字符集与编码再看什么是字符集,什么是编码方案(规则),什么是编码呢?ASCII码Unicode那么Unicode到底是什么呢?Unicode能直接存储吗?UTF-8(8-bit Unicode Transformation Format)UTF-8是怎么将Unicode编码为二进制的?例UTF-16(16-bit Unicode Transformation Format)UTF-16是怎么将Unicode编码为二进制的?例1例2Java中需要注意的地方为什么Java、C#、Ja
2021-12-19 20:20:53
1174
原创 记一次TIME_WAIT过多导致的服务异常
文章目录前言排查问题为什么会有这么多TIME-WAIT呢?我们先来回忆一下TCP四次挥手的过程阻止延迟数据段保证连接被关闭开始解决问题方案1方案2总结前言前几天萌新遇到了一个问题,客户购买了我们的产品以后,发现使用过程中QPS一高,就有报错,虽然萌新也没遇到过类似的问题,但是客户反馈了问题萌新也只能一脸懵逼的去排查排查问题使用jmeter对接口进行压测的过程中,发现有很多报错由于接口返回的报错内容很不明显,看不出问题,只能看服务的日志,然后发现日志里提示连不上mysql。于是萌新登录my
2021-12-16 03:00:20
2922
1
原创 重学ss命令
简介ss(Socket Statistics)是一个查询套接字的工具,它可以显示出类似于netstat的信息。和其它工具相比,ss能显示出更多的信息。并且比netstat更加灵活,同样的查询,可能netstat需要写挺长的awk外加好几层管道做过滤,ss很多情况下可以不使用那么复杂的管道,直接通过参数就能得到我们想要的结果。关于什么是套接字,可以看萌新之前的一篇文章。常用参数-h, –help: 显示帮助信息-V, –version: 显示版本信息-H, –no-header: 不显示H
2021-12-16 01:20:22
1897
2
原创 重学netstat命令
文章目录套接字是什么?netstat命令简介常用参数常用例子套接字是什么?我们先来想一下,线程之间通信我们都知道,比如Java中不同线程可以访问同一个堆内存,自然也就可以方便的交互数据,那么进程之间应该如何通信呢?进程之间要互相传输数据应该怎么办呢?线程之间通信也有很多种方式比如: 管道pipe、共享存储、信号量、套接字(Socket)等等。其中一种方式就是Socket,套接字(Socket)是一个抽象的概念,Socket可以看成是两个应用程序进行通信时,各自通信连接中的端点,是一个逻辑上的
2021-12-16 01:16:02
2400
3
原创 net.ipv4.tcp_tw_reuse是干嘛的?
文章目录前言准备工作sd01的配置sd02的配置开始测试关闭net.ipv4.tcp_tw_reuse打开net.ipv4.tcp_tw_reuse关闭客户端的net.ipv4.tcp_timestamps关闭服务器端的net.ipv4.tcp_timestampsreuse的握手过程和正常握手是一样的吗?总结前言昨天萌新学习了net.ipv4.ip_local_port_range参数的作用,今天再来学习一下net.ipv4.tcp_tw_reuse这个参数。下面是萌新测试环境的系统和内核版本
2021-12-15 03:14:42
6360
原创 net.ipv4.ip_local_port_range到底是干啥的?
文章目录前言准备工作相同目标IP不同目标端口多个目标IP相同端口多个目标IP不同端口总结前言net.ipv4.ip_local_port_range这个参数网上好几种说法,有的说这个值决定了同一个客户端ip可以创建的连接数,也有的说客户端ip对同一个ip+port所创建的连接数,于是萌新决定自己测试一下。下面是萌新测试环境的系统和内核版本# cat /etc/redhat-releaseCentOS Linux release 7.6.1810 (Core)# uname -aLinux
2021-12-14 05:03:10
13141
1
原创 重学MySQL(InnoDB Buffer Pool是什么?)
文章目录InnoDB Buffer Pool是什么?我们的数据是如何放在InnoDB Buffer Pool中的?InnoDB怎么知道数据页是否在Buffer Pool中?InnoDB Buffer Pool的组成free链表flush链表LRU链表free链表已经被用完了怎么办?简单的LRU链表会有什么问题吗?问题一:问题二:总结上面的两个问题实际的LRU链表是怎么设计的?数据什么时候会进入old区域,什么时候会进入young区域呢?每访问一次数据就移动一次LRU链表吗?InnoDB Buffer Poo
2021-12-11 21:32:28
1619
2
原创 Linux配置免密
前言由于为了方便登录,或者为了方便的在脚本中使用scp命令同步数据等问题,所以我们需要给机器之间配置免密。配置步骤例: A机器的mengxin用户希望免密登录B机器的cai-chicken用户1. 生成秘钥在A机器的mengxin用户下输入以下命令,然后一路回车ssh-keygen2. 将A机器的公钥拷贝到B机器中将A机器的mengxin用户下.ssh/id_rsa.pub文件中的内容放到B机器的cai-chicken用户下的.ssh/authorized_keys文件中,手动复制也行,使
2021-11-26 17:32:31
1001
1
原创 重学Java并发编程(LockSupport的使用)
前言: 本文中的代码基于JDK1.8LockSupport是什么?LockSupport定义了一组公共的静态方法,这些方法提供了最基本的线程阻塞和唤醒功能,LockSupport是成为构建同步工具的基础工具。LockSupport定义了一组以park开头的方法来阻塞当前线程,以及unpark(Thread thread)方法来唤醒一个被阻塞的线程。Park有停车的意思,假设线程为车辆,那么park方法代表着停车,而unpark方法则是指车辆启动离开。体验一下LockSupport的用法p.
2021-11-25 21:49:52
669
原创 重学Java并发编程(写时复制技术在CopyOnWriteArrayList中的应用)
前言: 本文中的代码基于JDK1.8线程不安全的Listjava.util.LinkedListjava.util.ArrayList线程安全的Listjava.util.Vectorjava.util.Stack (Vector的子类,对Vector进行了封装,只能进行先进后出的栈操作)java.util.Collections.SynchronizedList (Collections中的一个静态内部类)java.util.concurrent.CopyOnWriteA.
2021-11-25 00:34:28
3428
原创 重学Java并发编程 (为什么要使用不可变对象?)
文章目录线程不安全的例子线程安全性如何满足线程的安全性?什么是不可变对象?尝试改造之前的例子总结如何将一个类改造成不可变的类?线程不安全的例子举个例子,我们有一套监控系统,需要跟踪人员轨迹,如果离开某一个区域就会发生预警,这个例子中需要查询人员的最新信息,部分代码如下:TrackPoint是一个位置信息类,包含坐标变量X和Y,和更新位置时间戳@NotThreadSafepublic class TrackPoint { /** * 轨迹x坐标 */ pri
2021-11-21 23:09:14
630
6
原创 重学Java并发编程(Thread类)
文章目录重学Java并发编程(Thread类)如何使用Thread类创建一个线程线程的生命周期线程的命名什么是守护线程Thread常用API线程sleep线程interrupt线程join如果关闭一个线程?重学Java并发编程(Thread类)如何使用Thread类创建一个线程Java中创建线程是使用Thread类来实现的,并且使用start方法来启动一个线程,我们先来看一下start方法的实现 /** * 使该线程开始执行,Java虚拟机将会调用此线程的run方法 * C
2021-11-20 20:48:16
594
10
原创 重学MySQL(如何安装MySQL 5.7数据库)
MySQL5.7安装文档前言安装步骤环境介绍:1.下载MySQL2.安装mysql2.1安装mysql依赖2.2 解压安装mysql3.修改配置文件4.配置环境5.启动MySQL总结前言MySQL支持的平台有很多Centos、Red Hat、 Ubuntu、Windows、Mac,这些常见的系统上都可以使用MySQL,具体支持的系统版本信息可以查看MySQL官方说明。MySQL的安装方式也有很多,例如在Centos上可以使用yum、rpm、二进制文件、源码编译安装等,个人比较喜欢二进制安装的方式,既可以
2021-06-11 11:03:29
22311
1
原创 Iterm2使用lrzsz(rz、sz)
文章目录前言一、lrzsz是什么?二、使用步骤1.在mac上面安装lrzsz2.在`/usr/local/bin`目录下创建以下两个文件3、配置iterm2前言很多时候,因为公司服务器有跳板机防火墙等,我们无法方便的使用sftp、scp等工具,对于传输小文件来说,使用rz\sz最为方便,如果传输文件较大就不适合了,可能需要搭建ftp或者http服务器传输大文件。一、lrzsz是什么?lrzsz是一个unix通信包,提供XMODEM、YMODEM和ZMODEM文件传输协议。比较常用的就是ZMODEM协
2021-06-09 21:09:31
176357
1
原创 解决mybatis-plus代码生成器在idea中的module生成代码,但是生成到外面的project
今天在用mybatis plus的代码生成器在idea里的module中生成代码时发现生成的代码都跑到外面的project中去了,打印了一下代码生成器中使用的 user.dir 属性发现获取的是外面project的路径而不是里面module的路径 先解释一下user.dir 属性 user.dir属性就是获取当前工作的目录当前工作目录就是执行这个class类的目录...
2019-11-28 19:58:17
26316
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人