<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[JavaBlackHole的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/JavaBlackHole</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; JavaBlackHole]]></copyright><item><title><![CDATA[dubbo原理介绍]]></title><link>https://blog.youkuaiyun.com/JavaBlackHole/article/details/132066418</link><guid>https://blog.youkuaiyun.com/JavaBlackHole/article/details/132066418</guid><author>JavaBlackHole</author><pubDate>Wed, 02 Aug 2023 16:49:40 +0800</pubDate><description><![CDATA[1、Dubbo优势（1）已经成熟，并且被大量项目使用。（2）开发简单，同正常开发一样，只需额外配置一段xml（dubbo支持注解方式，会更简单，此处不讨论）。（3）可以很容易的切入到当前工程中，无耦合！可以以一个很小的代价在当前的渠道项目中扩展，甚至可以直接使用（无任何修改或者很小修改）原有的接口和方法，并不需要写太多的东西，就可以快速搭起服务平台。2、Dubbo劣势（1）网上资料不是很多，遇到问题需要上官方查找解决方案。（2）由于过于简洁的开发，隐藏太多细节，如有特殊要求，恐怕改动麻烦。]]></description><category></category></item><item><title><![CDATA[java程序内存占用过高问题排查]]></title><link>https://blog.youkuaiyun.com/JavaBlackHole/article/details/124040556</link><guid>https://blog.youkuaiyun.com/JavaBlackHole/article/details/124040556</guid><author>JavaBlackHole</author><pubDate>Fri, 08 Apr 2022 14:50:31 +0800</pubDate><description><![CDATA[一、现象

收到线上机器报警(内存使用过高)，对报警的机器节点重启后恢复正常，搁天后新的节点又开始报警；

二、排查

直接对线上机器执行dump命令，由于线上机器还有流量在持续请求，因此dump时间比较长，生成的dump文件有16G+；因此我们先摘除了问题节点的流量，执行dump命令：

ps -ef|grep java 获取服务的pid

jmap -dump:live,format=b,file=/opt/mydump.hprof 3915 (只dump存活的日志)

生成的dump文件13G左右，压]]></description><category></category></item><item><title><![CDATA[java服务线上故障如何快速排查？]]></title><link>https://blog.youkuaiyun.com/JavaBlackHole/article/details/109624538</link><guid>https://blog.youkuaiyun.com/JavaBlackHole/article/details/109624538</guid><author>JavaBlackHole</author><pubDate>Wed, 11 Nov 2020 16:07:34 +0800</pubDate><description><![CDATA[前言

线上定位问题时，主要靠监控和日志。一旦超出监控的范围，则排查思路很重要，按照流程化的思路来定位问题，能够让我们在定位问题时从容、淡定，快速的定位到线上的问题。



线上问题定位思维导图

一 服务器层面

1.1 磁盘

1.1.1 问题现象

当磁盘容量不足的时候，应用时常会抛出的异常信息

1.1.2 排查思路

1.1.2.1 利用 df 查询磁盘状态

利用以下指令获取磁盘状态：

df -h

结果是：





可知/路径下占用量最大。

1.1.2.2 利用 du ...]]></description><category></category></item><item><title><![CDATA[jenkins安装使用]]></title><link>https://blog.youkuaiyun.com/JavaBlackHole/article/details/102680682</link><guid>https://blog.youkuaiyun.com/JavaBlackHole/article/details/102680682</guid><author>JavaBlackHole</author><pubDate>Thu, 05 Nov 2020 20:02:15 +0800</pubDate><description><![CDATA[来源: https://www.cnblogs.com/qixing/p/5896512.html

在centos中使用rpm安装包安装jenkins

jenkins下载：http://pkg.jenkins-ci.org/redhat/

下载rpm包到本地

在linux下使用rpm包安装命令：


sudo rpm -ih jenkins-1.562-1.1.noarch.rpm


[...]]></description><category></category></item><item><title><![CDATA[elasticsearch搭建(elk搭建)和使用]]></title><link>https://blog.youkuaiyun.com/JavaBlackHole/article/details/108442938</link><guid>https://blog.youkuaiyun.com/JavaBlackHole/article/details/108442938</guid><author>JavaBlackHole</author><pubDate>Sun, 20 Sep 2020 16:58:51 +0800</pubDate><description><![CDATA[说明：Linux不允许root用户启动elasticsearch，所以本地新建es用户，以下所有操作都是基于es用户环境。

