<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[hello_junz的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/hello_junz</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; hello_junz]]></copyright><item><title><![CDATA[树莓派开机自动启动Chomium浏览器并打开指定网页]]></title><link>https://blog.youkuaiyun.com/hello_junz/article/details/121394900</link><guid>https://blog.youkuaiyun.com/hello_junz/article/details/121394900</guid><author>hello_junz</author><pubDate>Thu, 18 Nov 2021 10:27:01 +0800</pubDate><description><![CDATA[创建文件


cd /home/pi/.config
mkdir autostart
cd autostart
vi my.desktop

文件内容如下


[Desktop Entry]
Type=Application
Exec=chromium-browser --disable-popup-blocking --no-first-run --disable-desktop-notifications --kiosk "http://www.baidu.com"

启动参数说明：Chromium..]]></description><category></category></item><item><title><![CDATA[Chromium浏览器启动参数]]></title><link>https://blog.youkuaiyun.com/hello_junz/article/details/121394695</link><guid>https://blog.youkuaiyun.com/hello_junz/article/details/121394695</guid><author>hello_junz</author><pubDate>Thu, 18 Nov 2021 10:18:32 +0800</pubDate><description><![CDATA[Chromium浏览器启动参数]]></description><category></category></item><item><title><![CDATA[详解Linux查看实时网卡流量的几种方式]]></title><link>https://blog.youkuaiyun.com/hello_junz/article/details/121201049</link><guid>https://blog.youkuaiyun.com/hello_junz/article/details/121201049</guid><author>hello_junz</author><pubDate>Mon, 08 Nov 2021 09:03:02 +0800</pubDate><description><![CDATA[假如Keepalived有10个VIP，怎么查看每个VIP的流量呢？

这里就可以使用sar命令查看网卡流量了。前提是你Keepalived监听网卡时。设置网卡时子接口。

也就是说你网卡绑定子接口上。这样eth0:0,eth0:1，每个网卡流量都可以看了





在工作中，我们经常需要查看服务器的实时网卡流量。通常，我们会通过这几种方式查看Linux服务器的实时网卡流量。

1. sar -n DEV 1 2

sar命令包含在sysstat工具包中，提供系统的众多统计数据。其在不同的系统上命令有些差异]]></description><category></category></item><item><title><![CDATA[spring cloud gateway+consul单机示例]]></title><link>https://blog.youkuaiyun.com/hello_junz/article/details/119383944</link><guid>https://blog.youkuaiyun.com/hello_junz/article/details/119383944</guid><author>hello_junz</author><pubDate>Wed, 04 Aug 2021 16:29:00 +0800</pubDate><description><![CDATA[Spring cloud gateway 下一代服务网关，用来替代Zuul，不仅提供统一的路由方式，并且基于 Filter 链的方式提供了网关基本的功能，例如：安全，监控/指标和限流。

Consul是google开源的一个使用go语言开发的服务发现、配置管理中心服务。

本文的目的：测试验证客户端请求发送到gateway，gateway通过注册发现中心将请求转发到相应服务并返回服务响应消息。

实施步骤为：启动服务发现注册中心Consul、实现并注册服务提供者、配置gateway网关，客服端下发测试请求验]]></description><category></category></item><item><title><![CDATA[微服务中mock掉feign Client进行restful单元测试]]></title><link>https://blog.youkuaiyun.com/hello_junz/article/details/119330512</link><guid>https://blog.youkuaiyun.com/hello_junz/article/details/119330512</guid><author>hello_junz</author><pubDate>Mon, 02 Aug 2021 17:46:23 +0800</pubDate><description><![CDATA[今天分享一个在微服务中restful接口的单元测试例子，主要涉及三方面：内部调用的mock、接口DTO的序列化和反序列化、用MockMvc加速单元测试用例执行。


	单元测试要求不依赖外部服务，这样才能够方便的支持在各种环境下执行，特别是CI环境。但是在微服务开发中最常见的依赖就是服务间的调用。好在有Mockito，我们可以方便的实现各种stub来mock掉feign client的调用。
	
	
	为了尽可能的测试到微服务的调用过程，我们还需要模拟DTO的序列号和反序列化过程。在一个restful接口的]]></description><category></category></item><item><title><![CDATA[Kafka学习之路 （五）Kafka在zookeeper中的存储]]></title><link>https://blog.youkuaiyun.com/hello_junz/article/details/119023914</link><guid>https://blog.youkuaiyun.com/hello_junz/article/details/119023914</guid><author>hello_junz</author><pubDate>Fri, 23 Jul 2021 09:33:51 +0800</pubDate><description><![CDATA[一、Kafka在zookeeper中存储结构图




