自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(10)
  • 收藏
  • 关注

原创 Gmqtt插件机制详解

在上一篇文章中,我们介绍了Gmqtt的基本特性以及钩子函数的基本使用方法。本篇我们来详细介绍Gmqtt的插件机制,以及如何编写插件。前文回顾Gmqtt——Go语言实现的MQTT broker项目地址:https://github.com/DrmagicE/gmqttsession的生命周期根据MQTT协议规范,每个客户端连接都会有一个与之对应的session,客户端可以指定该session是否需要持久化。对于一个持久化session,即使客户端离线,broker也会为其保留订阅信息以及与其订阅匹

2020-12-24 23:58:42 1378 3

转载 深入理解CNI(容器网络接口)

原文CNI简介容器网络的配置是一个复杂的过程,为了应对各式各样的需求,容器网络的解决方案也多种多样,例如有flannel,calico,kube-ovn,weave等。同时,容器平台/运行时也是多样的,例如有Kubernetes,Openshift,rkt等。如果每种容器平台都要跟每种网络解决方案一一对接适配,这将是一项巨大且重复的工程。当然,聪明的程序员们肯定不会允许这样的事情发生。想要解决这个问题,我们需要一个抽象的接口层,将容器网络配置方案与容器平台方案解耦。CNI(Container Netw

2021-08-11 19:04:53 6718

转载 Flannel的两种模式解析(VXLAN、host-gw)

原文Flannel是为Kubernetes设计的一种简单易用的容器网络解决方案,将所有的Pod都组织在同一个子网的虚拟大二层网络中。Flannel支持的后端转发方式有许多种,本文将介绍其中两种,VXLAN以及host-gw。VXLAN 简介VXLAN (Virtual Extensible LAN)是一种网络虚拟化技术,它使用一种隧道协议,将二层以太网帧封装在四层UDP报文中,通过三层网络传输,组成一个虚拟大二层网络。VXLAN的报文格式如下:VXLAN使用VTEP(VXLAN Tunnel En

2021-08-11 19:02:06 1483

原创 Gmqtt——Go语言实现的MQTT broker

MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议)是用于物联网(IoT)的OASIS标准消息传递协议。发布/订阅是连接远程消息传递设备的理想选择,因为它具有非常小的网络带宽。MQTT目前广泛应用于各种行业,如汽车、制造业、电信、石油和天然气等。摘自 https://mqtt.org/对于MQTT broker,目前主流的实现有EMQ,mosquito,HiveMQ等,但是并没有一个很完整的Go语言实现。目前的开源的Go实现对MQTT协议的支持基本

2020-12-24 23:44:37 6565 3

原创 k8s中对存储的抽象

本篇介绍内容主要有VolumePersistenceVolumePersistentVolumeClaimPVC与PV的绑定Volume容器中的文件系统是不持久的,在容器中运行一些复杂的应用可能导致某些问题:第一,当容器崩溃,kubelet会重启它,但容器内的文件已经丢失了,因为每次当容器重启的时候,容器会以一个“干净”的初始状态启动。第二,当一组容器在同一个Pod上运行的时候,他...

2019-01-04 22:32:47 425

原创 k8s中操作Deployment示例

以下部署过程基于官方手册,稍作调整以便理解。本示例包含以下内容:创建Deployment更新Deployment回滚DeploymentDeployment扩容和缩容Deployment的暂停和恢复用Service暴露Deployment由于本篇内容是按实际操作顺序编排,如要实践本篇中的事例,推荐从头到尾按顺序一步步执行,以免“跳戏”。创建Deployment$ vim n...

2018-12-31 21:48:42 16635

原创 CentOS7 Kubernetes minikube本地环境搭建

Kubernetes本地环境搭建,非翻墙版,这是搭了6个小时环境终于成功的吐血整理。国内镜像没有最新版本(截止当前码字的版本是v0.32.0),所以先将就一下,用v0.30.0来代替。安装Dockerdocker已分为企业版和社区版,这里我们安装社区版,也就是docker-ce。安装官方手册按顺序执行安装命令$ sudo yum update -y$ sudo yum instal...

2018-12-31 12:53:08 1113

转载 How I organize my applications in Go[转]

OverviewFor me, the hardest part of learning Go was in structuring my application. Prior to Go, I was working on a Rails application and Rails makes you structure your application in a certain way. “...

2018-09-21 20:33:37 180

原创 Go的单元测试技巧

单元测试(Unit Test)Go语言原生支持测试工具go test,省去了各种各样测试框架的学习成本。说来也惭愧,写代码这么些年,也从来没有给自己的代码写过单元测试,代码质量的确堪忧。遂花时间学习整理了一下单元测试的基本方法,以及在Go中的实践技巧。单元测试的难点以下是我在尝试进行单元测试的过程中遇到的一些难点,在下文中会介绍相应的一些应对方案。1.掌握单元测试粒度单元测...

2018-09-17 01:10:24 3403

原创 Go Code Review建议以及自查表

Go Code Review/Checklist管理Goroutine的生命周期鲁迅曾经说过:永远不要go一个你无法确他何时退出的routine 一个无法退出的goroutine最可能是阻塞在某些channel上了,对于这种永久阻塞,GC并不会将goroutine停止,并释放内存,这将导致goroutine leak 内存泄漏。 Goroutines can leak by bl...

2018-08-12 02:28:27 734

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除