<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[programmeryu的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/programmeryu</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; programmeryu]]></copyright><item><title><![CDATA[模拟jvm内存溢出并使用mat分析原因]]></title><link>https://blog.youkuaiyun.com/programmeryu/article/details/91607363</link><guid>https://blog.youkuaiyun.com/programmeryu/article/details/91607363</guid><author>programmeryu</author><pubDate>Fri, 14 Jun 2019 10:57:38 +0800</pubDate><description><![CDATA[由于我们在生产环境中不能随意打印log日志，也不能随意更新代码重启生产环境的服务，所以当生产环境发生内存溢出时我们应该采取什么措施来找出问题所在尼？


一、模拟内存溢出


@RestController
public class MemoryController {
    private List&lt;User&gt; userList = new ArrayList&lt;User&g...]]></description><category></category></item><item><title><![CDATA[ConcurrentHashmap size 1.8方法实现]]></title><link>https://blog.youkuaiyun.com/programmeryu/article/details/91606487</link><guid>https://blog.youkuaiyun.com/programmeryu/article/details/91606487</guid><author>programmeryu</author><pubDate>Fri, 14 Jun 2019 10:57:26 +0800</pubDate><description><![CDATA[1.8中使用一个volatile类型的变量baseCount记录元素的个数，当插入新数据或则删除数据时，会通过addCount()方法更新baseCount，实现如下：


if ((as = counterCells) != null ||
    !U.compareAndSwapLong(this, BASECOUNT, b = baseCount, s = b + x)) {
    Co...]]></description><category></category></item><item><title><![CDATA[Springboot启动加载初始化数据]]></title><link>https://blog.youkuaiyun.com/programmeryu/article/details/91607069</link><guid>https://blog.youkuaiyun.com/programmeryu/article/details/91607069</guid><author>programmeryu</author><pubDate>Wed, 12 Jun 2019 19:57:15 +0800</pubDate><description><![CDATA[场景：

我们将一些系统配置参数放在数据库表中，方便随时更改。为了避免频繁读取数据库，我们仅在项目启动时加载一次参数，将这些参数赋值给静态变量。

常量类：


/**
 * @Author: BillYu
 * @Description: 常量
 * @Date: Created in 下午3:56 2018/4/28.
 */
public final class Constants {
  ...]]></description><category></category></item><item><title><![CDATA[springboot临时文件存储目录配置]]></title><link>https://blog.youkuaiyun.com/programmeryu/article/details/91606979</link><guid>https://blog.youkuaiyun.com/programmeryu/article/details/91606979</guid><author>programmeryu</author><pubDate>Wed, 12 Jun 2019 19:56:48 +0800</pubDate><description><![CDATA[场景：

上传文件功能报错，然后排查日志。

报错日志：

The temporary upload location [/tmp/tomcat.7957874575370093230.8088/work/Tomcat/localhost/ROOT] is not valid

原因：

在linux系统中，springboot应用服务再启动（java -jar 命令启动服务）的时候，会在操作系统...]]></description><category></category></item><item><title><![CDATA[idea使用Cloud Toolkit自动上传打包部署启动]]></title><link>https://blog.youkuaiyun.com/programmeryu/article/details/91606881</link><guid>https://blog.youkuaiyun.com/programmeryu/article/details/91606881</guid><author>programmeryu</author><pubDate>Wed, 12 Jun 2019 19:56:18 +0800</pubDate><description><![CDATA[对于个人开发者来说，频繁打包、上传jar包到服务器、启动服务是一件很麻烦的使用，而且由于资源有限又不能部署jenkins服务器，所以打包部署很是费时费力。现在我们可以使用Cloud Toolkit来自动化完成这一件事情。


环境

mac os
idea ultimate2018.3

安装

idea搜索插件 Cloud Toolkit
如果能够搜索到，安装即可。如果搜索不到，可以下载离线包...]]></description><category></category></item><item><title><![CDATA[演示死锁并排查问题]]></title><link>https://blog.youkuaiyun.com/programmeryu/article/details/91606742</link><guid>https://blog.youkuaiyun.com/programmeryu/article/details/91606742</guid><author>programmeryu</author><pubDate>Wed, 12 Jun 2019 19:55:21 +0800</pubDate><description><![CDATA[死锁：

由于资源竞争或通信问题造成的一个阻塞现象，若无外力作用无法推进下去.
当线程互相持有对方所需要的资源时，会互相等待对方释放资源，如果线程都不主动释放所占有的资源，将产生死锁。

条件

1 &lt; 竞争资源 &lt; 抢占资源的线程数
如果竞争资源为1时，不存在死锁问题，因为不是不是A线程占有就是B线程占有，不会相互等待对方释放

代码演示


import com.enjoy.dem...]]></description><category></category></item><item><title><![CDATA[线程池的正确使用]]></title><link>https://blog.youkuaiyun.com/programmeryu/article/details/91606670</link><guid>https://blog.youkuaiyun.com/programmeryu/article/details/91606670</guid><author>programmeryu</author><pubDate>Wed, 12 Jun 2019 19:54:54 +0800</pubDate><description><![CDATA[什么是线程池？为什么要用线程池？