二、分析




2.1　topic注册信息

/brokers/topics/[topic] :

存储某个topic的partitions所有分配信息


[zk: localhost:2181(CONNECTED) 1] get /brokers/topics/topic2






Schema:
{
    "version": "版本编号目前固定为数字1",
    "partitions": {
        "partitionI.]]></description><category></category></item><item><title><![CDATA[Kafka学习之路 （四）Kafka的安装]]></title><link>https://blog.youkuaiyun.com/hello_junz/article/details/119023864</link><guid>https://blog.youkuaiyun.com/hello_junz/article/details/119023864</guid><author>hello_junz</author><pubDate>Fri, 23 Jul 2021 09:31:24 +0800</pubDate><description><![CDATA[一、下载

下载地址：

http://kafka.apache.org/downloads.html

http://mirrors.hust.edu.cn/apache/


二、安装前提（zookeeper安装）


参考http://www.cnblogs.com/qingyunzong/p/8634335.html#_label4_0


三、安装


此处使用版本为kafka_2.11-0.8.2.0.tgz



2.1　上传解压缩


[hadoop@hadoop1 ~]$ tar -z..]]></description><category></category></item><item><title><![CDATA[Kafka学习之路 （三）Kafka的高可用]]></title><link>https://blog.youkuaiyun.com/hello_junz/article/details/119023791</link><guid>https://blog.youkuaiyun.com/hello_junz/article/details/119023791</guid><author>hello_junz</author><pubDate>Fri, 23 Jul 2021 09:29:24 +0800</pubDate><description><![CDATA[一、高可用的由来



1.1　为何需要Replication

　　在Kafka在0.8以前的版本中，是没有Replication的，一旦某一个Broker宕机，则其上所有的Partition数据都不可被消费，这与Kafka数据持久性及Delivery Guarantee的设计目标相悖。同时Producer都不能再将数据存于这些Partition中。

　　如果Producer使用同步模式则Producer会在尝试重新发送message.send.max.retries（默认值为3）次后抛出Excepti]]></description><category></category></item><item><title><![CDATA[Kafka学习之路 （二）Kafka的架构]]></title><link>https://blog.youkuaiyun.com/hello_junz/article/details/119023728</link><guid>https://blog.youkuaiyun.com/hello_junz/article/details/119023728</guid><author>hello_junz</author><pubDate>Fri, 23 Jul 2021 09:26:41 +0800</pubDate><description><![CDATA[一、Kafka的架构



如上图所示，一个典型的Kafka集群中包含若干Producer（可以是web前端产生的Page View，或者是服务器日志，系统CPU、Memory等），若干broker（Kafka支持水平扩展，一般broker数量越多，集群吞吐率越高），若干Consumer Group，以及一个Zookeeper集群。Kafka通过Zookeeper管理集群配置，选举leader，以及在Consumer Group发生变化时进行rebalance。Producer使用push模式将消息发布到b]]></description><category></category></item><item><title><![CDATA[Kafka学习之路 （一）Kafka的简介]]></title><link>https://blog.youkuaiyun.com/hello_junz/article/details/119023673</link><guid>https://blog.youkuaiyun.com/hello_junz/article/details/119023673</guid><author>hello_junz</author><pubDate>Fri, 23 Jul 2021 09:23:40 +0800</pubDate><description><![CDATA[一、简介



1.1　概述

Kafka是最初由Linkedin公司开发，是一个分布式、分区的、多副本的、多订阅者，基于zookeeper协调的分布式日志系统（也可以当做MQ系统），常见可以用于web/nginx日志、访问日志，消息服务等等，Linkedin于2010年贡献给了Apache基金会并成为顶级开源项目。

