首页
专栏 icon
Kubernetes in Action笔记
链接 icon
国内常用镜像地址 在线学习资源
关于
  • jetty临时目录下的资源文件被删导致js等资源找不到

    Jul 14, 2020 jetty

    生产环境上jetty运行一段时间后,在打开某个网页的时候发现有js、css文件找不到,但是重启之后问题会解决。后来发现是设定了tmpwatch后台任务,定时会清理一次系统的tmp目录。 默认情况下,如果没有指定jetty的临时目录,默认会使用系统的临时目录。解决方案就是,修改jetty的临时文件存放目录,不要放在 /tmp 目录下面。主要有下面几个方法: 设置basetempdir值 1<Configure class="org.eclipse.jetty.webapp.WebAppContext"> 2 3 <Set …

    阅读更多
  • rsyslog内存占用高导致服务不可用

    Jun 22, 2020 rsyslog

    这几天生产环境中某个服务内存不时地被撑爆,原先以为是应用的问题,但是近来没有上过新的代码。该服务的总内存是8G,启动参数关于内存的配置大致是:-Xmx=6.4G,-Xms=4G 左右。看了Grafana上面的监控记录,JVM 老年代使用最多也就到4G左右,在GC的日志中发现也仅仅用到4G左右,并没有到达最高的内存值。这两个结果可以看出来,应该不是应用程序导致内存占用过大。 后来用top命令看了一下,发现rsyslog进程使用了将近40%的内存。再查一下日志文件,发现一些日志文件大小都达到2G以上。 rsyslog仅仅是用来同步日志,原则上讲,它仅仅是辅助的进程,不应该占用那么内存,即使它同步延迟较大甚至不工作,也不应该影响到应用程序 …

    阅读更多
  • 用string adapter来解决系统接口对接中发现的空值验证问题

    Jun 1, 2020 java

    客户用的是很旧版本的ERP系统,在与客户系统做接口对接的时候发现了一个问题。假设接口请求需要的body是xml格式的,共有三个字段:name, mobile, email。由于客户ERP系统比较老,如果某个字段没有值,传的是空字符串,而不是将该字段在请求消息体中隐藏。客户发的请求类似下面的例子: 1<xml> 2 <name>John</name> 3 <mobile>13800138000</mobile> 4 <email></email> 5</xml> 由于历史遗留问题, …

    阅读更多
  • Spring Quartz 指定Scheduler Name

    May 31, 2020 spring quartz

    当前项目使用quartz与spring来做基于数据库的集群化任务调度,但是在实际使用过程发现同一个scheduler中,不同group之间任务调度可能会相互跑串。当前项目中使用的 quartz-scheduler 版本 2.3.1, spring 版本 3.2.18.RELEASE。 举个例子,配置是这样的, 下面示例中隐去不重要的配置 1<bean id="my-cluster-scheduler" 2 class="org.springframework.scheduling.quartz.SchedulerFactoryBean" 3 …

    阅读更多
  • 根据ID来管理分布式session - 新老界面session不一致导致强制登出问题的修复

    Jan 26, 2020 session 分布式

    背景 由于历史原因,原先的界面是用vaadin框架来实现。但是这个框架不适合互联网的分布式系统,正在逐步用目前主流的前端框架重写各个模块,把旧的vaadin页面替换掉。在替换过程中,新老界面并存。 vaadin界面的servlet,每次都会判断请求中的session id值,如果在服务器中找不到对应这个id的session,就会重新生成一个。由于session id是在新界面登录的时候生成的,当点击链接从新界面跳转到vaadin界面的时候,vaadin服务会发现没有这个session id,就会重新生成一个新的session。换句话说,新老界面会有各自的session id。当然,分布式系统本来就有这个问题,可以采用分布 …

    阅读更多
  • Quartz job使用过程中的发现问题与改进

    Jan 5, 2020 quartz

    遇到的问题与原因分析 生产环境中遇到的问题: 服务在启动过程中,不时地卡住,后来发生的越来越频繁。看日志分析,卡在初始化quartz job store的时候 服务在运行过程中,不时地出现定时任务不被触发的情况 通过分析,得知问题产生的原因: 目前代码中用的是Quartz scheduler 1.8.3版本,定时框架采用的是行锁,通过执行下面的SQL来锁住特定的记录。在分布式的系统的情况下,节点越多越容易发生锁等待,甚至死锁。Quartz scheduler 的 2.x 版本做了改进,在QRTZ_LOCKS表中多加了一个字段 SCHED_NAME。这有一个好处就是,可以给不同的应用分配不同的scheduler name,这样定 …

    阅读更多
  • 复盘 - 手机app上一行代码导致的生产事故

    Dec 10, 2019 生产事故 复盘

    过程 由于一些历史原因,以及与原先代码的兼容性,临时文件存储在minio中。 某天,生产环境突发事故,minio集群的CPU与内存爆了,只能重启集群。过了十来分钟,很多服务都不可用,健康检查都不通过。日志中的错误信息显示,这些服务都是数据库拿不到连接。需要事先处理数据库连接的问题,于是连接到数据库查死锁,终止导致死锁的sql进程,再重启来恢复这些服务。 由于前不久minio集群挂掉,很容易就想到是由于minio的原因。其他服务通过RPC调用一个文件存储服务来操作minio中的数据,当minio集群挂掉的时候,文件存储服务访问minio一直想访问minio直到超时。在这个期间,其他服务如果有事务调用文件存储服务来操作minio中文件, …

    阅读更多
  • 记一次打开Excel文件错误的排查

    Dec 5, 2018 excel

    在生产环境中,某个结果集导出的excel文件用Microsoft Excel无法打开,看到如下错误: 最开始怀疑是在生成文件的时候,文件损坏掉了,但是重新生成多次,得到的结果都是一样的。在相同的界面,导出其他结果集所生成的文件却都是可以成功打开的,这样就可以排除代码功能方面的问题。如果和代码无关,那么就可能和数据有关系。根据出错提示给出的文件地址“C:\Users\ZHANGZ~1\AppData\Local\Temp\error083200_01.xml”, 打开该临时文件,可以看到下面的信息 1<?xml version="1.0" encoding="UTF-8" …

    阅读更多

