<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[HappyLoves]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/qq_452425952</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; qq_452425952]]></copyright><item><title><![CDATA[【手撸RPC框架】SpringBoot+Netty4实现RPC框架]]></title><link>https://blog.youkuaiyun.com/qq_452425952/article/details/116546856</link><guid>https://blog.youkuaiyun.com/qq_452425952/article/details/116546856</guid><author>qq_452425952</author><pubDate>Sat, 08 May 2021 22:55:21 +0800</pubDate><description><![CDATA[【手撸RPC框架】SpringBoot+Netty4实现RPC框架
线程模型
Netty高性能架构设计
简单了解React线程模型，参考文章【五分钟快速理解 Reactor 模型】
举例说明：Reactor的三种线程模型
线程模型1：传统阻塞 I/O 服务模型

模型特点：

采用阻塞IO模式获取输入的数据
每个链接都需要独立的线程完成数据的输入，业务处理、数据返回。

问题分析：

当并发数很大，就会创建大量的线程，占用很大系统资源
连接创建后，如果当前线程暂时没有数据可读，该线程会阻塞在read操作，造]]></description><category></category></item><item><title><![CDATA[PMP知识领域]]></title><link>https://blog.youkuaiyun.com/qq_452425952/article/details/112689101</link><guid>https://blog.youkuaiyun.com/qq_452425952/article/details/112689101</guid><author>qq_452425952</author><pubDate>Fri, 15 Jan 2021 22:25:12 +0800</pubDate><description><![CDATA[·
十大知识领域
整合-项目整合管理

识别、定义、组合、统一和协调个项目管理过程组的各种过程和活动而展开的活动与过程。
整合：统一、合并、沟通和简历联系；贯穿项目始终

七个过程组
一、制定项目章程（启动）

执行一次
编写一份正式批准的项目，授权项目经理使用组织资源的文件过程。里面描述高层级的期望
作用：

明确项目与组织战略目标之间的直接联系
确立项目的正式地位
展示组织对项目的承诺

解读：

明确定义项目开始和项目边界（边界模糊）
项目章程一旦被批准，就标志着项目正式启动
高层对项目的支持


输]]></description><category></category></item><item><title><![CDATA[PMP基本概念]]></title><link>https://blog.youkuaiyun.com/qq_452425952/article/details/112660359</link><guid>https://blog.youkuaiyun.com/qq_452425952/article/details/112660359</guid><author>qq_452425952</author><pubDate>Fri, 15 Jan 2021 13:04:12 +0800</pubDate><description><![CDATA[商业文件：商业论证和效益管理计划，可以找到关于项目目标以及项目对业务目标的贡献的相关信息

商业论证：经批准的商业论证或类似文件是最常用语指定项目章程的商业文件
效益成本分析：是项目启动时考虑项目是否值得做的分析方法

效益管理计划：

项目效益管理计划描述了项目实现效益的方式和时间，以及应制定的效益衡量机制。项目效益指为发起组织和项目预期受益方创造价值的行动、行为、产品、服务或成果的结果。项目生命周期早期应确定目标效益，并据此制定效益管理计划。它描述了效益的关键要素，可能包括（但不限于）记录以下内容：

]]></description><category></category></item><item><title><![CDATA[Jenkins打Docker镜像推送到私有仓库]]></title><link>https://blog.youkuaiyun.com/qq_452425952/article/details/108762556</link><guid>https://blog.youkuaiyun.com/qq_452425952/article/details/108762556</guid><author>qq_452425952</author><pubDate>Wed, 23 Sep 2020 21:43:52 +0800</pubDate><description><![CDATA[Jenkins打Docker镜像推送到私有仓库

因为我的Jenkins是安装在群晖NAS中的docker，所以我这边就以Docker安装Jenkins为例


echo &#39;================Docker开始==============&#39;

