<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[EnskDeCode]]></title><description><![CDATA[trip to Ensk...]]></description><link>https://blog.youkuaiyun.com/tojohnonly</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; tojohnonly]]></copyright><item><title><![CDATA[使用 iPerf 测试路由器局域网性能]]></title><link>https://blog.youkuaiyun.com/tojohnonly/article/details/116454139</link><guid>https://blog.youkuaiyun.com/tojohnonly/article/details/116454139</guid><author>tojohnonly</author><pubDate>Thu, 06 May 2021 14:54:53 +0800</pubDate><description><![CDATA[iPerf3 介绍
iPerf3 是一个网络带宽测试工具，iPerf3 可以测试 TCP 和 UDP 带宽质量。iPerf3 可以测量最大 TCP 带宽，具有多种参数和 UDP 特性，iPerf3 可以报告带宽、延迟抖动和数据包丢失。利用 iPerf3 这一特性，可以用来测试一些网络设备如路由器，防火墙，交换机等的性能。
使用 iPerf3 ，你可以调整与时序、缓冲区和协议（如TCP、UDP、SCTP）相关的几个参数。它对网络性能调优操作很方便，为了获得最大或相当改善的网络性能，你需要增加吞吐量以及网络接收]]></description><category></category></item><item><title><![CDATA[Hystrix 源码解析]]></title><link>https://blog.youkuaiyun.com/tojohnonly/article/details/110198700</link><guid>https://blog.youkuaiyun.com/tojohnonly/article/details/110198700</guid><author>tojohnonly</author><pubDate>Thu, 26 Nov 2020 17:50:14 +0800</pubDate><description><![CDATA[Hystrix工作的流程图如下：

Hystrix的工作流程结合上图如下：
（1）每次调用都会创建一个HystrixCommand
（2）执行execute或queue做同步/异步调用
（3）判断熔断器是否打开,如果打开跳到步骤8，否则进入步骤4
（4）判断线程池/信号量是否跑满，如果跑满进入步骤8,否则进入步骤5
（5）调用HystrixCommand的run方法，如果调用超时进入步骤8
（6）判断是否调用成功，返回成功调用结果，如果失败进入步骤8
（7）计算熔断器状态,所有的运行状态(成功, 失败, 拒]]></description><category></category></item><item><title><![CDATA[Eureka 源码解析]]></title><link>https://blog.youkuaiyun.com/tojohnonly/article/details/110039533</link><guid>https://blog.youkuaiyun.com/tojohnonly/article/details/110039533</guid><author>tojohnonly</author><pubDate>Tue, 24 Nov 2020 09:53:55 +0800</pubDate><description><![CDATA[Eureka的依赖如下：
&lt;dependency&gt;
	&lt;groupId&gt;org.springframework.cloud&lt;/groupId&gt;
	&lt;artifactId&gt;spring-cloud-starter-netflix-eureka-server&lt;/artifactId&gt;
&lt;/dependency&gt;

项目中开启Eureka只需要加一个注解：
@EnableEurekaServer

进入到注解里面：
@Target(Eleme]]></description><category></category></item><item><title><![CDATA[Eureka 概念与原理解析]]></title><link>https://blog.youkuaiyun.com/tojohnonly/article/details/109855622</link><guid>https://blog.youkuaiyun.com/tojohnonly/article/details/109855622</guid><author>tojohnonly</author><pubDate>Fri, 20 Nov 2020 17:19:47 +0800</pubDate><description><![CDATA[Eureka 核心概念
Eureka 里面的重要角色整体上可以分为两个主体：Eureka Server 和 Eureka Client。
Eureka Server 注册中心服务端
注册中心服务端主要对外提供了三个功能：
（1）服务注册
服务提供者启动时，会通过 Eureka Client 向 Eureka Server 注册信息，Eureka Server 会存储该服务的信息，Eureka Server 内部有缓存机制来维护整个注册表。
（2）提供注册表
服务消费者在调用服务时，如果 Eureka Cli]]></description><category></category></item><item><title><![CDATA[Java 枚举 enum 详解]]></title><link>https://blog.youkuaiyun.com/tojohnonly/article/details/103527121</link><guid>https://blog.youkuaiyun.com/tojohnonly/article/details/103527121</guid><author>tojohnonly</author><pubDate>Fri, 13 Dec 2019 14:50:00 +0800</pubDate><description><![CDATA[枚举是一个被命名的整型常数的集合，用于声明一组带标识符的常数；枚举在曰常生活中很常见，例如一个人的性别只能是“男”或者“女”，一周的星期只能是 1~7 天中的一个…类似这种当一个变量有几种固定可能的取值时，就可以将它定义为枚举类型；
在 JDK 1.5 之前没有枚举类型，那时候一般用接口常量来替代，而使用 Java 枚举类型 enum 可以更贴近地表示这种常量。

