<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[吴阳春的博客]]></title><description><![CDATA[吴阳春的博客]]></description><link>https://blog.youkuaiyun.com/wee616</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; wee616]]></copyright><item><title><![CDATA[项目中的常用注解（二）]]></title><link>https://blog.youkuaiyun.com/wee616/article/details/107083877</link><guid>https://blog.youkuaiyun.com/wee616/article/details/107083877</guid><author>wee616</author><pubDate>Thu, 02 Jul 2020 14:38:21 +0800</pubDate><description><![CDATA[之前对项目中常用注解有过一次整理项目中的常用注解，这里继续补充一下。供自己和有需要的小伙伴查漏补缺。


]]></description><category></category></item><item><title><![CDATA[JVM优化--优化gc]]></title><link>https://blog.youkuaiyun.com/wee616/article/details/106584652</link><guid>https://blog.youkuaiyun.com/wee616/article/details/106584652</guid><author>wee616</author><pubDate>Mon, 15 Jun 2020 11:16:07 +0800</pubDate><description><![CDATA[什么时候需要排查gc问题
我们遇到什么样的现象会怀疑gc有问题，进而优化呢？gc问题大体上可以分为两类：内存溢出、gc不健康。
内存溢出一般会借助dump文件进行查看，设置jvm参数-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/data/applogs/system/error.dump可以在发生oom时给出dump信息。有了dump信息可以使用MAT，Jprofile，jvisualvm 进行排查。
gc不健康主要表现在这么几个方面：young gc频]]></description><category></category></item><item><title><![CDATA[RocketMQ问答]]></title><link>https://blog.youkuaiyun.com/wee616/article/details/102780301</link><guid>https://blog.youkuaiyun.com/wee616/article/details/102780301</guid><author>wee616</author><pubDate>Mon, 28 Oct 2019 14:20:01 +0800</pubDate><description><![CDATA[文章目录一、为什么要使用MQ？我们系统中如何使用MQ的？为什么用他？介绍一下RocketMQ。二、RocketMQ的架构是怎么样的？引申1：RocketMQ如何做到高可用？引申2：RocketMQ如何保证消息不被重复消费？引申3：如何保证消息的可靠传输？引申4：为什么是NameServer而不是zookeeper？引申5：RocketMQ的消息消费模式和消息传输模式。三、RocketMQ工作的流程...]]></description><category></category></item><item><title><![CDATA[ES基础入门基本查询语句]]></title><link>https://blog.youkuaiyun.com/wee616/article/details/100017484</link><guid>https://blog.youkuaiyun.com/wee616/article/details/100017484</guid><author>wee616</author><pubDate>Thu, 22 Aug 2019 16:06:15 +0800</pubDate><description><![CDATA[最近由于项目中使用ES，对照《Elasticsearch: 权威指南》进行学习，将一些知识进行整理总结。
##插入一条记录
PUT /megacorp/employee/1
{
    "first_name" : "John",
    "last_name" :  "Smith",
    "age" :        25,
    "about" :      "I love to go ...]]></description><category></category></item><item><title><![CDATA[远程调试的正确姿势]]></title><link>https://blog.youkuaiyun.com/wee616/article/details/99716195</link><guid>https://blog.youkuaiyun.com/wee616/article/details/99716195</guid><author>wee616</author><pubDate>Mon, 19 Aug 2019 11:00:00 +0800</pubDate><description><![CDATA[目前测试环境开启了远程调试，但是很多小伙伴不清楚远程调试的正确姿势，容易影响其他人对于测试环境的使用，更严重的可能会导致服务不可用。这里讲一下我们了解到的远程调试正确姿势，供小伙伴们参考。
一、远程调试的开启
1）Tomcat工程是在tomcat所在目录下的bin/startup.bat中，加入
SET CATALINA_OPTS=-server -Xdebug -Xnoagent -Djava....]]></description><category></category></item><item><title><![CDATA[概要设计的必要性及写法]]></title><link>https://blog.youkuaiyun.com/wee616/article/details/90516519</link><guid>https://blog.youkuaiyun.com/wee616/article/details/90516519</guid><author>wee616</author><pubDate>Fri, 24 May 2019 15:00:28 +0800</pubDate><description><![CDATA[1.1.文档的重要性
很多小伙伴在需求、开发、测试阶段不注重文档，认为这耽误时间、画蛇添足。实际上文档对于软件行业是十分重要的。软件的定义：软件是包括程序、数据及其相关文档的完整集合。
从这个定义中我们能够体会到文档的重要性。很多小伙伴常说要对线上数据保持敬畏，对线上程序保持敬畏，同样的，我们也要对文档保持敬畏，千万不能轻视他。
往小里说，文档代表了传承与积淀。我们在抱怨前辈没有留下足够的文档、前...]]></description><category></category></item><item><title><![CDATA[RocketMQ中的路由中心NameServer]]></title><link>https://blog.youkuaiyun.com/wee616/article/details/89926852</link><guid>https://blog.youkuaiyun.com/wee616/article/details/89926852</guid><author>wee616</author><pubDate>Tue, 07 May 2019 18:30:07 +0800</pubDate><description><![CDATA[RocketMQ的路由中心采用了自研的NameServer，提供了路由管理、服务注册、服务发现的功能。NameServer集群间互不通信。
先简单了解一下这三种能力的实现方式，后面会有源码分析。
路由管理：通过配置文件灵活加载配置。
服务注册：Broker在启动时向所有的NameServer心跳语句，每隔30S向所有NameServer发起心跳包。NameServer收到心跳包后更新缓存。Name...]]></description><category></category></item><item><title><![CDATA[RocketMQ中的顺序消息]]></title><link>https://blog.youkuaiyun.com/wee616/article/details/89296824</link><guid>https://blog.youkuaiyun.com/wee616/article/details/89296824</guid><author>wee616</author><pubDate>Sun, 14 Apr 2019 15:18:14 +0800</pubDate><description><![CDATA[我们在项目开发过程中，有需要使用RocketMQ顺序消息的场景，该如何使用呢？顺序消息的原理是怎样的呢？本文进行了一些探讨。
一、顺序消息的定义
顺序消息（FIFO：First Input First Output）是一种严格按照顺序进行发布和消费的消息类型。要求消息的发布和消息消费都按照顺序进行。
二、顺序消息的设计
在探讨RocketMQ中的普通消息的实现之前，我们有必要了解一下顺序消息的设计...]]></description><category></category></item><item><title><![CDATA[关于java NIO的探讨]]></title><link>https://blog.youkuaiyun.com/wee616/article/details/88855280</link><guid>https://blog.youkuaiyun.com/wee616/article/details/88855280</guid><author>wee616</author><pubDate>Wed, 27 Mar 2019 20:57:41 +0800</pubDate><description><![CDATA[现在使用NIO的场景越来越多，很多技术框架或多或少的使用NIO技术，但是我对其一直没有深入了解过，最近对其做了一些总结，部分观点为个人观点，如有偏颇请您指正。
本文主要想回答这样几个问题：什么是IO？什么是IO操作？什么是NIO？什么是java中的NIO？我先说下我的理解，下文进行分析。
NIO相关概念的定义
**I/O：**I/O即输入/输出（input/output），输入输出的对象可以是磁盘...]]></description><category></category></item><item><title><![CDATA[关于java克隆的探讨]]></title><link>https://blog.youkuaiyun.com/wee616/article/details/87994355</link><guid>https://blog.youkuaiyun.com/wee616/article/details/87994355</guid><author>wee616</author><pubDate>Wed, 27 Feb 2019 22:21:46 +0800</pubDate><description><![CDATA[在做项目的过程中踩了一个深克隆浅克隆的坑，利用闲暇时间将克隆相关的知识进行了一下总结。其中夹杂了一些个人的思考，部分结论可能存在问题，请大家指正。
什么是克隆
什么的克隆，克隆是否等于复制？
个人观点：
1、狭义的克隆指Object类中的clone()方法，创建并返回此对象的一个复制。基于此定义，基本类型的复制不属于克隆，不实现clone()方法来复制对象也不属于克隆。
2、广义的克隆等同于复制，...]]></description><category></category></item><item><title><![CDATA[JVM知识整理]]></title><link>https://blog.youkuaiyun.com/wee616/article/details/81191024</link><guid>https://blog.youkuaiyun.com/wee616/article/details/81191024</guid><author>wee616</author><pubDate>Tue, 24 Jul 2018 19:49:17 +0800</pubDate><description><![CDATA[对JVM的知识用脑图进行了整理 
JVM 
]]></description><category></category></item><item><title><![CDATA[设计模式整理]]></title><link>https://blog.youkuaiyun.com/wee616/article/details/81191000</link><guid>https://blog.youkuaiyun.com/wee616/article/details/81191000</guid><author>wee616</author><pubDate>Tue, 24 Jul 2018 19:47:45 +0800</pubDate><description><![CDATA[用百度脑图对常用设计模式进行了整理，在github上对这几种设计模式进行了代码样例实现。

