<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[不准动我的小老弟]]></title><description><![CDATA[生活已经这么苦了，不如来点代码压压惊吧]]></description><link>https://blog.youkuaiyun.com/jun8148</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; jun8148]]></copyright><item><title><![CDATA[Resilience4j.Circuitbreaker源码分析]]></title><link>https://blog.youkuaiyun.com/jun8148/article/details/127105762</link><guid>https://blog.youkuaiyun.com/jun8148/article/details/127105762</guid><author>jun8148</author><pubDate>Thu, 29 Sep 2022 14:08:12 +0800</pubDate><description><![CDATA[Resilience4j的断路器 CircuitBreaker的源码分析]]></description><category></category></item><item><title><![CDATA[记一次RocketMQConsumer 服务关闭出现InterruptException异常]]></title><link>https://blog.youkuaiyun.com/jun8148/article/details/123211378</link><guid>https://blog.youkuaiyun.com/jun8148/article/details/123211378</guid><author>jun8148</author><pubDate>Tue, 01 Mar 2022 17:36:20 +0800</pubDate><description><![CDATA[记一次RocketMQConsumer 服务关闭出现InterruptException异常
背景提要
出现问题主要还是版本升级


老版本核心rocketmq依赖
&lt;dependency&gt;
    &lt;groupId&gt;org.apache.rocketmq&lt;/groupId&gt;
    &lt;artifactId&gt;spring-boot-starter-rocketmq&lt;/artifactId&gt;
    &lt;version&gt;${vesion}&]]></description><category></category></item><item><title><![CDATA[idea live template记录]]></title><link>https://blog.youkuaiyun.com/jun8148/article/details/122815270</link><guid>https://blog.youkuaiyun.com/jun8148/article/details/122815270</guid><author>jun8148</author><pubDate>Mon, 07 Feb 2022 21:47:17 +0800</pubDate><description><![CDATA[本文不教如何配置live template! 如果要学习live template 的配置方法 请移步百度或谷歌
前言：
live template是一个预定义的代码模板,其中的内容能够根据上下文信息自动推断。
本文仅记录自己常用live template 配置信息:
lep
表达式：$log$.error("$method$ error! $p1$", $p2$$e$);




name
expression




log
variableOfType("org.slf4j.Logger")


me]]></description><category></category></item><item><title><![CDATA[[idea] 设置代码编写时自动换行和格式化代码时自动换行]]></title><link>https://blog.youkuaiyun.com/jun8148/article/details/122597307</link><guid>https://blog.youkuaiyun.com/jun8148/article/details/122597307</guid><author>jun8148</author><pubDate>Thu, 20 Jan 2022 11:07:56 +0800</pubDate><description><![CDATA[设置代码编写时自动换行

设置格式化代码后自动换行


]]></description><category></category></item><item><title><![CDATA[记一次RocketMQ服务启动时 NullPointerException问题]]></title><link>https://blog.youkuaiyun.com/jun8148/article/details/122539164</link><guid>https://blog.youkuaiyun.com/jun8148/article/details/122539164</guid><author>jun8148</author><pubDate>Mon, 17 Jan 2022 14:27:37 +0800</pubDate><description><![CDATA[记一次RocketMQ服务启动时 NullPointerException问题
背景
利用 RcoketMQ @ExtRocketMQTemplateConfiguration  注解配置拓展 RocketMQTemplate 作为发消息的temple，RocketMQConsumer 和 ExtRokcetMQTemplate 在同一个项目里。相关RocketMQ版本信息如下：
&lt;dependency&gt;
    &lt;groupId&gt;org.apache.rocketmq&lt;/gr]]></description><category></category></item><item><title><![CDATA[SpringBoot启动报错EnvironmentPostProcessorApplicationListener.supportsSourceType(Ljava/lang/Class；)Z]]></title><link>https://blog.youkuaiyun.com/jun8148/article/details/118731910</link><guid>https://blog.youkuaiyun.com/jun8148/article/details/118731910</guid><author>jun8148</author><pubDate>Wed, 14 Jul 2021 16:56:54 +0800</pubDate><description><![CDATA[springboot 启动报错：
org.springframework.boot.env.EnvironmentPostProcessorApplicationListener.supportsSourceType(Ljava/lang/Class;)Z
maven 管理依赖 依赖冲突了 解决冲突即可


]]></description><category></category></item><item><title><![CDATA[记一次dubbo 反序列化问题-Fail to decode request due to: RpcInvocation]]></title><link>https://blog.youkuaiyun.com/jun8148/article/details/117151036</link><guid>https://blog.youkuaiyun.com/jun8148/article/details/117151036</guid><author>jun8148</author><pubDate>Sat, 22 May 2021 10:00:11 +0800</pubDate><description><![CDATA[记一次dubbo 反序列化问题 Fail to decode request due to: RpcInvocation
接口&amp;类先行
Api定义层
/**
 * 抽象类 注意这是抽象类 
 */
public abstract class AbstractModel implements Serializable {
    private String name;
    // getter setter toString
}

/**
 * rpc 接口定义
 */
