<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[roddger1的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/roddger1</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; roddger1]]></copyright><item><title><![CDATA[go module 基本使用]]></title><link>https://blog.youkuaiyun.com/roddger1/article/details/108853638</link><guid>https://blog.youkuaiyun.com/roddger1/article/details/108853638</guid><author>roddger1</author><pubDate>Mon, 28 Sep 2020 17:15:49 +0800</pubDate><description><![CDATA[前言#

go的版本以至1.13,一直以来令人诟病的依赖管理也有了官方的方向,但是看了一下目前很多blog文章还是比较老的.

所以这里对 go mod 做一个大致的说明

正文#

前提#

go版本为1.13及以上

官方文档#

如果你想更深层次的了解GO MODULE的意义及开发者们的顾虑,可以直接访问官方文档(EN)


https://github.com/golang/go/wiki/Modules

go module介绍#

go module是go官方自带的go依赖管理库,在1.13版本]]></description><category></category></item><item><title><![CDATA[TCP,UDP,IP包头格式及说明]]></title><link>https://blog.youkuaiyun.com/roddger1/article/details/108398843</link><guid>https://blog.youkuaiyun.com/roddger1/article/details/108398843</guid><author>roddger1</author><pubDate>Fri, 04 Sep 2020 10:13:23 +0800</pubDate><description><![CDATA[一、MAC帧头定义
/数据帧定义，头14个字节，尾4个字节/




typedef struct _MAC_FRAME_HEADER
{
 char m_cDstMacAddress[6];    //目的mac地址
 char m_cSrcMacAddress[6];    //源mac地址
 short m_cType;       　　　　　//上一层协议类型，如0x0800代表上一层是IP协议，0x0806为arp
}__attribute__((packed))MAC_FRAME_HEADE..]]></description><category></category></item><item><title><![CDATA[根证书、服务器证书、用户证书的区别]]></title><link>https://blog.youkuaiyun.com/roddger1/article/details/108222673</link><guid>https://blog.youkuaiyun.com/roddger1/article/details/108222673</guid><author>roddger1</author><pubDate>Tue, 25 Aug 2020 15:47:16 +0800</pubDate><description><![CDATA[https证书包含的文件

ca.cer
			中间证书和根证书
		nginx.cn.cer
			你申请的ssl证书
		fullchain.cer
			包括了 ca.cer 和 nginx.cn.cer 的全链证书
		nginx.cn.key
			证书的私钥
		什么是证书链

证书链的意思是有一个证书机构A，A生成证书B，B也可以生成证书C，那么A是根证书。

操作系统预先安装的一些根证书，都是国际上很有权威的证书机构，比如 verisign 、 ENTRUST 这些公司。

我们...]]></description><category></category></item><item><title><![CDATA[数字证书应用综合揭秘（包括证书生成、加密、解密、签名、验签）]]></title><link>https://blog.youkuaiyun.com/roddger1/article/details/108222097</link><guid>https://blog.youkuaiyun.com/roddger1/article/details/108222097</guid><author>roddger1</author><pubDate>Tue, 25 Aug 2020 15:32:14 +0800</pubDate><description><![CDATA[引言

数字证书是一个经证书授权中心数字签名的包含公开密钥拥有者信息以及公开密钥的文件。为现实网络安全化标准，如今大部分的 B2B、B2C、P2P、O2O 等商业网站，含有重要企业资料个人资料的信息资信网站，政府机构金融机构等服务网站大部分都使用了数字证书来加强网络的安全性。
数字证书一般由经过国家认证的权威机构颁发，即CA（例如中国各地方的CA公司）中心签发的证书，也可以由企业级CA系统进行签发，例如：Symantec、ResellerClub、数安时代等。开发人员也可以通过工具自动生成证书进行开发，但不]]></description><category></category></item><item><title><![CDATA[简单解释一下 公钥 私钥 数字签名 数字证书]]></title><link>https://blog.youkuaiyun.com/roddger1/article/details/108213626</link><guid>https://blog.youkuaiyun.com/roddger1/article/details/108213626</guid><author>roddger1</author><pubDate>Tue, 25 Aug 2020 10:52:22 +0800</pubDate><description><![CDATA[文章目录



	目录

	文章目录

	前言

	一、应用场景

	二、公钥和私钥的加密体系

	

	二、公钥的发布

	总结

	




前言



一、应用场景

  在开始了解公钥和私钥之前，我们先来了解一下它们的应用场景：

1、一个在网络上公开的服务器要对外提供服务，它需要一种安全通信手段；

2、这个服务器需要对公众证明它是一台合法的服务器，而不是什么钓鱼服务器，在https普及之前，钓鱼服务器是很普遍的。