echo &#39;================登陆阿里云私有镜像仓库==============&#39;
# 定义镜像名称
IMAGE_NAME=&quot;scm&quot;
# 查看当前目录
pwd
# 进入web目录Docke]]></description><category></category></item><item><title><![CDATA[Jenkins集成SonarQube]]></title><link>https://blog.youkuaiyun.com/qq_452425952/article/details/108739405</link><guid>https://blog.youkuaiyun.com/qq_452425952/article/details/108739405</guid><author>qq_452425952</author><pubDate>Tue, 22 Sep 2020 19:44:38 +0800</pubDate><description><![CDATA[Jenkins 集成 SonarQube Scanner
1. 安装Jenkins
下载安装包，这里我们下载war包：https://jenkins.io/download/
运行jenkins.war的方式有两种：
第一种：将其放到tomcat中运行（放到webapps目录下，启动tomcat）
第二种：直接执行 java -jar jenkins.war --httpPort=8080
第三种：Docker方式部署：
#查看jenkins版本命令
docker search jenkins
#拉取镜像命]]></description><category></category></item><item><title><![CDATA[redis命令和RedisTemplate操作对应表]]></title><link>https://blog.youkuaiyun.com/qq_452425952/article/details/108706286</link><guid>https://blog.youkuaiyun.com/qq_452425952/article/details/108706286</guid><author>qq_452425952</author><pubDate>Mon, 21 Sep 2020 11:52:35 +0800</pubDate><description><![CDATA[redis命令和RedisTemplate操作对应表

redisTemplate.opsForValue();//操作字符串
redisTemplate.opsForHash();//操作hash
redisTemplate.opsForedisTemplateet();//操作set
redisTemplate.opsForList();//操作list
redisTemplate.opsForZSet();//操作有序set

Key相关的



Redis命令
RedisTemplate redis]]></description><category></category></item><item><title><![CDATA[MySQL数据和索引占用空间查询]]></title><link>https://blog.youkuaiyun.com/qq_452425952/article/details/108249841</link><guid>https://blog.youkuaiyun.com/qq_452425952/article/details/108249841</guid><author>qq_452425952</author><pubDate>Wed, 26 Aug 2020 23:26:43 +0800</pubDate><description><![CDATA[MySQL数据和索引占用空间查询
查询所有数据库占用磁盘空间大小的SQL语句
SELECT
    table_schema, -- 数据库名称
    concat( TRUNCATE ( sum( data_length ) / 1024 / 1024, 2 ), &#39;MB&#39; ) AS data_size, -- 数据占用空间
    concat( TRUNCATE ( sum( index_length ) / 1024 / 1024, 2 ), &#39;MB&#39; ) AS i]]></description><category></category></item><item><title><![CDATA[SpringBoot2 整合 Swagger2文档 使用BootstrapUI页面]]></title><link>https://blog.youkuaiyun.com/qq_452425952/article/details/107704567</link><guid>https://blog.youkuaiyun.com/qq_452425952/article/details/107704567</guid><author>qq_452425952</author><pubDate>Fri, 31 Jul 2020 00:43:39 +0800</pubDate><description><![CDATA[SpringBoot2 整合 Swagger2
SpringBoot整合三板斧
第一步、引入pom
&lt;dependency&gt;
  &lt;groupId&gt;com.spring4all&lt;/groupId&gt;
  &lt;artifactId&gt;swagger-spring-boot-starter&lt;/artifactId&gt;
  &lt;version&gt;1.9.0.RELEASE&lt;/version&gt;
&lt;/dependency&gt;
&lt;d]]></description><category></category></item><item><title><![CDATA[【SpringBoot】 中时间类型 序列化、反序列化、格式处理]]></title><link>https://blog.youkuaiyun.com/qq_452425952/article/details/107429690</link><guid>https://blog.youkuaiyun.com/qq_452425952/article/details/107429690</guid><author>qq_452425952</author><pubDate>Sat, 18 Jul 2020 15:26:21 +0800</pubDate><description><![CDATA[【SpringBoot】 中时间类型 序列化、反序列化、格式处理
Date
yml全局配置
spring:  
  jackson:
    time-zone: GMT+8
    date-format: yyyy-MM-dd HH:mm:ss #配置POST请求Body中Date时间类型序列化格式处理，并返回
请求参数类型转换
/**
 * 时间Date转换
 * 配置GET请求，Query查询Date时间类型参数转换
 */
@Component
public class DateConverter]]></description><category></category></item><item><title><![CDATA[【SpringCloud】Gateway 配置全局过滤器获取请求参数和响应值]]></title><link>https://blog.youkuaiyun.com/qq_452425952/article/details/107092920</link><guid>https://blog.youkuaiyun.com/qq_452425952/article/details/107092920</guid><author>qq_452425952</author><pubDate>Thu, 02 Jul 2020 20:51:18 +0800</pubDate><description><![CDATA[【SpringCloud】Gateway 配置全局过滤器获取请求参数和响应值

实现Ordered接口getOrder()方法，数值越小越靠前执行，记得这一点就OK了。

获取请求参数RequestBody
@Component
@Slf4j
@AllArgsConstructor
public class HttpRequestFilter implements GlobalFilter, Ordered {