public interf]]></description><category></category></item><item><title><![CDATA[@Resource 和 @Autowired 分析]]></title><link>https://blog.youkuaiyun.com/jun8148/article/details/116262158</link><guid>https://blog.youkuaiyun.com/jun8148/article/details/116262158</guid><author>jun8148</author><pubDate>Thu, 29 Apr 2021 10:39:30 +0800</pubDate><description><![CDATA[@Resource 和 @Autowired 分析
@Resource(name = “”)
全路径：javax.annotation.Resource;
默认按照beanName 进行注入。如果没有找到 通过byType 注入(class)
@Autowired
全路径：org.springframework.beans.factory.annotation.Autowired;
默认通过 type 进行注入，如果有多个实例 根据变量名进行注入  如果还是找到多个实例 将会抛出异常。
配套注解

@Qua]]></description><category></category></item><item><title><![CDATA[Dubbo 中telnet命令的使用-Dubbo Invoke]]></title><link>https://blog.youkuaiyun.com/jun8148/article/details/115865811</link><guid>https://blog.youkuaiyun.com/jun8148/article/details/115865811</guid><author>jun8148</author><pubDate>Mon, 19 Apr 2021 15:25:08 +0800</pubDate><description><![CDATA[Dubbo 中telnet命令的使用-Dubbo Invoke
假设我们配置的 dubbo.protocol.port=19951


telnet连接服务
命令：telnet ip port eg: telnet localhost 19951



查看服务列表     命令: ls


查看服务中的接口方法   命令: ls xxx.xxxService

ls
显示服务列表。
ls -l
显示服务详细信息列表。
ls XxxService
显示服务的方法列表。
ls -l XxxService
显示]]></description><category></category></item><item><title><![CDATA[Nacos源码分析-注册中心-Distro]]></title><link>https://blog.youkuaiyun.com/jun8148/article/details/115462589</link><guid>https://blog.youkuaiyun.com/jun8148/article/details/115462589</guid><author>jun8148</author><pubDate>Tue, 06 Apr 2021 15:46:55 +0800</pubDate><description><![CDATA[Nacos 的AP
Nacos的AP模式，采用server之间互相的数据同步来实现数据在集群中的同步、复制操作
触发数据广播
public class DistroConsistencyServiceImpl implements EphemeralConsistencyService {
  @Override
  public void put(String key, Record value) throws NacosException {
    onPut(key, value);
    tas]]></description><category></category></item><item><title><![CDATA[Nacso源码分析-注册中心-Raft协议实现]]></title><link>https://blog.youkuaiyun.com/jun8148/article/details/115461989</link><guid>https://blog.youkuaiyun.com/jun8148/article/details/115461989</guid><author>jun8148</author><pubDate>Tue, 06 Apr 2021 15:42:48 +0800</pubDate><description><![CDATA[Nacos 的CP
Nacos实现CP 主要是raft协议
RaftController
负责raft 集群内部节点间的通信
具体操作：


POST /v1/ns/raft/vote : 进行投票请求


POST /v1/ns/raft/beat : Leader向Follower发送心跳信息


GET /v1/ns/raft/peer : 获取该节点的RaftPeer信息


PUT /v1/ns/raft/datum/reload : 重新加载某日志信息


POST /v1/ns/raft/da]]></description><category></category></item><item><title><![CDATA[内核态和用户态]]></title><link>https://blog.youkuaiyun.com/jun8148/article/details/109775992</link><guid>https://blog.youkuaiyun.com/jun8148/article/details/109775992</guid><author>jun8148</author><pubDate>Wed, 18 Nov 2020 16:02:41 +0800</pubDate><description><![CDATA[什么是内核态和用户态？

内核态：cpu可以访问内存的所有数据，包括外围设备，例如：硬盘，网卡，cpu，也可以将自己从一个程序切换到另一个程序
用户态：只能访问受限的访问内存，且不允许访问外围设备，占用cpu 的能力被剥夺，cpu资源可以被其他程序获取

为什么需要内核态和用户态
限制不同程序之间的访问能力，防止他们获取别的程序的内存数据，或着获取外围设备的数据。
用户态和内核态的切换
所有用户程序都是运行在用户态的，但是如果程序确实需要做一些内核态的事情：比如从硬盘读取数据，或者获取键盘输入，而唯一能做这]]></description><category></category></item><item><title><![CDATA[IO多路复用]]></title><link>https://blog.youkuaiyun.com/jun8148/article/details/109775943</link><guid>https://blog.youkuaiyun.com/jun8148/article/details/109775943</guid><author>jun8148</author><pubDate>Wed, 18 Nov 2020 16:02:09 +0800</pubDate><description><![CDATA[I/O多路复用
本质上是通过一种机制(系统内核缓冲I/O数据)，让单个进程可以监视多个文件描述符，一旦某个描述符就绪(一般就是读就绪或写就绪)，能够通知到程序进行相应的读写操作。
Unix的五种IO模型有

blocking IO 阻塞IO
nonblocking IO 非阻塞IO
IO multiplexing IO多路复用
signal driven IO 信号驱动IO
asynchronous IO 异步IO