二、公钥和私钥的加密体系



   公钥和私钥是成对的，...]]></description><category></category></item><item><title><![CDATA[使用Maven + IDEA 编译Java项目（一）]]></title><link>https://blog.youkuaiyun.com/roddger1/article/details/108139643</link><guid>https://blog.youkuaiyun.com/roddger1/article/details/108139643</guid><author>roddger1</author><pubDate>Fri, 21 Aug 2020 09:44:20 +0800</pubDate><description><![CDATA[前言   
	
今天，有很多java项目都是以Maven来进行管理、构建，尤其是在开源网站上的项目更是如此，Idea则是大受程序员们喜爱的java编码工具，那么我们今天来了解一下，如何使用Maven + IDEA来开始编译一个java项目。


1、Mavan的安装

我们的工作环境在win10下，那么我们以win10的配置方法为例，Maven的安装必须需要jdk1.7+，我们可以从官网上，下载一个windows平台的压缩包，怎么下载我就不多做解释，大家去Maven官网http://maven....]]></description><category></category></item><item><title><![CDATA[Docker 核心技术与实现原理]]></title><link>https://blog.youkuaiyun.com/roddger1/article/details/108102383</link><guid>https://blog.youkuaiyun.com/roddger1/article/details/108102383</guid><author>roddger1</author><pubDate>Wed, 19 Aug 2020 15:41:13 +0800</pubDate><description><![CDATA[提到虚拟化技术，我们首先想到的一定是 Docker，经过四年的快速发展 Docker 已经成为了很多公司的标配，也不再是一个只能在开发阶段使用的玩具了。作为在生产环境中广泛应用的产品，Docker 有着非常成熟的社区以及大量的使用者，代码库中的内容也变得非常庞大。



同样，由于项目的发展、功能的拆分以及各种奇怪的改名PR，让我们再次理解 Docker 的的整体架构变得更加困难。

虽然 Docker 目前的组件较多，并且实现也非常复杂，但是本文不想过多的介绍 Docker 具体的实现细节，我们...]]></description><category></category></item><item><title><![CDATA[自己构建Docker镜像的一些基本思考]]></title><link>https://blog.youkuaiyun.com/roddger1/article/details/108100766</link><guid>https://blog.youkuaiyun.com/roddger1/article/details/108100766</guid><author>roddger1</author><pubDate>Wed, 19 Aug 2020 15:28:34 +0800</pubDate><description><![CDATA[我们在自己创建Docker镜像的时候，经常在Dockerfile中添加以下语句：其中，FROM是指明我们自己的镜像是从一个什么样的镜像继承而来。我们可以在一个镜像的基础上，增加自己的程序、修改运行环境，运行自己定义的命令。
	ubuntu:15.04表明这是使用了ubuntu:15.04的一个linux发行版本的基础镜像。

 FROM ubuntu:15.04

 RUN echo "Hello world" &gt; /tmp/newfile



我们从上面的例子可以看到，当需要自己构建一个镜像时，.]]></description><category></category></item><item><title><![CDATA[k8s集群外访问集群内部服务的几种方式]]></title><link>https://blog.youkuaiyun.com/roddger1/article/details/107983823</link><guid>https://blog.youkuaiyun.com/roddger1/article/details/107983823</guid><author>roddger1</author><pubDate>Thu, 13 Aug 2020 16:49:42 +0800</pubDate><description><![CDATA[前言

   目前k8s+docker算是运维必修了，docker能让我们的环境一键迁移，k8s能自动编排,还能保证服务高可用，两者结合自然是无敌，那我们要不要使用k8s呢？这要根据自身情况，任何技术的使用，都需要根据具体情况来定，就像你要杀鸡，却非要选牛刀，牛刀是很锋利，但还不够你折腾的

   本文重点介绍k8s集群外如何访问集群内的服务，主要方式有：hostPort或hostNetwork、NodePort、Ingress

一、hostPort或hostNetwork

hostP...]]></description><category></category></item><item><title><![CDATA[四种以太帧格式]]></title><link>https://blog.youkuaiyun.com/roddger1/article/details/107940672</link><guid>https://blog.youkuaiyun.com/roddger1/article/details/107940672</guid><author>roddger1</author><pubDate>Tue, 11 Aug 2020 17:38:52 +0800</pubDate><description><![CDATA[四种以太帧格式








一般我们讨论的以太帧头不包括它的前导码和帧定界。

1、前导码：7字节0x55,一串1、0间隔，用于信号同步
2、帧起始定界符：1字节0xD5(10101011)，表示一帧开始

转自四种格式的以太网帧结构