主要应用场景是：日志收集系统和消息系统。

Kafka主要设计目标如下：

以时间复杂度为O(1)的方式提供消息持久化能力，即使对TB级以上数据也能保证常数时间的访问性能。
	高吞吐率。即使]]></description><category></category></item><item><title><![CDATA[Mybatis自动生成mapper、实体类及mapper xml文件]]></title><link>https://blog.youkuaiyun.com/hello_junz/article/details/107287010</link><guid>https://blog.youkuaiyun.com/hello_junz/article/details/107287010</guid><author>hello_junz</author><pubDate>Sat, 11 Jul 2020 17:20:30 +0800</pubDate><description><![CDATA[项目中用的mybatis，依据数据库表手工写java实体类、mapper接口及mapper xml文件，是一件很郁闷的乏味的事情，而且容易出错，下面记录了一下本人用工具类自动生成这些文件的过程及碰到的坑。

1. maven pom.xml 配置（只列出需要用到的2个核心依赖库）


&lt;!-- jdbc driver --&gt;
&lt;dependency&gt;
	&lt;groupId&gt;org.postgresql&lt;/groupId&gt;
	&lt;artifactId&...]]></description><category></category></item><item><title><![CDATA[linux日志分析之抓取指定列并按多字段排序]]></title><link>https://blog.youkuaiyun.com/hello_junz/article/details/103010159</link><guid>https://blog.youkuaiyun.com/hello_junz/article/details/103010159</guid><author>hello_junz</author><pubDate>Mon, 11 Nov 2019 16:01:30 +0800</pubDate><description><![CDATA[部署上linux上的app，输出的固定格式的日志，如何抓取指定列并按多字段排序呢？

下面我们以一个具体的日志分析来演示一下。

执行sudo cat logs/reader.log.2019-11-10 |grep "deviceNo="后，输入的内容如下


[2019/11/10 23:21:06 GMT] [App] [INFO] (gitee.com/jerry_zheng/rbuhfs...]]></description><category></category></item><item><title><![CDATA[Ubuntu18.04虚拟机桥接模式连wifi并配置静态IP]]></title><link>https://blog.youkuaiyun.com/hello_junz/article/details/102952441</link><guid>https://blog.youkuaiyun.com/hello_junz/article/details/102952441</guid><author>hello_junz</author><pubDate>Thu, 07 Nov 2019 14:38:24 +0800</pubDate><description><![CDATA[宿主机有两块网卡，一个有线网卡，一个无线网卡，无线网卡连接wifi并可以上网。在宿主机里用vmware创建了一个虚拟机，通过桥接模式连wifi并配置静态IP。

具体实施步骤如下：

一、操作系统版本

1.1 宿主机操作系统为windows10家庭版



1.2 虚拟机OS版本


jerry@ubuntu:~$ uname -a
Linux ubuntu 5.0.0-32-generic #...]]></description><category></category></item><item><title><![CDATA[postgresql自动备份]]></title><link>https://blog.youkuaiyun.com/hello_junz/article/details/101512490</link><guid>https://blog.youkuaiyun.com/hello_junz/article/details/101512490</guid><author>hello_junz</author><pubDate>Fri, 27 Sep 2019 10:02:28 +0800</pubDate><description><![CDATA[本示例的应用场景是，宿主机系统是centos7，安装有docker相关环境，在docker中启动postgresql镜像，数据库文件从宿主机目录映射到docker实例中。自动备份的方案是：在宿主机上采用crontab定时调用脚本执行数据库的备份。

   具体实施部署如下：

一、创建连接postgresql备份表及数据的用户，并赋予只读权限

1. 在宿主机上执行psql连接到...]]></description><category></category></item><item><title><![CDATA[基于Vertx的SSL通信]]></title><link>https://blog.youkuaiyun.com/hello_junz/article/details/101021511</link><guid>https://blog.youkuaiyun.com/hello_junz/article/details/101021511</guid><author>hello_junz</author><pubDate>Thu, 19 Sep 2019 17:39:22 +0800</pubDate><description><![CDATA[Vert.x是一个基于netty的使用异步非阻塞开发模型构建响应式和分布式系统的工具包。