一、下载安装

1.官网地址：https://www.elastic.co/cn/elasticsearch/

由于官网下载巨慢，推荐华为云下载，地址：

ElasticSearch: https://mirrors.huaweicloud.com/elasticsearch/?C=N&amp;O=D
logstash: https://mirrors.huaweicloud...]]></description><category></category></item><item><title><![CDATA[shell脚本启动jar包]]></title><link>https://blog.youkuaiyun.com/JavaBlackHole/article/details/106047146</link><guid>https://blog.youkuaiyun.com/JavaBlackHole/article/details/106047146</guid><author>JavaBlackHole</author><pubDate>Mon, 11 May 2020 09:23:09 +0800</pubDate><description><![CDATA[#!/bin/bash

source /etc/profile
PROG_NAME=$0
ACTION=$1

usage() {
 echo "Usage: $PROG_NAME {start|stop|restart|status|tailf|backup|rollback}"
 exit 1;
}

# colors
red='\e[0;31m'
green='\e[0;32m'
yellow='\e[0;33m'
reset='\e[0m'

echoRed() { echo -e "...]]></description><category></category></item><item><title><![CDATA[中间件实现高并发设计通用思想]]></title><link>https://blog.youkuaiyun.com/JavaBlackHole/article/details/103512344</link><guid>https://blog.youkuaiyun.com/JavaBlackHole/article/details/103512344</guid><author>JavaBlackHole</author><pubDate>Thu, 30 Apr 2020 16:45:28 +0800</pubDate><description><![CDATA[实现思路:

服务之间的通信,无非就是实现数据的传输,中间件之所以快,一些通用手段必不可少.如:

在加大单位时间内传输响应速度,减小数据量,加快序列化速度,持久到磁盘的速度等:

1.大单位时间内传输响应速度:

 相对于BIO同步等待,NIO单线程发送,异步回调以及批量发送,都很好的提高的发送端的并发能力

2.减小数据量:

 实现自己的通讯协议,比如redis的r...]]></description><category></category></item><item><title><![CDATA[jvm内置工具jconsole]]></title><link>https://blog.youkuaiyun.com/JavaBlackHole/article/details/105792836</link><guid>https://blog.youkuaiyun.com/JavaBlackHole/article/details/105792836</guid><author>JavaBlackHole</author><pubDate>Mon, 27 Apr 2020 16:02:36 +0800</pubDate><description><![CDATA[内置工具:

jconsole:

1,命令行运行jconsole

2,可以直连本机java服务

3,连接远程,需要在服务器tomcat下配置连接信息

vim /usr/local/tomcat/bin/catalina.sh



JAVA_OPTS="-Dcom.sun.management.jmxremote.port=6969//连接端口，自定义不要与已有的端口冲突

-Dc...]]></description><category></category></item><item><title><![CDATA[Tomcat堆栈等参数设置]]></title><link>https://blog.youkuaiyun.com/JavaBlackHole/article/details/105792728</link><guid>https://blog.youkuaiyun.com/JavaBlackHole/article/details/105792728</guid><author>JavaBlackHole</author><pubDate>Mon, 27 Apr 2020 16:00:21 +0800</pubDate><description><![CDATA[虚拟机设置参数:

vim /usr/local/tomcat/bin/catalina.sh



参数详解:

默认值 JAVA_OPTS="-Xms512m -Xmx1024m -Xss1024K -XX:PermSize=512m -XX:MaxPermSize=1024m"



-Xms 为jvm启动时分配的初始内存比如-Xms512m，表示分配512M

-Xmx 为...]]></description><category></category></item><item><title><![CDATA[Jenkins单独发包]]></title><link>https://blog.youkuaiyun.com/JavaBlackHole/article/details/105792646</link><guid>https://blog.youkuaiyun.com/JavaBlackHole/article/details/105792646</guid><author>JavaBlackHole</author><pubDate>Mon, 27 Apr 2020 15:57:47 +0800</pubDate><description><![CDATA[发包语句



maven打包命令:

mvn clean install -Dmaven.test.skip=true -U





-- 注意 scp -r 要获得目标服务器的免密登录