用过NetXray之类的抓包软件的人，可能经常会被一些不同的FrameHeader搞糊涂，为何用的Frame的Header是这样的，而另外的又不一样。这是因为在Ethernet中存在几种不同的帧格式，下面我就简单介绍一下几种不同的帧格式及他们的差异。
一、Ethern.]]></description><category></category></item><item><title><![CDATA[Linux下各数据报头部结构体定义]]></title><link>https://blog.youkuaiyun.com/roddger1/article/details/107940576</link><guid>https://blog.youkuaiyun.com/roddger1/article/details/107940576</guid><author>roddger1</author><pubDate>Tue, 11 Aug 2020 17:35:57 +0800</pubDate><description><![CDATA[Linux下各数据报头部结构体定义：


#ifndef LITTLE_ENDIAN
#define LITTLE_ENDIAN   (1)   //BYTE ORDER
#else
#error Redefine LITTLE_ORDER
#endif

//Mac头部，总长度14字节
typedef struct _eth_hdr
{
unsigned char dstmac[6]; //目标mac地址
unsigned char srcmac[6]; //源mac地址
unsigned short e]]></description><category></category></item><item><title><![CDATA[IPv4报文格式]]></title><link>https://blog.youkuaiyun.com/roddger1/article/details/107940519</link><guid>https://blog.youkuaiyun.com/roddger1/article/details/107940519</guid><author>roddger1</author><pubDate>Tue, 11 Aug 2020 17:33:19 +0800</pubDate><description><![CDATA[下图是IP的报文格式，Ipv4头长度最低为20字节最大长度为60字节(20字节 ~ 60字节长度中为4的倍数的长度)，接下来我们先说明各个字段的意义。
常见的IPv4报文格式表：

1.版本：ip报文中，版本占了4位，用来表示该协议采用的是那一个版本的ip，相同版本的ip才能进行通信。一般此处的值为4，表示ipv4。

2.头长度：该字段用四位表示，表示整个ip包头的长度，其中数的单位是4字节。即二进制数0000-1111（十进制数0-15），其中一个最小长度为0字节，最大长度为60字节。...]]></description><category></category></item><item><title><![CDATA[kubernetes之helm简介、安装、配置、使用指南]]></title><link>https://blog.youkuaiyun.com/roddger1/article/details/107880229</link><guid>https://blog.youkuaiyun.com/roddger1/article/details/107880229</guid><author>roddger1</author><pubDate>Sat, 08 Aug 2020 15:17:47 +0800</pubDate><description><![CDATA[转自：https://blog.youkuaiyun.com/bbwangj/article/details/81087911

目录

helm简介

Helm 组件及相关术语

Helm

Tiller

Chart

Repoistory

Release

Helm工作原理

helm部署

一、Helm 客户端安装

二、Helm 服务端安装Tiller

三、给 Tiller 授权

四、验证 Tiller 是否安装成功

五、卸载 Helm 服务器端 Tiller

六、Helm 使用