声明枚举
声明枚举时必须使用 e...]]></description><category></category></item><item><title><![CDATA[Windows 安装 Maven]]></title><link>https://blog.youkuaiyun.com/tojohnonly/article/details/103457001</link><guid>https://blog.youkuaiyun.com/tojohnonly/article/details/103457001</guid><author>tojohnonly</author><pubDate>Mon, 09 Dec 2019 14:11:51 +0800</pubDate><description><![CDATA[去 http://maven.apache.org/download.cgi 下载
选择 apache-maven-3.6.3-bin.zip
解压下载好的 Maven 到 C:\Matrix\Maven
配置环境变量
右击 我的电脑 ，点击 属性 ，选择 高级系统设置 ，选择 高级 选项卡，点击 环境变量
添加 M2_HOME 和 MAVEN_HOME ，并将其指向 Maven 文件夹，如：
M...]]></description><category></category></item><item><title><![CDATA[RocketMQ 入门指南]]></title><link>https://blog.youkuaiyun.com/tojohnonly/article/details/103365995</link><guid>https://blog.youkuaiyun.com/tojohnonly/article/details/103365995</guid><author>tojohnonly</author><pubDate>Tue, 03 Dec 2019 13:54:49 +0800</pubDate><description><![CDATA[1. 下载安装
下载地址：
http://rocketmq.apache.org/dowloading/releases/
我下载的是：rocketmq-all-4.5.2-bin-release.zip
https://archive.apache.org/dist/rocketmq/4.5.2/rocketmq-all-4.5.2-bin-release.zip
解压文件：
unzip roc...]]></description><category></category></item><item><title><![CDATA[Nginx 搭建文件服务器]]></title><link>https://blog.youkuaiyun.com/tojohnonly/article/details/103305132</link><guid>https://blog.youkuaiyun.com/tojohnonly/article/details/103305132</guid><author>tojohnonly</author><pubDate>Fri, 29 Nov 2019 10:00:28 +0800</pubDate><description><![CDATA[修改 nginx.conf 文件，添加配置和 server：
autoindex on;
autoindex_exact_size on;
autoindex_localtime on;