前四种IO都归类为同步IO。
select、poll、epoll
IO复用的方法，本质上是]]></description><category></category></item><item><title><![CDATA[mybatis源码-映射文件解析过程]]></title><link>https://blog.youkuaiyun.com/jun8148/article/details/109677441</link><guid>https://blog.youkuaiyun.com/jun8148/article/details/109677441</guid><author>jun8148</author><pubDate>Fri, 13 Nov 2020 16:25:29 +0800</pubDate><description><![CDATA[本文github地址: 点击
本文gitee 地址： 点击
1. 前言
本章主要分析一下映射文件的解析过程，映射文件指的是mappper.xml 文件
一般我们会在映射文件中配置SQL语句、字段映射关系等等。映射文件中包含&lt;cache&gt;、&lt;resultMap&gt;、&lt;sql&gt; 等等二级节点。
下面开始分析吧！
2. 找准目标（映射文件解析的入口在哪？）
映射文件的解析过程是配置文件的解析过程的一部分，MyBatis会在解析配置文件的过程中对映射文件进行解析，具体解析逻辑在ma]]></description><category></category></item><item><title><![CDATA[mybatis源码-配置文件解析过程]]></title><link>https://blog.youkuaiyun.com/jun8148/article/details/109648881</link><guid>https://blog.youkuaiyun.com/jun8148/article/details/109648881</guid><author>jun8148</author><pubDate>Thu, 12 Nov 2020 17:24:58 +0800</pubDate><description><![CDATA[本文github地址: 点击
本文gitee 地址： 点击
我们在使用Mybatis时，一般都会构建一个SqlSessionFactory 对象出来
String resouce = "mybatis-config.xml";
InputStream is = Resources.getResourcesStream(resource);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(is);

上述代码]]></description><category></category></item><item><title><![CDATA[SpringBoot整合FastDFS]]></title><link>https://blog.youkuaiyun.com/jun8148/article/details/102840412</link><guid>https://blog.youkuaiyun.com/jun8148/article/details/102840412</guid><author>jun8148</author><pubDate>Thu, 31 Oct 2019 16:26:10 +0800</pubDate><description><![CDATA[SpringBoot 整合FastDFS(附工具类，和源码地址)
源码地址： https://github.com/Lijun54321/fastdfs-test
1. 利用idea 创建一个 Springboot 项目
这里就不介绍了这个步骤了
2. 导入 maven 依赖
&lt;!-- https://mvnrepository.com/artifact/com.github.tobato/...]]></description><category></category></item><item><title><![CDATA[FastDFS 安装]]></title><link>https://blog.youkuaiyun.com/jun8148/article/details/102840362</link><guid>https://blog.youkuaiyun.com/jun8148/article/details/102840362</guid><author>jun8148</author><pubDate>Thu, 31 Oct 2019 16:24:10 +0800</pubDate><description><![CDATA[FastDFS是一个开源的轻量级分布式文件系统，它对文件进行管理，功能包括：文件存储、文件同步、文件上传、文件下载等，解决了大容量存储和负载均衡的问题。
FastDFS 安装

安装 libfastcommon

# 下载
wget https://github.com/happyfish100/libfastcommon/archive/V1.0.41.tar.gz
# 解压 
tar -zxv...]]></description><category></category></item><item><title><![CDATA[RocketMQ中文文档]]></title><link>https://blog.youkuaiyun.com/jun8148/article/details/101752008</link><guid>https://blog.youkuaiyun.com/jun8148/article/details/101752008</guid><author>jun8148</author><pubDate>Mon, 30 Sep 2019 09:14:20 +0800</pubDate><description><![CDATA[主要是从官方文档入手，开始学习rocketmq。对RocketMQ 官方文档做翻译吧。
Qucik Start(快速开始)

This quick start guide is a detailed instruction of setting up RocketMQ messaging system on your local machine to send and receive messag...]]></description><category></category></item><item><title><![CDATA[Linux 上安装maven]]></title><link>https://blog.youkuaiyun.com/jun8148/article/details/98769114</link><guid>https://blog.youkuaiyun.com/jun8148/article/details/98769114</guid><author>jun8148</author><pubDate>Wed, 07 Aug 2019 18:04:53 +0800</pubDate><description><![CDATA[只是为了记录下命令，方便以后复制粘贴：
下载
# 创建maven文件夹并进入
mkdir /usr/local/maven; cd /usr/local/maven
# 下载maven
wget http://mirror.bit.edu.cn/apache/maven/maven-3/3.6.1/binaries/apache-maven-3.6.1-bin.tar.gz
# 解压
tar -x...]]></description><category></category></item><item><title><![CDATA[Zookeeper的 那些不可描述的事 - 原理分析]]></title><link>https://blog.youkuaiyun.com/jun8148/article/details/97677953</link><guid>https://blog.youkuaiyun.com/jun8148/article/details/97677953</guid><author>jun8148</author><pubDate>Mon, 29 Jul 2019 20:36:47 +0800</pubDate><description><![CDATA[Zookeeper
一、什么是 Zookeeper

在Zookeeper 官网上是这样介绍它的：ZooKeeper is a centralized service for maintaining configuration information, naming, providing distributed synchronization, and providing group servic...]]></description><category></category></item></channel></rss>