Paul Zeng

架构师、团队主管、体育节目爱好者 @Shanghai
阅读更多

精选文章

  • Nginx服务器安全加固
  • 利用frp与nginx实现公网访问NAS
  • zookeeper服务器文件清理
  • terraform中阿里云ECS ssh key变化问题
  • 解决terraform与远程云服务器资源状态不一致的问题
  • Spring Quartz 指定Scheduler Name
  • 根据ID来管理分布式session - 新老界面session不一致导致强制登出问题的修复
  • Quartz job使用过程中的发现问题与改进

最新文章

  • 用Python读取sitemap并调用百度接口推送URL
  • 使用Python在两个Postgres数据库直接复制数据
  • Postgres通过SQL语句复制表结构
  • MyBatis查询中动态指定schema
  • Manjaro设置默认Java版本
  • Kubernetes in Action笔记 - (18) 高级调度:污点、容忍度和亲缘性
  • Kubernetes in Action笔记 - (17) 自动横向伸缩pod与集群节点
  • Kubernetes in Action笔记 - (16) 计算资源管理

分类

KUBERNETES 18 POSTGRES 10 LINUX 9 填坑之旅 8 MANJARO 5 MAC 3 算法 3 DOCKER 2 JAVA 2 NGINX 2 NODEJS 2 PYTHON 2 TERRAFORM 2 ZOOKEEPER 2
所有分类
CHROME1 DOCKER2 ELASTIC-SEARCH1 HIBERNATE1 JAVA2 KUBERNETES18 LINUX9 MAC3 MANJARO5 MINIO1 MYBATIS1 NGINX2 NODEJS2 POSTGRES10 PYTHON2 REDIS1 TERRAFORM2 UBUNTU1 ZOOKEEPER2 填坑之旅8 算法3
[A~Z][0~9]

专栏

KUBERNETES-IN-ACTION笔记 18

标签

KUBERNETES 18 POSTGRES 12 LINUX 5 MANJARO 5 NGINX 4 SHELL 4 DOCKER 3 JAVA 3 排序 3 算法 3 CHROME 2 GREP 2 NODEJS 2 PGLOGICAL 2
所有标签
ALPINE1 CHROME2 CLOUDFLARE1 CLUSTER1 CONFIGMAP1 CONTAINER1 CRITERIA-BUILDER1 DATE1 DECLARE1 DOCKER3 ELASTIC-SEARCH1 EXCEL1 FRP1 GITBOOK1 GREP2 HIBERNATE1 INPUTSTREAM1 JAVA3 JCONSOLE1 JETTY1 JMX1 JVISUALVM1 KCP1 KUBERNETES18 LINUX5 LOCALE1 MAC1 MANJARO5 MIGRATION1 MINIO1 MYBATIS1 NAS1 NGINX4 NODEJS2 PGLOGICAL2 POSTGRES12 PSYCOPG21 PYTHON2 QUARTZ2 REDIS1 RSYSLOG1 SCHEMA2 SECRET1 SECURITY1 SEO1 SERIALIZE1 SESSION1 SHELL4 SPRING1 SSH1 SSL1 TERRAFORM2 UBUNTU2 UNIX2 VMWARE1 WAL-E1 WIFI1 ZOOKEEPER2 从库1 分布式1 升级1 命令2 复盘1 对象存储1 序列化1 截屏1 排序3 数据迁移1 生产事故1 监控1 算法3 证书1 轮询1 远程1 阿里云2 集群1
[A~Z][0~9]

Copyright © 2018 - 2021 保罗札记. All Rights Reserved