本文基于Vert.x开发一个server及client， cleint通过ssl方式与server通信。

一、准备工作

1. 下载Vertx包

  我是在windows上开发、运行这个示例的，所以直接下载vert.x-3.8.1-full.zip，解压就行。



  官网下载地址：htt...]]></description><category></category></item><item><title><![CDATA[go 语言string、int、int64互相转换]]></title><link>https://blog.youkuaiyun.com/hello_junz/article/details/99676752</link><guid>https://blog.youkuaiyun.com/hello_junz/article/details/99676752</guid><author>hello_junz</author><pubDate>Fri, 16 Aug 2019 14:03:30 +0800</pubDate><description><![CDATA[go语言中string、int、int64互相转换


import "strconv"  //先导入strconv包

// string到int
int, err := strconv.Atoi(string)

// string到int64
int64, err := strconv.ParseInt(string, 10, 64)

// int到string
string := str...]]></description><category></category></item><item><title><![CDATA[每个架构师都应该研究下康威定律]]></title><link>https://blog.youkuaiyun.com/hello_junz/article/details/99412551</link><guid>https://blog.youkuaiyun.com/hello_junz/article/details/99412551</guid><author>hello_junz</author><pubDate>Tue, 13 Aug 2019 10:32:01 +0800</pubDate><description><![CDATA[今天的分享主要来自我之前的工作经验以及平时的学习总结和思考。我之前的背景主要是做框架、系统和平台架构，之前工作过的公司 eBay、携程、唯品会都是平台型互联网公司，所以今天主要带着平台架构视角和大家分享心得体会。架构的视角每个人都不一样，可以说一万种眼光，有业务架构、安全架构、平台架构、数据架构，各不相同，这里仅是我的一家之言，欢迎大家加入『聊聊架构』社群参与讨论。今天聊的话题主要包括以下几点：
...]]></description><category></category></item><item><title><![CDATA[奇葩的go日期格式化]]></title><link>https://blog.youkuaiyun.com/hello_junz/article/details/98085143</link><guid>https://blog.youkuaiyun.com/hello_junz/article/details/98085143</guid><author>hello_junz</author><pubDate>Thu, 01 Aug 2019 18:25:35 +0800</pubDate><description><![CDATA[将指定日期做格式化处理，这个非常常见。

比如java中，将日期格式化为指定格式的字符串：


Stringformat = "yyyy-MM-dd HH:mm:ss" //定义期望格式化格式

DateFormat dateformat = new SimpleDateFormat(format);//初始化格式模板

Date date = new Date();

System.out.p...]]></description><category></category></item><item><title><![CDATA[go生成指定数集的随机排列]]></title><link>https://blog.youkuaiyun.com/hello_junz/article/details/95631879</link><guid>https://blog.youkuaiyun.com/hello_junz/article/details/95631879</guid><author>hello_junz</author><pubDate>Fri, 12 Jul 2019 17:25:06 +0800</pubDate><description><![CDATA[本文要解决的问题是：

  给定一个数集，随机生成一个排列，数集中的每个数出现且只出现一次（就像玩扑克牌时洗牌一样，尽量将牌洗散）。

  比如，给定数集{2，3，4，5，6，7，8，9，10，11，12} 即：2~12之间的11个整数，随机产生一个长度为11的序列数组，要求2~12之间的每个数都要出现且仅出现一次



示例代码如下：main函数中，调用RandomSequence...]]></description><category></category></item><item><title><![CDATA[shell脚本定期删除日志文件]]></title><link>https://blog.youkuaiyun.com/hello_junz/article/details/92833122</link><guid>https://blog.youkuaiyun.com/hello_junz/article/details/92833122</guid><author>hello_junz</author><pubDate>Wed, 19 Jun 2019 16:21:34 +0800</pubDate><description><![CDATA[假设某系统按天记录日志文件，即每天一个日志文件。随着系统的运行，日志文件越来越多。


app.log
app.log.2019-06-18
app.log.2019-06-17
app.log.2019-06-16
app.log.2019-06-15
app.log.2019-06-14
app.log.2019-06-13
app.log.2019-06-12
app.log.2019-06...]]></description><category></category></item></channel></rss>