<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[m1993619的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/m1993619</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; m1993619]]></copyright><item><title><![CDATA[JAVA线上故障排查全套路]]></title><link>https://blog.youkuaiyun.com/m1993619/article/details/108398894</link><guid>https://blog.youkuaiyun.com/m1993619/article/details/108398894</guid><author>m1993619</author><pubDate>Fri, 04 Sep 2020 10:14:36 +0800</pubDate><description><![CDATA[JAVA线上故障排查全套路

标题：JAVA线上故障排查全套路
作者：fredalxin
地址：https://fredal.xin/java-error-check

线上故障主要会包括cpu、磁盘、内存以及网络问题，而大多数故障可能会包含不止一个层面的问题，所以进行排查时候尽量四个方面依次排查一遍。同时例如jstack、jmap等工具也是不囿于一个方面的问题的，基本上出问题就是df、free、top 三连，然后依次jstack、jmap伺候，具体问题具体分析即可。

CPU

一般来讲我们首先会排查cp]]></description><category></category></item><item><title><![CDATA[更新JAR包中的文件]]></title><link>https://blog.youkuaiyun.com/m1993619/article/details/107790721</link><guid>https://blog.youkuaiyun.com/m1993619/article/details/107790721</guid><author>m1993619</author><pubDate>Tue, 04 Aug 2020 17:00:00 +0800</pubDate><description><![CDATA[有时候需要更新jar包的一个文件，但又不想编译部署整个项目，就可以用以下方法更新。

1. 在jar包中找到需要更新的文件路径
jar -tvf nala-erp.jar | grep application-prod.yml


2. 解压需要更新的文件，文件需要输入完整路径
jar -xvf nala-erp.jar BOOT-INF/classes/application-prod.yml


3. 修改完解压的文件后，需要把该文件更新回jar包。
jar -uvf nala-erp.jar BOO.]]></description><category></category></item><item><title><![CDATA[WINDOWS下 MAVEN编译jar包 运行后中文乱码]]></title><link>https://blog.youkuaiyun.com/m1993619/article/details/102855714</link><guid>https://blog.youkuaiyun.com/m1993619/article/details/102855714</guid><author>m1993619</author><pubDate>Fri, 01 Nov 2019 13:16:35 +0800</pubDate><description><![CDATA[WINDOWS下 MAVEN编译jar包 运行后中文乱码原因解决方案
原因
WINDOWS中文操作系统编码为GBK，MAVEN安装后默认使用系统编码GBK，导致在编译UTF-8格式的源代码文件时出现编码不匹配的问题。
解决方案

设置windows环境变量
Key: MAVEN_OPTS
Value: -Xms256m -Xmx512m -Dfile.encoding=UTF-8

设置完成后，进...]]></description><category></category></item><item><title><![CDATA[解决dubbo不能优雅停机]]></title><link>https://blog.youkuaiyun.com/m1993619/article/details/79493452</link><guid>https://blog.youkuaiyun.com/m1993619/article/details/79493452</guid><author>m1993619</author><pubDate>Fri, 09 Mar 2018 10:01:32 +0800</pubDate><description><![CDATA[摘要: 从源码角度解读为啥2.5.3版本不支持优雅停机，通过修改源码达到优雅停机现状dubbo-2.5.4以下的版本不支持优雅停机，是因为服务端关闭时，客户端主动关闭长连接，导致服务端响应消息不能返回。在服务端和客户端配置参数：-Ddubbo.service.shutdown.wait=30000，该参数为停机等待时间，但是结果也不生效，还是马上停机了。期望结果正在读或者写的消息，需要继续处理；线...]]></description><category></category></item><item><title><![CDATA[JVM系列四:生产环境参数实例及分析【生产环境实例增加中】]]></title><link>https://blog.youkuaiyun.com/m1993619/article/details/79132259</link><guid>https://blog.youkuaiyun.com/m1993619/article/details/79132259</guid><author>m1993619</author><pubDate>Mon, 22 Jan 2018 19:16:35 +0800</pubDate><description><![CDATA[java application项目（非web项目）

改进前：

