自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

zhojhon的博客

只有永远不满足于现状,才有持续的动力改进, 优化,进步.

  • 博客(11)
  • 资源 (5)
  • 收藏
  • 关注

原创 Gitlab CI/CD

Gitlab CI/CD1.概述Gitlab是常用的开源git代码管理工具之一,随着发展也推出了ci/cd解决方案.顾名思义具体来说ci/cd主要完成以下两个工作.ci(持续构建)代码提交后触发自动化的单元测试,代码预编译,构建镜像,上传镜像等.cd(持续发布)持续发布则指将构建好的程序发布到各种环境,如预发布环境,正式环境.2.特性gitlab ci/cd具有以下特性跨平台支持只要支持go语言的...

2018-02-24 11:32:16 8143

原创 使用iptables实现etcd集群白名单功能

使用iptables实现etcd集群白名单功能1.概述由于etcd自身不提供ip白名单功能,当在生产环境运行etcd,且当该etcd简体监听外网时,应该通过ip白名单来允许能够访问的外网ip,拒绝非法的ip访问,从而提高生成环境etcd集群的安全性,这里将使用iptables来实现该功能。2.iptables使用在centos中,iptables可以通过服务方式进行运行,使用服务方式运行相对来说更加

2017-09-20 11:58:20 1672

原创 信封加密存储秘钥

众所周知,在业务使用的过程中我们往往需要使用秘钥进行安全验证,通常一个秘钥往往是一个合法身份的凭证,这里就如孙悟空和六耳猕猴一样,两个人都声称自己叫孙悟空,这个时候验证谁是真正悟空,往往需要让两个悟空回答一些只有真的悟空才能知道的答案,这个只有真的悟空才能回答出来的答案就等同于秘钥。这里就会衍生出一个问题,秘钥如果泄漏了怎么办,如果只是单纯的使用秘钥作为身份验证,那么这里的确毫无办法,因此秘钥

2017-07-28 17:59:37 2347 2

原创 golang程序版本管理

版本管理主要用于对运行程序的版本追踪,从而可以管理线上服务的运行版本,避免各个版本的服务程序混淆.这里通常的做法为在程序中埋入版本标志,同时该版本号会对应到git上的tag或release版本.从而对线上服务更改有一个更全面的信息说明.这里将介绍基于GNU风格一种版本命名方式.1. 版本号命名格式主版本号 . 子版本号 [. 修正版本号 [. 编译版本号 ]] Major_Version_Numb

2017-05-11 18:28:26 2401

原创 golang 进程出现too many open files的排查过程

1. 现象服务的cpu跑满(golang实现), 并大量报too many open files错误.服务使用systemd来运行,部署在阿里ecs上.2.分析从日志来看,cpu的上升主要为到达文件数限制引起的,但之前已经更改过系统的文件数及所有用户的文件数,按道理是不应该出现这个问题的,后来查阅资料发现,文件数可以从三个维度限制分别为操作系统限制,用户态限制,以及进程限制

2016-09-21 15:17:34 12779 1

原创 etcd 集群搭建及常用场景分析

概述etcd 是一个分布式一致性k-v存储系统,可用于服务注册发现与共享配置,具有以下优点。简单 : 相比于晦涩难懂的paxos算法,etcd基于相对简单且易实现的raft算法实现一致性,并通过gRPC提供接口调用安全:支持TLS通信,并可以针对不同的用户进行对key的读写控制高性能:10,000 /秒的写性能1. etcd单机模式单机模式的etcd

2016-08-31 16:19:51 43281 1

原创 一致性hash算法原理及golang实现

概述这里存在一种场景, 当一个服务由多个服务器组共同提供时, key应该路由到哪一个服务.这里假如采用最通用的方式key%N(N为服务器数目), 这里乍一看没什么问题, 但是当服务器数目发送增加或减少时, 分配方式则变为key%(N+1)或key%(N-1).这里将会有大量的key失效迁移,如果后端key对应的是有状态的存储数据,那么毫无疑问,这种做法将导致服务器间大量的数据迁移,从而照成

2016-08-15 23:56:17 7722

原创 redis集群搭建及分析

redis提供了无中心化的模式来提供对key的shading, 提供数据存储的master节点与master节点之间是对等的, master节点与master节点之间通过gossip协议进行通信,以实现集群选主,失效转移, 触发数据迁移等操作.1. redis 集群搭建1.1 配置项说明cluster-enabled : 是否开启集群模式, yes开启, no不开启.

2016-08-11 19:30:36 2301 2

原创 Go 语言中Select与for结合使用时可能会遇到的坑

作为一个刚接触go编程的新鸟,是不是被它的某些新特性给吓到,尤其是之前已经习惯了C++的编程。对于Go语言,网上褒贬不一,有极力推崇的,如七牛的许式伟,其对go的评价极高,并预言Go的市场占有率会一直逐步上升,取代java,成为第一。也有极力贬低的,他们一般会网络上有各种博客帖子,详细的剖析了go的不妥之处。而我接触go这段时间之后,不得不说,它真的是一门很有意思的语言,为什么用有意思形容呢,借用

2015-04-03 09:01:52 2353

原创 QT实现头像图片剪切框

近期在做一个qt项目,在用户选择头像图片后,需要将图片载入,并对其进行用户自定义裁剪。通过研究参照各流行软件的裁剪方式后,发现qq实现的裁剪比较好看,于是,我想那就做一个和qq相似的吧。先放一张qq实现的效果,然后最后再放我实现的效果。1. 怎样去实现裁剪对于一张载入的图片,要实现用户自定义裁剪,那么首先我需要有一个能够响应用户自由缩放的边框,当用户缩放到心仪大小,再摆到适当位置,

2015-02-28 11:30:40 7037 5

原创 动态规划—最长子序列问题

1.   问题引出最长字段匹配问题归结如下:假设存在两个字符段:A={'a', 'b', 'c','b', 'd', 'a', 'b'};B= {'b', 'd','c', 'a', 'b', 'a'};则A、B两个字段的匹配即为A、B的公共子序列,如{‘a’}、{‘b’}、{‘b、‘d’}、{‘b’、’c’、’a’、’b’}均为该两个字符段的公共子序列,而最长公共子序列则为以

2014-05-10 10:51:25 1075

QT实现头像图片剪切框

使用QT实现的图片自定义大小剪切, 主要用户用户头像裁剪。

2015-10-20

动态规划最长子序列

动态规划最长子序列

2014-05-10

大作业MFC计算器编程,可视化,含详细实现文档

实现了加减乘除、开方、取余、连算等功能,含有详细实现文档,修复了所以bug。

2014-03-16

ssd8_ex5,使用webservice实现

使用webservice实现的客户端及服务器,通过接口远程调用服务器端方法。

2014-02-20

使用增广矩阵求解Ax=B

使用增广矩阵求解的Ax=B,矩阵长度为5x5,已在vc下编译通过。

2013-12-28

空空如也

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

TA关注的人

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