Helm Cha]]></description><category></category></item><item><title><![CDATA[linux内核之：深度理解 epoll 本质]]></title><link>https://blog.youkuaiyun.com/roddger1/article/details/107841044</link><guid>https://blog.youkuaiyun.com/roddger1/article/details/107841044</guid><author>roddger1</author><pubDate>Thu, 06 Aug 2020 15:48:47 +0800</pubDate><description><![CDATA[linux内核之：深度理解 epoll 本质
目录
一、从网卡接收数据说起
二、如何知道接收了数据？
三、进程阻塞为什么不占用cpu资源？
四、内核接收网络数据全过程
五、同时监视多个socket的简单方法
六、epoll的设计思路
七、epoll的原理和流程
八、epoll的实现细节
九、结论
　　一直对epoll的本质有一定的理解，但是又不够深入，被别人问起时，总是有一些悬而未决的问题答不出来。最后发现了这篇文章，我觉得真的特别棒。转载以学习之！
　　转载来源： https://bbs.gameres.]]></description><category></category></item><item><title><![CDATA[YML简介]]></title><link>https://blog.youkuaiyun.com/roddger1/article/details/107656897</link><guid>https://blog.youkuaiyun.com/roddger1/article/details/107656897</guid><author>roddger1</author><pubDate>Wed, 29 Jul 2020 10:23:12 +0800</pubDate><description><![CDATA[文章目录
一、YML是什么
二、YML的优点
三、YML语法
1.约定
2.键值关系
1) 普通值(字面量)
2)日期
3)对象(属性和值)、Map(键值对)
4)数组、list、set
5)数组对象、list对象、set对象
6)Java代码示例
3.文档块
一、YML是什么
YAML (YAML Aint Markup Language)是一种标记语言，通常以.yml或者.yaml为后缀的文件，是一种直观的能够被电脑识别的数据序列化格式，并且容易被人类阅读，容易和脚本语言交互的，可以被支持YAML库的不]]></description><category></category></item><item><title><![CDATA[java中序列化的两种接口Serializable和Externalizable]]></title><link>https://blog.youkuaiyun.com/roddger1/article/details/107641214</link><guid>https://blog.youkuaiyun.com/roddger1/article/details/107641214</guid><author>roddger1</author><pubDate>Tue, 28 Jul 2020 17:31:38 +0800</pubDate><description><![CDATA[摘要: 本文主要要看看JDK中使用Serializable和Externalizable接口来完成Java对象序列化，并给出部分属性序列化的几种方式，最终做出Serializable和Externalizable接口的几个方面的对比。
Java序列化是指把Java对象转换为字节序列的过程；而Java反序列化是指把字节序列恢复为Java对象的过程。从而达到网络传输、本地存储的效果。
本文主要要看看JDK中使用Serializable和Externalizable接口来完成Java对象序列化，并给出部分属性序列]]></description><category></category></item><item><title><![CDATA[java中反序列化与单例模式的冲突]]></title><link>https://blog.youkuaiyun.com/roddger1/article/details/107638126</link><guid>https://blog.youkuaiyun.com/roddger1/article/details/107638126</guid><author>roddger1</author><pubDate>Tue, 28 Jul 2020 15:55:37 +0800</pubDate><description><![CDATA[今天在序列化反序列化的时候，发现单例模式竟然实现不了，
查了一下资料，发现反序列化由于使用了反射机制来创建一个新的对象，
导致其并没有受到单例模式的约束，今天做一个总结，以便后续查询。
有兴趣的可以从java.io.ObjectInputStream中的public final Object readObject()开始，
看一下jdk的源码：
public final Object readObject()
    throws IOException, ClassNotFoundException {
]]></description><category></category></item><item><title><![CDATA[Java IO流的划分表]]></title><link>https://blog.youkuaiyun.com/roddger1/article/details/107463435</link><guid>https://blog.youkuaiyun.com/roddger1/article/details/107463435</guid><author>roddger1</author><pubDate>Mon, 20 Jul 2020 14:49:10 +0800</pubDate><description><![CDATA[java.io 包下的IO流很多：

其中，以Stream结尾的为字节流，以Writer或者Reader结尾的为字符流。所有的输入流都是抽象类IuputStream（字节输入流）或者抽象类Reader（字符输入流）的子类，所有的输出流都是抽象类OutputStream(字节输出流)或者抽象类Writer(字符输出流)的子类。字符流能实现的功能字节流都能实现，反之不一定。如：图片，视频等二进制文件，只能使用字节流读写。

...]]></description><category></category></item><item><title><![CDATA[JAVA中的泛型方法的声明形式的介绍]]></title><link>https://blog.youkuaiyun.com/roddger1/article/details/107220639</link><guid>https://blog.youkuaiyun.com/roddger1/article/details/107220639</guid><author>roddger1</author><pubDate>Thu, 09 Jul 2020 10:15:33 +0800</pubDate><description><![CDATA[在java中，泛型分为称为泛型类、泛型接口、泛型方法。
其中泛型类、泛型接口理解较为容易，但是泛型方法，容易让人产生困惑。
那么我们在这片文章中来学习一下泛型方法。
泛型方法，是在调用方法的时候指明泛型的具体类型 。
/**

泛型方法的基本介绍
@param tClass 传入的泛型实参
@return T 返回值为T类型
说明：
1）”修饰符“ 与 “返回值类型” 之间的  为声明此方法为泛型方法。只有声明了的方法才是泛型方法，泛型类中的使用了泛型的成员方法并不是泛型方法。
2）表明该方法将使用泛型类型]]></description><category></category></item><item><title><![CDATA[JAVA中的Class对象]]></title><link>https://blog.youkuaiyun.com/roddger1/article/details/107219866</link><guid>https://blog.youkuaiyun.com/roddger1/article/details/107219866</guid><author>roddger1</author><pubDate>Thu, 09 Jul 2020 08:50:53 +0800</pubDate><description><![CDATA[Class类简介
  在java世界里，一切皆对象。从某种意义上来说，java有两种对象：实例对象和Class对象。每个类的运行时的类型信息就是用Class对象表示的。它包含了与类有关的信息。其实我们的实例对象就通过Class对象来创建的。Java使用Class对象执行其RTTI（运行时类型识别，Run-Time Type Identification），多态是基于RTTI实现的。
每一个类都有一个Class对象，每当编译一个新类就产生一个Class对象，基本类型 (boolean, byte, char,]]></description><category></category></item></channel></rss>