发包命令:

1.jar包

mv /data/invoiceProvider8061/shidian-invoice-provider-0.0.1-SNAPSHOT.jar /data/invoi...]]></description><category></category></item><item><title><![CDATA[mysql查看锁表,事务隔离级别,磁盘刷新规则]]></title><link>https://blog.youkuaiyun.com/JavaBlackHole/article/details/105792536</link><guid>https://blog.youkuaiyun.com/JavaBlackHole/article/details/105792536</guid><author>JavaBlackHole</author><pubDate>Mon, 27 Apr 2020 15:55:10 +0800</pubDate><description><![CDATA[--查看表的基本信息(包含自增主键值的下一个值)

SELECT * FROM INFORMATION_SCHEMA.TABLES

WHERE

TABLE_NAME = 'testuser'



-- 查看当前会话隔离级别

select @@tx_isolation;

-- 查看系统当前隔离级别

select @@global.tx_isolation;

-- 设置...]]></description><category></category></item><item><title><![CDATA[linux常用命令及大文件搜索]]></title><link>https://blog.youkuaiyun.com/JavaBlackHole/article/details/105792467</link><guid>https://blog.youkuaiyun.com/JavaBlackHole/article/details/105792467</guid><author>JavaBlackHole</author><pubDate>Mon, 27 Apr 2020 15:51:54 +0800</pubDate><description><![CDATA[日志查看:

1、查看最后1000行的数据

cat -n filename | tail -n 1000

2、查看1000到3000行的数据

cat -n filename | head -n 3000 | tail -n +1000

3、清空文件内容

cat /dev/null &gt; file_name

端口查看:

1,查看6969端口是否被占用

netstat -tunlp...]]></description><category></category></item><item><title><![CDATA[jvm八种原子性操作及synchronized锁机制]]></title><link>https://blog.youkuaiyun.com/JavaBlackHole/article/details/103295936</link><guid>https://blog.youkuaiyun.com/JavaBlackHole/article/details/103295936</guid><author>JavaBlackHole</author><pubDate>Thu, 28 Nov 2019 16:48:54 +0800</pubDate><description><![CDATA[Java内存模型--同步协议

关于主内存与工作内存之间的交互协议，即一个变量如何从主内存拷贝到工作内存。如何从工作内存同步到主内存中的实现细节。java内存模型定义了8种操作来完成,每一种都是原子操作:


	lock(锁定)：作用于主内存，它把一个变量标记为一条线程独占状态；
	
	
	read(读取)：作用于主内存，它把变量值从主内存传送到线程的工作内存中，以便随后的load动作使用；
	
...]]></description><category></category></item><item><title><![CDATA[redis协议resp]]></title><link>https://blog.youkuaiyun.com/JavaBlackHole/article/details/103032376</link><guid>https://blog.youkuaiyun.com/JavaBlackHole/article/details/103032376</guid><author>JavaBlackHole</author><pubDate>Tue, 12 Nov 2019 16:38:29 +0800</pubDate><description><![CDATA[redis协议规范（Redis Protocol specification）

1.详见redis官网https://redis.io/topics/protocol

2.优势

相对于http等其他网络协议具有以下优势：

　　（1）实现简单(传输数据量小,意味着同等请求量,占用带宽少,扛并发数量多)

　　（2）快速地被计算机解析

　　（3）简单得可以能被人工解析

　　（4）网络层，R...]]></description><category></category></item><item><title><![CDATA[Velocity基本语法及在 EasyJWeb 中的最佳实践]]></title><link>https://blog.youkuaiyun.com/JavaBlackHole/article/details/86611205</link><guid>https://blog.youkuaiyun.com/JavaBlackHole/article/details/86611205</guid><author>JavaBlackHole</author><pubDate>Wed, 23 Jan 2019 15:38:56 +0800</pubDate><description><![CDATA[ 

一、基本语法
1、&quot;#&quot;用来标识Velocity的脚本语句，包括#set、#if 、#else、#end、#foreach、#end、#iinclude、#parse、#macro等；
如:
#if($info.imgs)
&amp;lt;img src=&quot;http://jb51.net/ydmx_lei/blog/$info.imgs&quot; border=0&amp;gt;
#else
&amp;lt;img src...]]></description><category></category></item></channel></rss>