    @Override
    public Mono&lt;Void&gt; filte]]></description><category></category></item><item><title><![CDATA[【环境安装】Docker安装]]></title><link>https://blog.youkuaiyun.com/qq_452425952/article/details/106797636</link><guid>https://blog.youkuaiyun.com/qq_452425952/article/details/106797636</guid><author>qq_452425952</author><pubDate>Tue, 16 Jun 2020 23:11:22 +0800</pubDate><description><![CDATA[【环境安装】Docker安装
CentoOS-7
安装步骤:
1、卸载已经安装的Docker
sudo yum remove docker \
          docker-client \
          docker-client-latest \
          docker-common \
          docker-latest \
          docker-latest-logrotate \
          docker-logrotate \
        ]]></description><category></category></item><item><title><![CDATA[构建自己的jar包上传至Mvaen中央仓库和版本更新]]></title><link>https://blog.youkuaiyun.com/qq_452425952/article/details/106684130</link><guid>https://blog.youkuaiyun.com/qq_452425952/article/details/106684130</guid><author>qq_452425952</author><pubDate>Thu, 11 Jun 2020 11:07:35 +0800</pubDate><description><![CDATA[构建自己的jar包上传至Mvaen中央仓库和版本更新
一直羡慕别人制造轮子，开源项目，供别人使用；我也想这样，可以自己才疏学浅，本次就将自己写小工具上传到Maven的中央仓库。
一步一步详细教程演示如下：
开始要注意这个几个Maven相关地址：

工单管理：https://issues.sonatype.org


就是申请上传资格和groupId 的地方,注册账号、创建和管理issue，Jar包的发布是以解决issue的方式起步的


构件仓库 : https://oss.sonatype.org/#we]]></description><category></category></item><item><title><![CDATA[JAVA自定义注解]]></title><link>https://blog.youkuaiyun.com/qq_452425952/article/details/106467521</link><guid>https://blog.youkuaiyun.com/qq_452425952/article/details/106467521</guid><author>qq_452425952</author><pubDate>Mon, 01 Jun 2020 10:26:41 +0800</pubDate><description><![CDATA[JAVA自定义注解

注解概念
注解是Java SE 5.0版本开始引入的概念，它是对java源代码的说明，是一种元数据（描述数据的数据）。
注解和注释的不同

注释
 注释是对代码的说明，给代码的读者看，便于帮读者梳理业务逻辑；在程序代码中经常看到的以@ 开头的大部分是注解；

注解
注解也是对代码的说明，需要配合工具（解析它的代码）使用，参与代码的编译，给应用程序看的；


注解分类
注解以@开头，我们会在应用程序中见到各种各样的注解，比如 @Autowired，@Service，@Controller]]></description><category></category></item><item><title><![CDATA[6-JVM常用工具和优化]]></title><link>https://blog.youkuaiyun.com/qq_452425952/article/details/106234114</link><guid>https://blog.youkuaiyun.com/qq_452425952/article/details/106234114</guid><author>qq_452425952</author><pubDate>Wed, 20 May 2020 12:57:42 +0800</pubDate><description><![CDATA[JVM 常用工具和优化
JDK 自带的
jconsole
jvisualvm
三方的工具
arthas
调优关注点（内存、GC）：
内存

MAT
XElephant
在线：perfma

GC
拿到GC日志，分析GC日志（吞吐量，停顿时间，垃圾回收次数；这三个是评判垃圾收集器好坏的标准）

本地：GCViewer
在线：gceasy.io


在什么情况下调优
体现系统性能的参考因素
首先我们需要知道系统当前的运行状况，也就是系统的性能好坏，才能判断是否需要调优。如果系统的响应时间很短，计算机的资源使用也]]></description><category></category></item><item><title><![CDATA[5-JVM常用的命令]]></title><link>https://blog.youkuaiyun.com/qq_452425952/article/details/106193783</link><guid>https://blog.youkuaiyun.com/qq_452425952/article/details/106193783</guid><author>qq_452425952</author><pubDate>Mon, 18 May 2020 15:21:38 +0800</pubDate><description><![CDATA[JVM常用的命令
jps ：基础工具
查看JAVA进程PID。
jps 命令用来查看所有 Java 进程，每一行就是一个 Java 进程信息。
jps 仅查找当前用户的 Java 进程，而不是当前系统中的所有进程，要显示其他用户的还只能用 ps 命令。
jps 常用参数

jps -l 如果是以 class 方式运行，会显示进程的主类 main.class 的全名，如果是以 jar 包方式运行的，就会输出 jar 包的完整路径名