1、降低资源的消耗。降低线程创建和销毁的资源消耗；
2、提高响应速度：线程的创建时间为T1，执行时间T2,销毁时间T3，免去T1和T3的时间
3、提高线程的可管理性。

实现一个我们自己的线程池

1、线程必须在池子已经创建好了，并且可以保持住，要有容器保存多个线程；
2、线程还要能够接受外部的任务，运行这个任务。容器保持这个来不及运行的任务.

MyThrea...]]></description><category></category></item><item><title><![CDATA[spring bean的生命周期]]></title><link>https://blog.youkuaiyun.com/programmeryu/article/details/91606542</link><guid>https://blog.youkuaiyun.com/programmeryu/article/details/91606542</guid><author>programmeryu</author><pubDate>Wed, 12 Jun 2019 19:54:03 +0800</pubDate><description><![CDATA[摘录来自: [美] Craig Walls. “Spring实战（第4版）”。 iBooks.
在传统的Java应用中，bean的生命周期很简单。使用Java关键字new进行bean实例化，然后该bean就可以使用了。一旦该bean不再被使用，则由Java自动进行垃圾回收。

相比之下，Spring容器中的bean的生命周期就显得相对复杂多了。
正确理解Spring bean的生命周期非常重要，...]]></description><category></category></item><item><title><![CDATA[springmvc的两种常用异步处理方法]]></title><link>https://blog.youkuaiyun.com/programmeryu/article/details/91606271</link><guid>https://blog.youkuaiyun.com/programmeryu/article/details/91606271</guid><author>programmeryu</author><pubDate>Wed, 12 Jun 2019 19:52:43 +0800</pubDate><description><![CDATA[1.DeferredResult

一旦 在Servlet容器中启用了异步请求处理功能，控制器方法就可以包装任何支持的控制器方法返回值DeferredResult，如下例所示：


@GetMapping("/quotes")
@ResponseBody
public DeferredResult&lt;String&gt; quotes() {
    DeferredResult&lt;Str...]]></description><category></category></item><item><title><![CDATA[Centos7 ssh配置RSA证书登录]]></title><link>https://blog.youkuaiyun.com/programmeryu/article/details/91606133</link><guid>https://blog.youkuaiyun.com/programmeryu/article/details/91606133</guid><author>programmeryu</author><pubDate>Wed, 12 Jun 2019 19:52:09 +0800</pubDate><description><![CDATA[修改sshd配置文件

vim /etc/ssh/sshd_config

增加以下四项

StrictModes no
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys

在root目录下创建.ssh文件夹

[root@localhost /]# mkdir .ssh

...]]></description><category></category></item><item><title><![CDATA[zuul跨域配置报错分析]]></title><link>https://blog.youkuaiyun.com/programmeryu/article/details/91605915</link><guid>https://blog.youkuaiyun.com/programmeryu/article/details/91605915</guid><author>programmeryu</author><pubDate>Wed, 12 Jun 2019 19:51:15 +0800</pubDate><description><![CDATA[ajax请求报错：

The 'Access-Control-Allow-Origin' header contains multiple values ',', but ..

场景：

通过chrome network查看response header中存在多项重复内容


Access-Control-Allow-Credentials: true,true
Access-Control-...]]></description><category></category></item><item><title><![CDATA[Hbase单机部署&phoenix引入]]></title><link>https://blog.youkuaiyun.com/programmeryu/article/details/91605682</link><guid>https://blog.youkuaiyun.com/programmeryu/article/details/91605682</guid><author>programmeryu</author><pubDate>Wed, 12 Jun 2019 19:50:30 +0800</pubDate><description><![CDATA[Hbase搭建

单机版本搭建Hbase可以无需使用hadoop,直接使用文件系统存储（本文方式）。也可以使用hadoop hdfs进行存储。
安装环境：centos7
软件版本：jdk1.8.0 hbase2.0.0 phoenix5.0

下载hbase-2.0.0-bin.tar.gz
解压：
tar -xvf hbase-2.0.0-bin.tar.gz
配置：
vi hbase-2.0....]]></description><category></category></item><item><title><![CDATA[docker搭建redis]]></title><link>https://blog.youkuaiyun.com/programmeryu/article/details/81866581</link><guid>https://blog.youkuaiyun.com/programmeryu/article/details/81866581</guid><author>programmeryu</author><pubDate>Mon, 20 Aug 2018 10:08:18 +0800</pubDate><description><![CDATA[搜索docker hub上的redis镜像

docker search  redis

安装指定标签的redis

docker pull  redis:3.2

 

查看机器中的镜像

docker images

 

创建data目录持久化保存redis数据

mkdir -p ~/redis ~/redis/data

在~/redis目录下 启动容器