server {
    listen 8080;

    location / {
        root /usr/local/appkg/;
    }

    error_page 404 /40...]]></description><category></category></item><item><title><![CDATA[Linux Docker 使用指南]]></title><link>https://blog.youkuaiyun.com/tojohnonly/article/details/103294423</link><guid>https://blog.youkuaiyun.com/tojohnonly/article/details/103294423</guid><author>tojohnonly</author><pubDate>Thu, 28 Nov 2019 15:33:52 +0800</pubDate><description><![CDATA[Docker 是一个开源的应用容器引擎，基于 Go 语言 并遵从 Apache2.0 协议开源；
Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中，然后发布到任何流行的 Linux 机器上，也可以实现虚拟化；
容器是完全使用沙箱机制，相互之间不会有任何接口（类似 iPhone 的 app），更重要的是容器性能开销极低；
Docker 从 17.03 版本之后分为 CE...]]></description><category></category></item><item><title><![CDATA[Linux 安装 Zookeeper]]></title><link>https://blog.youkuaiyun.com/tojohnonly/article/details/103252441</link><guid>https://blog.youkuaiyun.com/tojohnonly/article/details/103252441</guid><author>tojohnonly</author><pubDate>Tue, 26 Nov 2019 11:03:40 +0800</pubDate><description><![CDATA[ZooKeeper 是一个分布式的，开放源码的分布式应用程序协调服务，是 Google 的 Chubby 一个开源的实现，是 Hadoop 和 Hbase 的重要组件；
它是一个为分布式应用提供一致性服务的软件，提供的功能包括：配置维护、域名服务、分布式同步、组服务等；下面演示在 Linux 安装 Zookeeper。
下载：
https://zookeeper.apache.org/releas...]]></description><category></category></item><item><title><![CDATA[DevOps 与 CICD 详解]]></title><link>https://blog.youkuaiyun.com/tojohnonly/article/details/103249881</link><guid>https://blog.youkuaiyun.com/tojohnonly/article/details/103249881</guid><author>tojohnonly</author><pubDate>Tue, 26 Nov 2019 09:02:24 +0800</pubDate><description><![CDATA[DevOps
DevOps 是 Development（开发）和 Operations（运维）的组合，是一种方法论，是一组过程、方法与系统的统称，用于促进应用开发、应用运维和质量保障（QA）部门之间的沟通、协作与整合，以期打破传统开发和运营之间的壁垒和鸿沟；
DevOps 是一种重视软件开发人员（Dev）和IT运维技术人员（Ops）之间沟通合作的文化、运动或惯例，通过自动化软件交付和架构变更的流程...]]></description><category></category></item><item><title><![CDATA[什么是 Webhook？]]></title><link>https://blog.youkuaiyun.com/tojohnonly/article/details/103237500</link><guid>https://blog.youkuaiyun.com/tojohnonly/article/details/103237500</guid><author>tojohnonly</author><pubDate>Mon, 25 Nov 2019 14:33:55 +0800</pubDate><description><![CDATA[1. 什么是 Webhook？
Webhook 是一个 API 概念，是微服务 API 的使用范式之一，也被成为反向 API，即前端不主动发送请求，完全由后端推送；举个常用例子，比如你的好友发了一条朋友圈，后端将这条消息推送给所有其他好友的客户端，就是 Webhook 的典型场景。
简单来说，Webhook 就是一个接收 HTTP POST（或GET，PUT，DELETE）的URL，一个实现了 W...]]></description><category></category></item><item><title><![CDATA[Junit 多函数参数化测试详解]]></title><link>https://blog.youkuaiyun.com/tojohnonly/article/details/103162534</link><guid>https://blog.youkuaiyun.com/tojohnonly/article/details/103162534</guid><author>tojohnonly</author><pubDate>Wed, 20 Nov 2019 14:31:54 +0800</pubDate><description><![CDATA[Junit 参数化测试的五个步骤
（1）为准备使用参数化测试的测试类指定特殊的运行器 org.junit.runners.Parameterized
（2）为测试类声明几个变量，分别用于存放期望值和测试所用数据
（3）为测试类声明一个带有参数的公共构造函数，并在其中为第二个环节中声明的几个变量赋值
（4）为测试类声明一个使用注解 org.junit.runners.Parameterized.Pa...]]></description><category></category></item><item><title><![CDATA[Spring Boot mvnw 启动报错 Could not find or load main class org.apache.maven.wrapper.MavenWrapperMain 处理]]></title><link>https://blog.youkuaiyun.com/tojohnonly/article/details/103137171</link><guid>https://blog.youkuaiyun.com/tojohnonly/article/details/103137171</guid><author>tojohnonly</author><pubDate>Tue, 19 Nov 2019 10:35:26 +0800</pubDate><description><![CDATA[这种情况一般是 Maven Wrapper 没设置好，可以运行下设置命令：
mvn -N io.takari:maven:wrapper

如果提示：
[ERROR] Unknown lifecycle phase “–N”. You must specify a valid lifecycle phase or a goal…
去掉 -N 再试下即可
mvn io.takari:maven:wr...]]></description><category></category></item><item><title><![CDATA[Tomcat 使用 IDEA 远程 Debug 调试]]></title><link>https://blog.youkuaiyun.com/tojohnonly/article/details/102937577</link><guid>https://blog.youkuaiyun.com/tojohnonly/article/details/102937577</guid><author>tojohnonly</author><pubDate>Wed, 06 Nov 2019 16:24:20 +0800</pubDate><description><![CDATA[服务器上的 Tomcat 设置
在 tomcat/bin 目录下的 catalina.sh 开始位置添加如下设置：
CATALINA_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,address=9080,suspend=n,server=y"