-Xms128m-Xmx128m-XX:NewSize=64m-XX:PermSize=64m-XX:+UseConcMarkSweepGC-XX:CMSInitiatingOccupancyFraction=78-XX:ThreadStackSize=128-Xloggc:logs/gc.log-Dsun.rmi.dgc]]></description><category></category></item><item><title><![CDATA[JVM系列五:JVM监测&工具[整理中]]]></title><link>https://blog.youkuaiyun.com/m1993619/article/details/79132271</link><guid>https://blog.youkuaiyun.com/m1993619/article/details/79132271</guid><author>m1993619</author><pubDate>Mon, 22 Jan 2018 18:44:11 +0800</pubDate><description><![CDATA[前几篇篇文章介绍了介绍了JVM的参数设置并给出了一些生产环境的JVM参数配置参考方案。正如之前文章中提到的JVM参数的设置需要根据应用的特性来进行设置，每个参数的设置都需要对JVM进行长时间的监测，并不断进行调整才能找到最佳设置方案。本文将介绍如果通过工具及Java api来监测JVM的运行状态,并详细介绍各工具的使用方法。
       需要监测的数据：(内存使用情况 谁使用了内存 GC的状况]]></description><category></category></item><item><title><![CDATA[JVM系列三:JVM参数设置、分析]]></title><link>https://blog.youkuaiyun.com/m1993619/article/details/79132252</link><guid>https://blog.youkuaiyun.com/m1993619/article/details/79132252</guid><author>m1993619</author><pubDate>Mon, 22 Jan 2018 18:41:55 +0800</pubDate><description><![CDATA[不管是YGC还是Full GC,GC过程中都会对导致程序运行中中断,正确的选择不同的GC策略,调整JVM、GC的参数，可以极大的减少由于GC工作，而导致的程序运行中断方面的问题，进而适当的提高Java程序的工作效率。但是调整GC是以个极为复杂的过程，由于各个程序具备不同的特点，如：web和GUI程序就有很大区别（Web可以适当的停顿，但GUI停顿是客户无法接受的），而且由于跑在各个机器上的配置不同]]></description><category></category></item><item><title><![CDATA[JVM系列二:GC策略&内存申请、对象衰老]]></title><link>https://blog.youkuaiyun.com/m1993619/article/details/79132240</link><guid>https://blog.youkuaiyun.com/m1993619/article/details/79132240</guid><author>m1993619</author><pubDate>Mon, 22 Jan 2018 18:41:20 +0800</pubDate><description><![CDATA[JVM里的GC(Garbage Collection)的算法有很多种，如标记清除收集器，压缩收集器，分代收集器等等,详见HotSpot
 VM GC 的种类
       现在比较常用的是分代收集（generational collection,也是SUN VM使用的,J2SE1.2之后引入），即将内存分为几个区域，将不同生命周期的对象放在不同区域里:young generation，tenu]]></description><category></category></item><item><title><![CDATA[JVM系列一：JVM内存组成及分配]]></title><link>https://blog.youkuaiyun.com/m1993619/article/details/79132125</link><guid>https://blog.youkuaiyun.com/m1993619/article/details/79132125</guid><author>m1993619</author><pubDate>Mon, 22 Jan 2018 18:29:32 +0800</pubDate><description><![CDATA[java内存组成介绍：堆(Heap)和非堆(Non-heap)内存

       按照官方的说法：“Java 虚拟机具有一个堆，堆是运行时数据区域，所有类实例和数组的内存均从此处分配。堆是在 Java 虚拟机启动时创建的。”“在JVM中堆之外的内存称为非堆内存(Non-heap memory)”。可以看出JVM主要管理两种类型的内存：堆和非堆。简单来说堆就是Java代码可及的内存，是留给开发]]></description><category></category></item><item><title><![CDATA[深入理解java线程池]]></title><link>https://blog.youkuaiyun.com/m1993619/article/details/79079794</link><guid>https://blog.youkuaiyun.com/m1993619/article/details/79079794</guid><author>m1993619</author><pubDate>Tue, 16 Jan 2018 22:06:42 +0800</pubDate><description><![CDATA[原文出处： 海 子

在前面的文章中，我们使用线程的时候就去创建一个线程，这样实现起来非常简便，但是就会有一个问题：

如果并发的线程数量很多，并且每个线程都是执行一个时间很短的任务就结束了，这样频繁创建线程就会大大降低系统的效率，因为频繁创建线程和销毁线程需要时间。

那么有没有一种办法使得线程可以复用，就是执行完一个任务，并不被销毁，而是可以继续执行其他的任务？

在Java中]]></description><category></category></item><item><title><![CDATA[Java通过SSH2协议执行远程Shell脚本]]></title><link>https://blog.youkuaiyun.com/m1993619/article/details/79060500</link><guid>https://blog.youkuaiyun.com/m1993619/article/details/79060500</guid><author>m1993619</author><pubDate>Mon, 15 Jan 2018 01:21:40 +0800</pubDate><description><![CDATA[Java通过SSH2协议执行远程Shell脚本(ganymed-ssh2-build210.jar) 

 使用步骤如下：

1.导包

官网下载:

http://www.ganymed.ethz.ch/ssh2/

maven坐标：



    ch.ethz.ganymed
    ganymed-ssh2
    build210




2.apI说明
]]></description><category></category></item><item><title><![CDATA[java原生API生成Jar包]]></title><link>https://blog.youkuaiyun.com/m1993619/article/details/78774221</link><guid>https://blog.youkuaiyun.com/m1993619/article/details/78774221</guid><author>m1993619</author><pubDate>Mon, 11 Dec 2017 16:47:45 +0800</pubDate><description><![CDATA[一、编译部分








[java] view
 plain copy






   
  
public void complier() throws IOException {  
  
    System.out.println("*** --> 开始编译java源代码...");  
  
    File javaclassDir]]></description><category></category></item><item><title><![CDATA[JAVA源文件动态编译]]></title><link>https://blog.youkuaiyun.com/m1993619/article/details/78734682</link><guid>https://blog.youkuaiyun.com/m1993619/article/details/78734682</guid><author>m1993619</author><pubDate>Wed, 06 Dec 2017 20:18:43 +0800</pubDate><description><![CDATA[(转载)JAVA动态编译--字节代码的操纵




在一般的Java应用开发过程中，开发人员使用Java的方式比较简单。打开惯用的IDE，编写Java源代码，再利用IDE提供的功能直接运行Java 程序就可以了。这种开发模式背后的过程是：开发人员编写的是Java源代码文件（.java），IDE会负责调用Java的编译器把Java源代码编译成平台无关的字节代码（byte code），以类文]]></description><category></category></item><item><title><![CDATA[SpringBoot的日志管理]]></title><link>https://blog.youkuaiyun.com/m1993619/article/details/78729613</link><guid>https://blog.youkuaiyun.com/m1993619/article/details/78729613</guid><author>m1993619</author><pubDate>Wed, 06 Dec 2017 13:14:17 +0800</pubDate><description><![CDATA[SpringBoot的日志管理

 



SpringBoot关于日志的官方文档
1、简述

SpringBoot官方文档关于日志的整体说明



本博客基于SpringBoot_1.3.6
大家请先简单看下这篇英文的官方文档，文中有说 SpringBoot 内部日志系统使用的是 Commons Logging 并且 SpringBoot 给 JDKLogging ,]]></description><category></category></item></channel></rss>