docker run -p 6...]]></description><category></category></item><item><title><![CDATA[微服务项目开发规范]]></title><link>https://blog.youkuaiyun.com/programmeryu/article/details/81333607</link><guid>https://blog.youkuaiyun.com/programmeryu/article/details/81333607</guid><author>programmeryu</author><pubDate>Wed, 01 Aug 2018 16:44:37 +0800</pubDate><description><![CDATA[ 

1.项目命名：

xx-xx/xx-xx-xx

项目名-模块名／项目名-模块名-二级模块名

大小写：全部小写，单词间使用-连接

2项目划分

mes-base 共有基础模块，抽出共用实体，共用工具类等

mes-discovery-eureka 服务注册中心

mes-api-gateway 网关

mes-config 配置中心

mes-user 用户模块

mes-equipme...]]></description><category></category></item><item><title><![CDATA[kafka环境搭建+spring-kafka-demo测试]]></title><link>https://blog.youkuaiyun.com/programmeryu/article/details/81333538</link><guid>https://blog.youkuaiyun.com/programmeryu/article/details/81333538</guid><author>programmeryu</author><pubDate>Wed, 01 Aug 2018 16:42:30 +0800</pubDate><description><![CDATA[kafka环境搭建1-单机

kafka是基于scala语言开发，所以需要java运行环境，下载前请先确认是否已经安装并配置java环境

下载安装

下载 最新版的kafka软件
	wget http://mirrors.shu.edu.cn/apache/kafka/1.1.0/kafka_2.12-1.1.0.tgz
解压缩
tar -xzf kafka_2.11-0.9.0.0.tgz

...]]></description><category></category></item><item><title><![CDATA[springboot mybatis phoenix]]></title><link>https://blog.youkuaiyun.com/programmeryu/article/details/81333392</link><guid>https://blog.youkuaiyun.com/programmeryu/article/details/81333392</guid><author>programmeryu</author><pubDate>Wed, 01 Aug 2018 16:40:08 +0800</pubDate><description><![CDATA[环境：hadoop 3.0.2 hbase2.0 phoenix5.0

下载即可，项目具体细节说明详见readme.txt

项目demo如下,下载即可:

 

spring-boot-mybatis-phoenix

https://download.youkuaiyun.com/download/programmeryu/10577413

 ...]]></description><category></category></item><item><title><![CDATA[HBase引入phoenix]]></title><link>https://blog.youkuaiyun.com/programmeryu/article/details/81333336</link><guid>https://blog.youkuaiyun.com/programmeryu/article/details/81333336</guid><author>programmeryu</author><pubDate>Wed, 01 Aug 2018 16:34:00 +0800</pubDate><description><![CDATA[前提：已经部署好的单机hbase2.0

1.下载解压phoenix压缩包(注意对应hbase版本)


			
$ wget http://mirrors.tuna.tsinghua.edu.cn/apache/phoenix/apache-phoenix-5.0.0-HBase-2.0/bin/apache-phoenix-5.0.0-HBase-2.0-bin.tar.gz
$ tar -z...]]></description><category></category></item><item><title><![CDATA[jenkins搭建与配置]]></title><link>https://blog.youkuaiyun.com/programmeryu/article/details/81333179</link><guid>https://blog.youkuaiyun.com/programmeryu/article/details/81333179</guid><author>programmeryu</author><pubDate>Wed, 01 Aug 2018 16:29:46 +0800</pubDate><description><![CDATA[1安装java环境

2下载jenkins.war

3java -jar jenkins.war    （也可放在tomcat里面运行）

4浏览器打开 http://localhost:8080

5填入密码，确定，发现一直卡locading...界面。

vi /root/.Jenkins/updates/default.json  或者c:/用户/Adminstrator/.Jenkins...]]></description><category></category></item><item><title><![CDATA[HBase2.0单机搭建]]></title><link>https://blog.youkuaiyun.com/programmeryu/article/details/81333140</link><guid>https://blog.youkuaiyun.com/programmeryu/article/details/81333140</guid><author>programmeryu</author><pubDate>Wed, 01 Aug 2018 16:28:36 +0800</pubDate><description><![CDATA[一、安装jdk

下载jdk rpm安装包

rpm -ivh xx.rpm

查看JAVA_HOME 

export JAVA_HOME=/usr/java/jdk1.8.0_171-amd64/

localhost

 

 

 

 

二、安装hadoop

hadoop安装      https://www.jianshu.com/p/68087004baa0


			
[roo...]]></description><category></category></item><item><title><![CDATA[centos使用nexus搭建私有maven仓库]]></title><link>https://blog.youkuaiyun.com/programmeryu/article/details/77884789</link><guid>https://blog.youkuaiyun.com/programmeryu/article/details/77884789</guid><author>programmeryu</author><pubDate>Thu, 07 Sep 2017 18:09:00 +0800</pubDate><description><![CDATA[本文只做个人笔记备忘，描述不够详细，见谅




1.配置java环境 ，配置maven环境
详见http://blog.youkuaiyun.com/programmeryu/article/details/77881437


2.下载解压nexus
wget https://sonatype-download.global.ssl.fastly.net/nexus/3/nexus-3]]></description><category></category></item></channel></rss>