address=9080 这个是后边 IDEA 需要用到的调试端口，可以任意设置一个未使用的端口
修改后的文件...]]></description><category></category></item><item><title><![CDATA[Nginx 中 root 和 alias 的区别]]></title><link>https://blog.youkuaiyun.com/tojohnonly/article/details/102901015</link><guid>https://blog.youkuaiyun.com/tojohnonly/article/details/102901015</guid><author>tojohnonly</author><pubDate>Mon, 04 Nov 2019 17:22:19 +0800</pubDate><description><![CDATA[root 与 alias 主要区别在于 Nginx 如何解释 location 后面的 URI，这会使两者分别以不同的方式将请求映射到服务器文件上
root 的处理结果是：root 路径 ＋ location 路径
alias 的处理结果是：使用 alias 路径替换 location 路径
alias 是一个目录别名的定义，root 则是最上层目录的定义
还有一个重要的区别是 alias 后面要...]]></description><category></category></item><item><title><![CDATA[CronExpression 表达式详解]]></title><link>https://blog.youkuaiyun.com/tojohnonly/article/details/102857259</link><guid>https://blog.youkuaiyun.com/tojohnonly/article/details/102857259</guid><author>tojohnonly</author><pubDate>Fri, 01 Nov 2019 14:42:55 +0800</pubDate><description><![CDATA[参数序号
参数名
是否可选




1
Seconds
否


2
Minutes
否


3
Hours
否


4
Day-of-Month
否


5
Month
否


6
Day-of-Week
否


7
Year
是


例如："0 0 12 ? * WED" 在每星期三下午 12:00 执行
其中每个元素可以是一个值 (6)，一个连续区间 (9-12)，一个间隔时间(8-1...]]></description><category></category></item><item><title><![CDATA[BeanUtils.copyProperties 详解]]></title><link>https://blog.youkuaiyun.com/tojohnonly/article/details/102854104</link><guid>https://blog.youkuaiyun.com/tojohnonly/article/details/102854104</guid><author>tojohnonly</author><pubDate>Fri, 01 Nov 2019 11:21:01 +0800</pubDate><description><![CDATA[简介
BeanUtils 提供对 Java 反射和自省 API 的包装，其主要目的是利用反射机制对 JavaBean 的属性进行处理
我们知道，一个 JavaBean 通常包含了大量的属性，很多情况下，对 JavaBean 的处理导致大量 get/set 代码堆积，增加了代码长度和阅读代码的难度
用法
BeanUtils 是这个包里比较常用的一个工具类，这里只介绍它的 copyProperties...]]></description><category></category></item><item><title><![CDATA[IDEA 代码格式化设置]]></title><link>https://blog.youkuaiyun.com/tojohnonly/article/details/102836996</link><guid>https://blog.youkuaiyun.com/tojohnonly/article/details/102836996</guid><author>tojohnonly</author><pubDate>Thu, 31 Oct 2019 14:18:12 +0800</pubDate><description><![CDATA[模板文件下载
IDEA 代码格式化设置，使用 Eclipse 设置，设置成阿里巴巴规范
阿里巴巴格式化模板文件下载地址：
https://github.com/alibaba/p3c
eclipse-codestyle.xml 是代码格式化时用的模板
eclipse-codetemplate.xml 是注释模板
我们需要的是 p3c/p3c-formatter/eclipse-codestyle....]]></description><category></category></item><item><title><![CDATA[Java 使用 @Data 注解优化代码]]></title><link>https://blog.youkuaiyun.com/tojohnonly/article/details/102801230</link><guid>https://blog.youkuaiyun.com/tojohnonly/article/details/102801230</guid><author>tojohnonly</author><pubDate>Tue, 29 Oct 2019 15:57:13 +0800</pubDate><description><![CDATA[Lombok 是一个可以通过简单的注解的形式来帮助我们简化消除一些必须有但显得很臃肿的 Java 代码的工具
比如我们新建了一个类，然后在其中写了几个字段，然后通常情况下我们需要手动去建立 getter 和 setter 方法和构造函数啊之类的，Lombok 的作用就是为了省去我们手动创建这些代码的麻烦，它能够在我们编译源码的时候自动帮我们生成这些方法。
在项目中使用时，首先在 pom.xml 中...]]></description><category></category></item></channel></rss>