第一列的数字就是进程的 pid

jps -v 输出传递给 JVM 的参数，]]></description><category></category></item><item><title><![CDATA[4-JVM 参数]]></title><link>https://blog.youkuaiyun.com/qq_452425952/article/details/106128839</link><guid>https://blog.youkuaiyun.com/qq_452425952/article/details/106128839</guid><author>qq_452425952</author><pubDate>Thu, 14 May 2020 21:14:21 +0800</pubDate><description><![CDATA[JVM 参数

标准参数：不会随着jdk版本的变化而变化。比如：java -version、java -help

非标准参数：随着JDK版本的变化而变化。
-X参数【用的较少】非标准参数，也就是在JDK各个版本中可能会变动
# 修改执行方式
# compiled 编译执行方式，第一次使用就编译成本地代码
java -Xcomp -version
# interpreted 解释执行方式
java -Xini -version
# mixed 默认的混合执行方式，混合模式，JVM自己来决定
java -Xm]]></description><category></category></item><item><title><![CDATA[3-JVM垃圾回收算法和垃圾收集器]]></title><link>https://blog.youkuaiyun.com/qq_452425952/article/details/106053072</link><guid>https://blog.youkuaiyun.com/qq_452425952/article/details/106053072</guid><author>qq_452425952</author><pubDate>Mon, 11 May 2020 14:05:32 +0800</pubDate><description><![CDATA[垃圾回收算法和垃圾收集器
1.什么是垃圾回收
对于内存当中无用的对象进行回收，如何去判断一个对象是不是无用的对象。
引用计数法：
每个对象中都会存储一个引用计数，每增加一个引用就+1，消失一个引用就-1。当引用计数器为0时就会判断该对象是垃圾，进行回收。
但是这样会有一个弊端。就是当有两个对象互相引用时，那么这两个对象的引用计数器都不为0，那么就不会对其进行回收。
可达性分析：

判断某个对象是否可到达。有两种方式判断是否可到达：

直接引用（上帝视角GC Roots）：就是虚拟机栈帧中的局部或本地变量表、]]></description><category></category></item><item><title><![CDATA[2-JVM内存结构]]></title><link>https://blog.youkuaiyun.com/qq_452425952/article/details/105969664</link><guid>https://blog.youkuaiyun.com/qq_452425952/article/details/105969664</guid><author>qq_452425952</author><pubDate>Thu, 07 May 2020 11:57:29 +0800</pubDate><description><![CDATA[内存模型



方法区

JDK1.7 之前包含1.7 将方法区称为 Perm Space 永久代
JDK1.8之后包含1.8 将方法区称为 MetaSpace 元空间。

堆（分配内存会大一些）

分配对象、new 实例。
堆内存当中划分为两个区域：老年代和新生代。
如何去划分老年代和新生代，根据对象的年龄。这个年龄是一个对象经过一次GC，如果还存在的话，年龄就加一。当年龄超过默认值（15）时，...]]></description><category></category></item><item><title><![CDATA[1-JVM基础]]></title><link>https://blog.youkuaiyun.com/qq_452425952/article/details/105749590</link><guid>https://blog.youkuaiyun.com/qq_452425952/article/details/105749590</guid><author>qq_452425952</author><pubDate>Sat, 25 Apr 2020 14:36:45 +0800</pubDate><description><![CDATA[1-JVM基础
java源码文件，通过javac 转换成class文件。

找到.java文件
词法分析器
tokens流
语法分析器
语义分析器
字节码生成器
转成.class文件


装载

根据全限定路径名寻找class文件，转换成二进制流。通过ClassLoder.load(String name)（类装载器，name：全限定路径名）不同路径下的类，设置不同路径的类装载器。


Boots...]]></description><category></category></item><item><title><![CDATA[MySQL数据库设计规范]]></title><link>https://blog.youkuaiyun.com/qq_452425952/article/details/105560167</link><guid>https://blog.youkuaiyun.com/qq_452425952/article/details/105560167</guid><author>qq_452425952</author><pubDate>Thu, 16 Apr 2020 16:03:34 +0800</pubDate><description><![CDATA[MySQL数据库设计规范
转载原文：https://github.com/jly8866/archer/blob/master/src/docs/mysql_db_design_guide.md#%E7%9B%AE%E5%BD%95
目录
1. 规范背景与目的    

2. 设计规范

2.1 数据库设计    

2.1.1 库名    
2.1.2 表结构    
2.1.3 列数据类型优化...]]></description><category></category></item></channel></rss>