- 博客(25)
- 问答 (1)
- 收藏
- 关注
原创 windows环境搭建ELK
(由于elasticsearch开启了身份验证,所以连接时需要提供用户名、密码或者token,上面提到过elasticsearch默认用户是elastic,但是elastic是超级管理员,不允许直接连接,所以这里可以新建一个用户供kibana使用或者使用token的方式)执行成功后,可以在系统服务中查看到相应的服务,直接【启动】服务即可(可以根据需要设置自启)执行成功后,可以在系统服务中查看到相应的服务,直接【启动】服务即可(可以根据需要设置自启)跳转到bin目录,执行下面的代码将es注册为系统服务。
2023-08-30 17:11:22
1531
原创 spring-boot jar包瘦身(fat-jar到thin-jar)
目前我司采用内网自建GitLab平台托管代码,fat-jar方式打包,每个应用jar包达到百兆。为了规避云服务带宽不足导致上次jar包缓慢的问题,我们在云服务器上安装了GitLab Runner(:依赖jar可以分离出来,从而保证我们打包出来的应用jar包很小(可能只有几兆甚至更小),而依赖jar在大部分情况下是不会改变的,所以每次发布的时候只需要把应用jar包上传即可。:所有的依赖都打到一个jar里面,导致jar包非常大(一个jar包上百兆),不利用网络传输(特别是云服务器来说带宽资源比较贵);...
2022-08-05 09:14:21
1054
原创 spring-session-data-redis session更新失效问题解决
本文目录结构:一、问题复现二、问题排查三、问题解决一、问题复现现在的项目都由原先的单体架构向分布式架构演变,在这个过程中就会存在session共享的问题。单体架构只有一个JVM,所以内存中的数据可以共享,session直接保存在内存中,重启服务会导致session丢失,用户登录失效。分布式架构下基本都存在多个微服务,或者微服务集群,且版本迭代速度快,这些服务有各自的JVM,因此无法实现内存共享,这时就需要借助第三方存储空间()来实现内存共享,并且重启服务不会丢失session,能够保持用户登录态。将s
2022-06-16 15:19:13
3585
原创 自定义HttpMessageConverter实现参数加解密
如果对于不理解,可以先看下【HttpMessageConverter逻辑梳理】这篇文章。本文要实现以下三种格式解密:以下一种格式解密:下面对以上四种情况分别展开本文目录结构:一、自定义注解二、封装类型接收参数三、自定义实体类接收参数四、json转实体类五、响应报文转json六、配置自定义converter七、使用一、自定义注解在理解的前提下,实现参数加解密应该是相对容易的事情。有两种加密解密方式:1.针对请求报文进行加密解密;2.针对请求报文中的属性字段进行加密解密。这里我们选择第2中实现方案。下
2022-06-15 17:30:27
1437
原创 HttpMessageConverter逻辑梳理
本文目录结构:一、快速了解的机制二、结合解读解析请求报文机制三、结合解读解析响应报文机制四、创建自定义HttpMessageConverter实现参数加解密一、快速了解的机制快速过一遍相关代码(这里只摘取核心的代码,并注释方法作用,其余代码使用【…】省略,感兴趣的话可以自行查看源码)其实核心流程就是根据parameter去匹配resolver,然后将具体的参数解析工作交给匹配到的resolver,resolver再将解析工作委托给converter二、结合解读解析请求报文机制根据paramet
2022-06-15 17:27:54
1215
原创 centos7 配置java服务开机自启
1.创建jar包启动、停止、重启脚本(例如:mall-uc.sh)name="服务标识"Xmx=xxxmXms=xxxmXmn=xxxmPermSize=xxxmMaxPermSize=xxxmpid="进程文件存放位置"jarName="jar包路径"start(){ if [ -f "$pid" ] then echo "$jarName is running !" exit 0; else echo -n "start ${jarName} ..." noh
2022-01-23 11:25:19
1462
原创 windows下tomcat启动时生成进程文件
环境:windows tomcat6由于tomcat默认的shutdown.bat存在无法及时关闭进程的问题,进而可能导致tomcat同时存在两个进程在执行,导致schedule任务被重复执行。因此需要一种保证tomcat在同一时间点只能存在一个进程机制。解决方案:在tomcat启动时判断当前目录下tomcat.pid文件是否存在,如果存在则提示"tomcat is running",否则就在当前目录下创建tomcat.pid文件;在tomcat停止时,为了保险起见可以通过taskkill命令强.
2021-10-12 13:45:41
920
2
原创 springboot max-http-header-size配置导致内存溢出
9.15日,线上的一个微服务接口错误率突然提升的情况。于是连接上了远程服务器使用jps -l命令查看发现进程还在,但是无法稳定的对外提供服务。下面记录下问题定位、解决的过程一、问题排查既然进程还在,那就说明还没有死掉,于是我就开始着手排查使用top命令查看cpu占用情况,找到占用cpu最高的进程pid使用jps -l命令去打印出服务器内所有的java进程信息,然后查看是否有第1步中拿到的pid经过上述两步可以确定是问题出在某个java进程上根据以往经验,既然占用这么高的cpu,而系统此刻访问
2021-09-25 16:04:52
1065
原创 线上服务导致cpu飙升问题排查
一、故障说明 昨晚突然收到线上服务器cpu报警,登录监控平台看了下发现cpu瞬间飙升到60%。第一反应就是使用top命令去查看,发现是一个java进程。于是立刻使用jps -l命令定位到该java进程,发现是一个后台服务,按理说晚上没什么人去使用后台服务,而且它也没有定时任务,查看了服务的日志都没有发现异常情况。二、故障排查 &
2020-12-29 14:10:53
1121
原创 updlock实例分析
先给出一个场景,然后围绕这个场景展开讨论。场景:商品限购,商家在发布活动时,要求活动内的每个商品每位用户限购一个。假设现在有一张表活动订单表,记录了用户参与活动的情况。活动订单表(主键,活动主键,用户主键,商品主键)-- sql server 2008CREATE TABLE [dbo].[tbl_activity_order] ( [id] bigint NOT NULL, [activity_id] bigint NOT NULL, [user_id] bigint NOT NUL
2020-12-19 16:43:58
594
3
原创 net.sf.json踩坑( net.sf.json.JSONNull cannot be cast to java.lang.String)
最近运营反馈偶尔有一两笔订单出现卡单,无法充值的问题。正好今天不是很忙就和同事一起定位问题。因为是一个比较老的项目,可能当时开发人员没有开发规范,所以对于异常日志仅仅是在控制台打印并没有记录到异常日志,因此现在去定位问题只能通过业务日志和代码入手,这种方法最好的就是采用排查法了,通过排查最终将问题锁定在一段json解析的代码上。由于隐私的问题我这里就自己写段代码复现吧。import net.sf.json.JSONObject;public class JsonTest { public s
2020-12-11 14:13:37
4877
2
原创 map空指针排查
前几天线上异常监控检测到一个NullPointerException,于是根据异常栈提示定位到具体发生异常的代码,这里记录下出现异常的原因。先来一段简单的代码来复习问题。public class TestObject{ private Integer status; public TestObject(Integer status){ this.status = status; } public static void main(String[] args){ Map<Tes
2020-12-08 14:56:20
1368
原创 JAVA模拟淘宝、天猫登录
有时候需要对淘宝、天猫平台进行频繁操作,会触发平台风控,需要我们登陆之后才能进行操作,或者有些功能淘宝开放平台并没有提供api接口,只能通过人工登录进行操作,但是频繁的人工操作比较浪费时间。因此对于模拟登陆的需求也就随之而来。网上很多关于淘宝、天猫模拟登陆的教程都是python写的,但是我对python语言了解不多,而且我们需要定制化的功能,因此最好是使用自己熟悉的语言去开发,因此本文的模拟是使用JAVA实现的,网上对于使用JAVA来实现淘宝、天猫的模拟并不多,而且没有详细的实现步骤,因此这里对我的实现步
2020-08-19 14:58:49
3640
2
原创 数据交互加密
没有绝对的安全! 这段时间发现有人在恶意攻击我们的接口,通过篡改接口数据,绕过前端校验直接请求后台接口。所以我们想要对重要接口的数据交互进行加密处理。这里只能使用可逆的加密方式,其中大体可分对称加密,非对称加密。但是不管是对称加密还是非对称加密都存在秘钥的问题,秘钥如何生成、如何存储。 &n...
2020-03-13 18:12:50
795
原创 connection reset by peer问题解决
前段时间接手一个老项目,在观察项目日志时发现经常会出现connection reset by peer的错误,字面上理解就是网络连接重置,从而导致请求中断。要想解决问题首先要明白出现问题的原因,reset产生的原因这里就不在叙述,网上有很多这方面的文章,大家可以自行阅读。 &nb...
2020-03-09 09:54:21
7350
空空如也
jenkins构建maven父子项目如何单独构建子项目?
2019-06-20
TA创建的收藏夹 TA关注的收藏夹
TA关注的人