github地址 
脑图地址 
]]></description><category></category></item><item><title><![CDATA[java基础]]></title><link>https://blog.youkuaiyun.com/wee616/article/details/81184695</link><guid>https://blog.youkuaiyun.com/wee616/article/details/81184695</guid><author>wee616</author><pubDate>Tue, 24 Jul 2018 14:54:44 +0800</pubDate><description><![CDATA[java基础

整理了java几个面试比较长问的知识点，做成了脑图，查漏补缺。 
]]></description><category></category></item><item><title><![CDATA[java多线程整理]]></title><link>https://blog.youkuaiyun.com/wee616/article/details/81174431</link><guid>https://blog.youkuaiyun.com/wee616/article/details/81174431</guid><author>wee616</author><pubDate>Mon, 23 Jul 2018 20:45:58 +0800</pubDate><description><![CDATA[java多线程整理

利用项目闲暇时间整理了一份java多线程的脑图，还有不完善的地方，在以后的工作中再补充。 
脑图地址 
]]></description><category></category></item><item><title><![CDATA[缓存]]></title><link>https://blog.youkuaiyun.com/wee616/article/details/81071491</link><guid>https://blog.youkuaiyun.com/wee616/article/details/81071491</guid><author>wee616</author><pubDate>Wed, 18 Jul 2018 16:53:01 +0800</pubDate><description><![CDATA[缓存

