问题 在容器中访问 https 接口不通,但是宿主机上访问是通的。通过 curl -v 再次访问,发现是握手失败。 经过查阅,发现是 docker 的 mtu 设置的问题,在宿主机上的 mtu 为 1450, 但是在容器中是 1500。 如果docker的网卡mtu大于宿主机的网卡mtu,在大数据包传输时可能会丢失数据。这也是造成了通信到一半就中断的原因。 解决方法: 在 dae...
记录一次Java应用Hang住的问题
问题 运维新建了一个灰度集群,当他们在部署第一个应用时, 应用启动后Hang住,无法向下执行。日志也不再打印。当时将几个远端的连接地址给telnet过,发现都正常。 而且CPU使用率低。 这时候就使用到了 jstack 命令,打印java线程执行情况。 我们可以看到 main 线程还是 RUNNABLE 状态,当时第一时间也没怀疑是 MySQL 的问题,毕竟 telnet MySQL ...
记录一次SpringBoot启动脚本命令行参数失效的问题
启动脚本命令行参数失效 在一次应用发布的过程中,运维表示 –server.port=8080未生效,监听到的端口并不是8080,导致健康检测失败,应用不断重启。 这时候就感觉很奇怪了,因为在SpringBoot中,命令行参数的优先级应该是最高的。 在继续找问题的时候,发现我们使用的配置中心Apollo中设置了 server.port=8138 这个配置。 所以怀疑是否是Apollo将 ...
记录一次K8S Pod OOM的问题
问题 在一次测试环境的容器部署中, 运维将Pod的内存限制设置为512M,同时 JVM 的 -Xmx 也为 512M。运行一段时间后 pod 就被OOM kill, 重复这种行为几次后, 我们就意识到了不对。运维调整内存为 1G, 然后就不在报错了,但是这并不是我们预期的行为。 而且在正常运行的情况下,JVM的堆内存也就在 200M 左右,而且应该也不会达到500M。 之前在虚拟机上,...
Windows Terminal连接堡垒机
windows terminal 现在足够的好看,做为一个终端进行使用。 自定义自己的默认终端 打开json文件,设置 defaultProfile 的值为自己想用的终端guid。 作为SSH工具使用 首先确保安装了 open ssh 客户端。 使用 ssh 连接远程服务器 open ssh 是交互式的连接,所以需要自己输入密码,那么如果想不输入密码,那么我们就需要...
Eureka源码04-Eureka 抓取注册表流程
在 DiscoveryClient 中有一段抓取服务注册表的代码, 当时没有深入, 现在继续看看。 if (clientConfig.shouldFetchRegistry() && !fetchRegistry(false)) { fetchRegistryFromBackup(); } 如果需要抓取注册表, 那么就...
Eureka源码03-Eureka服务注册流程
eureka server 接受 eureka client 服务注册的请求, 在 eureka-core 项 com/netflix/eureka/resources 包下。 有一个 ApplicationsResource 类。 @Path("{appId}") public ApplicationResource getApplicationResource( ...
Eureka源码02-EurekaHttpClient装饰模式的使用
1. EurekaTransport EurekaTransport 持有了用于 http 通讯的组件,用于向 eureka server 发送服务注册等信息的有 registrationClient,用于向 eureka server 查询服务信息的有 queryClient。bootstrapResolver 这个是用于对 service-url.defaultZone 这个配置或者其他...
记录一次SQL超时问题
1. 背景 最近,在迁移某个环境,遇到了一次SQL超时问题,记录一下。 2. 现象 开始我们遇到的情况如图所示,显示一个 update sql 因为超时而被取消了,但是这是一条根据主键更新的SQL, 按道理来说不会很慢, 所以猜测是不是在这个事务中,有其他耗时长的 sql 或者是因为这条记录被锁住了。 3.分析 后续在对不同的数据进行相似操作时发现,第一次操作会报 NoClassDef...
Eureka源码01-EurekaServer初始化
1. 源码 首先我们看下 eureka 源码的模块。 archaius 是配置管理组件,jersey 是类似于 springmvc 的 web 框架,governator 是一些实验性的代码。 在这些模块中,eureka-core、eureka-client、eureka-server 是三个重要的模块。 2. eureka server 初始化 在 eureka-server 中...