利用项目闲暇时间，对缓存知识进行了一次梳理，整理成了脑图，这里配合脑图进行一下说明。 
脑图：缓存知识点整理 
[TOC]



缓存简介

缓存的本质是让数据更接近使用者，如何设计缓存、哪些数据适合进行缓存、缓存的方式、缓存的回收策略都是我们需要考量的点。

java应用缓存



http缓存



redis缓存



数据库缓存



mybatis缓存



nginx缓存


...]]></description><category></category></item><item><title><![CDATA[git常用指令]]></title><link>https://blog.youkuaiyun.com/wee616/article/details/80993683</link><guid>https://blog.youkuaiyun.com/wee616/article/details/80993683</guid><author>wee616</author><pubDate>Tue, 10 Jul 2018 23:34:38 +0800</pubDate><description><![CDATA[1、创建版本库：

git init 

2、提交文件：

//将文件提交到暂存区
git add 文件名     

//将暂存区内容提交到当前分支
git commit -m &quot;提交描述&quot;        

3、查看历史记录：

//查看历史记录
git log         
//单行显示历史记录，界面更友好                
git log --pretty=oneline...]]></description><category></category></item><item><title><![CDATA[分布式系统中生成全局唯一ID的方法]]></title><link>https://blog.youkuaiyun.com/wee616/article/details/78710657</link><guid>https://blog.youkuaiyun.com/wee616/article/details/78710657</guid><author>wee616</author><pubDate>Mon, 04 Dec 2017 16:00:16 +0800</pubDate><description><![CDATA[阅读了这篇文章而后总结了下我们系统中全局唯一ID的生成方法。 
http://www.cnblogs.com/heyuquan/archive/2013/08/16/global-guid-identity-maxId.html主键ID采用UUID，只作为唯一性标识。 
部分业务表需要有业务No的，我们采用以下方法生成唯一ID： 
从redis中用lpop指令取指定key值的数据。（lpop：移除并]]></description><category></category></item><item><title><![CDATA[项目中的常用注解]]></title><link>https://blog.youkuaiyun.com/wee616/article/details/78596360</link><guid>https://blog.youkuaiyun.com/wee616/article/details/78596360</guid><author>wee616</author><pubDate>Tue, 21 Nov 2017 20:06:14 +0800</pubDate><description><![CDATA[1、@SuppressWarnings 
作用：用于抑制编译器产生告警 
用法：@SuppressWarnings(“unchecked”)、@SuppressWarnings(“static-access”)等2、@Autowired 
作用：完成自动装配，可以作用于类成员变量、方法及构造函数上。 
用法：当扫描到@Autowired时，会自动在容器中查找对应的bean，并装配给该对象的属性。]]></description><category></category></item><item><title><![CDATA[CAP理论与BASE理论]]></title><link>https://blog.youkuaiyun.com/wee616/article/details/78590432</link><guid>https://blog.youkuaiyun.com/wee616/article/details/78590432</guid><author>wee616</author><pubDate>Tue, 21 Nov 2017 11:13:24 +0800</pubDate><description><![CDATA[CAP理论：一个分布式系统中，不可能同时满足C、A、P这三个基本需求，最多只能满足其中的两项。 
C：Consistency 一致性（始终一致） 
A：Availability 可用性（始终可用） 
P：Partition tolerance分区容错性（网络分区故障不影响整体服务）BASE理论：是CAP理论的演化，即使无法做到强一致性，但每个应用都可以根据自身业务特点，采用适当的方式来使系统达到最终]]></description><category></category></item><item><title><![CDATA[JVM(9)编译器与编译优化]]></title><link>https://blog.youkuaiyun.com/wee616/article/details/78436637</link><guid>https://blog.youkuaiyun.com/wee616/article/details/78436637</guid><author>wee616</author><pubDate>Fri, 03 Nov 2017 16:05:47 +0800</pubDate><description><![CDATA[前端编译器：java -> class 
后端编译器：class -> 机器码class文件生成过程： 
1、解析与填充符号表。 
2、处理注解。 
3、分析生成字节码。前期优化： 
前期的优化主要靠语法糖来实现，包括： 
1、泛型与类型擦除。 
2、自动装箱、拆箱、遍历循环。 
3、条件编译。晚期优化： 
晚期优化主要靠即时编译器来实现，将热点代码编译为平台相关的机器码，并优化。HotSpot虚拟]]></description><category></category></item></channel></rss>