自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 GO 语言操作 redis 数据库

redis数据库是一种高性能的Key-Value数据库 NoSQL数据库 缓存型数据库 key-value型数据库 错误的说法非关系型数据库1.redis介绍1.1NoSQL:一类新出现的数据库(not only sql)泛指缓存型的数据库不支持SQL语法存储结构跟传统关系型数据库中的那种关系表完全不同,nosql中存储的数据都是KV形式NoSQ...

2020-03-27 17:10:13 330 1

转载 运维大神如何使用 Golang 日志监控应用程序

你是如何使用 Golang 日志监控你的应用程序的呢?Golang 没有异常,只有错误。因此你的第一印象可能就是开发 Golang 日志策略并不是一件简单的事情。不>支持异常事实上并不是什么问题,异常在很多编程语言中已经失去了其异常性:它>们过于被滥用以至于它们的作用都被忽视了。-- Nils本文导航1、Golang 日志基础使用 Golang “log” 库...

2020-02-27 11:08:32 1145

原创 Go 微服务框架 micro

微服务是什么 微服务是一种架构风格,也是一些协同工作小而自治的服务 微服务的颗粒度比较小,一个大型软件应用由多个微服务组成 每种服务只做一件事,一种松耦合能够被独立开发和部署的无状态服务我们怎么做的微服务 使用 micro 微服务框架+代码生成器提高开发效率 持续集成:代码提交后,自动发布测试环境 使用分布式调用链追踪 ...

2020-01-02 11:06:10 189

原创 Kubernetes 之 Nginx 动静态 PV 持久存储 下篇

接上篇Kubernetes 中部署 NFS Provisioner 为 NFS 提供动态分配卷(上篇)一、nginx 使用 nfs 静态 PV1、静态 nfs-static-nginx-rc.yaml##清理资源kubectl delete -f nfs-static-nginx-rc.yaml -n test​cat >nfs-static-nginx-rc...

2019-12-26 14:46:09 259

原创 Unit Test In Go With Docker

本篇文章主要讲解如何在 Docker 中进行 Go 单元测试,依赖 Docker 和 Go Modules。为什么是 Docker在 Docker 之前我们往往需要在 Jenkins 服务器上配置不同的 Go 版本以及针对每个项目配置 GOPATH,项目之间的隔离性差,经常出现基础库版本冲突的问题。有了 Docker,我们可以在不同容器中运行单元测试,该测试不局限不同项目,甚至可以是同...

2019-12-16 17:25:38 244

原创 Kafka 集群 Golang 应用实例

这个实例做了些什么? 搭建了拥有 3 节点 kafka、 3 节点 zookeeper 的 docker 集群服务; 分别创建了 1 个消息发布者和 2 个相同消费组的消息订阅者的 docker 应用; 使用 ab 进行并发测试,验证该实例消息的订阅 / 发布功能; 通过这个实例,能够了解些什么? 使用 Docker Compose 构建 Kafka 集群 ...

2019-12-04 16:23:20 299

原创 如何在 Ubuntu 上交叉编译 ARM 架构的 CGO 程序

我们都知道在不涉及 CGO 的时候,Go 的交叉编译非常简单,只需要设置对应的 GOOS 和 GOARCH 即可,但当涉及到 CGO 时,问题就变得有点复杂了,因为你需要指定特定的 GCC。例如,想在 Ubuntu 上交叉编译一个带有 CGO 的动态库,目标 CPU 架构为 arm,我们该如何操作呢?示例代码# shared.gopackage mainimport "C"...

2019-11-26 10:37:59 2139

原创 Go http.Flusher 在实际项目中的应用

最近在使用 Docker Go SDK 做开发的时候,参考了官方的示例代码:package mainimport ( "io" "os" "github.com/docker/docker/api/types" "github.com/docker/docker/api/types/container" "github.com/docker/docker/client" "...

2019-11-22 12:25:34 648

原创 Kubernetes 中部署 NFS Provisioner 为 NFS 提供动态分配卷(上篇)

一、NFS Provisioner 简介NFS Provisioner 是一个自动配置卷程序,它使用现有的和已配置的 NFS 服务器来支持通过持久卷声明动态配置 Kubernetes 持久卷。持久卷被配置为:namespace−{pvcName}-${pvName}。二、External NFS 驱动的工作原理K8S 的外部 NFS 驱动,可以按照其工作方式(是作为 NFS ser...

2019-11-19 19:49:32 1465

原创 Prometheus+Consul服务自动发现监控

一、简介在上一篇Prometheus+Node_exporter+Grafana+Alertmanager 监控部署(上)里,已经有了 promethues 的一套监控环境。但是这里有个问题,就是在 prometheus.yml 里配置需要监听的服务时,是按服务名写死的,如果后面增加了节点或者组件信息,就得手动修改此配置,并重启 promethues;那么能否动态的监听微服务呢?Prome...

2019-11-11 17:57:26 1444

原创 Prometheus+Node_exporter+Grafana+Alertmanager 监控部署(上)

一、Prometheus 安装及配置1、下载及解压安装包cd /usr/local/src/export VER="2.13.1"wget https://github.com/prometheus/prometheus/releases/download/v${VER}/prometheus-${VER}.linux-amd64.tar.gzmkdir -p /data0/p...

2019-11-06 14:53:48 811

翻译 “古怪的 Python 内存泄漏”怎么破?

笔者曾经开发过的几个大型 Django 应用程序都在某个时候出现了内存泄漏。Python 进程缓慢地增加它们的内存消耗,直到崩溃。这一点也不好玩。即使自动重新启动进程之后,仍然会有一些宕机问题。Python 中的内存泄漏通常发生在无限增长的模块级变量中。这可能是一个具有无穷大 maxsize 的 lru_cache 变量,也可能是一个在错误范围内声明的简单列表。泄漏也不是只有发生在你自己写...

2019-10-11 10:44:40 1495

原创 cadvisor 与 Prometheus 集成

在之前的一篇文章容器监控之 cadvisor (一)已经介绍了如何通过 cadvisor 来收集容器的运行状态信息,那这篇文章将具体讲解如何与 Prometheus 集成并通过 Prometheus 查看收集的数据。主要内容:cadvisor 与 Prometheus 集成 在 Prometheus 中查看容器的 CPU,内存,网络流量等信息cadvisor 与 Prometheu...

2019-09-25 10:50:52 1190

原创 无监控不运维——Prometheus 快速入门

Prometheus 是由 SoundCloud 开发的开源监控报警系统和时序列数据库(TSDB),自 2012 年起,许多公司及组织已经采用 Prometheus,并且该项目有着非常活跃的开发者和用户社区,现在已经成为一个独立的开源项目,并且保持独立于任何公司,Prometheus 在 2016 加入 CNCF ( Cloud Native Computing Foundation ), 作为在...

2019-09-19 11:20:53 427

原创 IPFS 二维码添加的问题(内含上篇资料)

jenkins Pipline 庖丁解牛分享资料文档加视频链接:https://pan.baidu.com/s/19Xjm50AyKh9beP8bdS74tA提取码: q3u4前段时间在知乎上看到「飞向未来」大大早期文章 什么是IPFS?(三) 中有这样一段描述:但是真的是这样吗?难道我们真的没有办法在一个网站中插入对应二维码?结论当然是可以,因为我们有 IPNS。...

2019-09-16 17:04:25 153

原创 jenkins Pipline 庖丁解牛

9月12日晚21:00 为大家带来干货分享结合实际工作实战案例为大家带来 Jenkins Pipline 必知必会的一些知识。主要内容如下:Pipline 语法讲解 Pipline 项目实战-Maven JAVA 项目构建 Pipline 项目实战-NodeJS 项目构建 分享一个多语言构建的 Pipeline 小栗子1.Pipline 的组成Jenkins Pipeline...

2019-09-11 10:37:42 174

转载 如何在容器中运行 Jenkins pipeline 任务

持续集成中的 pipeline 技术和 docker 都是当前正在发展的主流方向,当然把它们结合起来在 CI/CD 过程中发挥出更强大的威力也是大家共同的目标。本文将介绍如何在 Jenkins pipeline 中集成使用 docker,好在当前的 Jenkins 已经默认通过插件实现了与 docker 的集成,所以这将是一段轻松愉快的旅程。添加 linux 主机作为 build agent...

2019-09-09 11:02:22 327

转载 用什么监控我们的容器?

本文介绍常见监控工具 zabbix 和 prometheus 的主要特点以及应用于容器监控时各自的优缺点,希望能够帮助同学们选择适合项目的监控工具。说明:本文介绍的两个工具 zabbix 和 prometheus 都是开源、免费的。Zabbix 的主要特点作为老牌监控工具,zabbix 历史悠久,功能全面且强大。下面罗列一些它的主要特点:数据收集方式灵活全面支持可用性和性能检查 支...

2019-09-05 10:58:53 87

原创 kubernetes 线下环境容器化落地实践

Jenkins 和 k8s 实战资料分享链接: https://pan.baidu.com/s/1pk3t-GYirNNW_1267uXaCA提取码: ndv6代码地址:https://github.com/GeekSRE/jenkins-demokubernetes 线下环境容器化落地实践内容:容器技术介绍Kubernetes 生态介绍Kubernetes ...

2019-08-27 17:19:01 287 1

转载 借助 webpack 对项目进行分析优化

进入公司之后,接手的便是前人留下来的一个大项目。庆幸的是整个项目拥有完善的产品功能文档,但是由于项目过于庞大,老旧。包含了打包过慢,冗余文件过多等诸多问题。想要快速的解决这些问题,想要完全把功能重构一遍的话,成本太高了。一个一个文件来过,时间成本也比较大。因此在此篇文章中,我们介绍一下我是如何配合webpack一步步进行分析,将项目进行优化的。同时我针对思路封装了一个webpack-unuse...

2019-08-26 16:00:43 134

原创 Devops 会杀死90%的运维吗?

2019年前半年的各种运维事故在朋友圈刷了个遍,大家对运维这个行业的未来也是产生了各种的议论,最终的结论就是传统运维终将被淘汰。小编觉得这真的是句废话。我们纵观运维这个职业的发展,从手工运维(人肉运维)、自动化运维到智能运维,这符合事物的发展规律。而产业在横向发展,从自动化运维发展到开发运维( DevOps ),这同样符合事物的发展规律。就跟人类社会的发展一样从农耕时代、手工作坊时代再...

2019-08-23 10:17:25 671

原创 如何在 Go 中优雅关闭子进程

有时我们会遇到这样的需求,在一个主进程中启动另外一个进程,而在 Go 中可以使用 exec 包的 Cmd 来轻松实现这类需求,例如代码:package mainimport ( "fmt" "log" "os" "os/exec" "os/signal")func main() { cmd := exec.Cmd{ P...

2019-06-19 18:01:20 2372

原创 如何在 Go 中使用 TLS 连接 MongoDB

通常我们的数据库都配置为内网访问,但由于业务部署架构的不同,有时也需要通过公网访问 MongoDB 数据库,此时为了防止被端口扫描和脱库,MongoDB 需要配置为 TLS 访问,那在 Go 中应该如何实现呢?依赖配置了 TLS 公网访问的 MongoDB 实例Go 的 MongoDB 驱动 globalsign/mgoGo 实现代码:package modelimport...

2019-06-17 15:38:34 555

原创 如何在 Go 中使用 CGroup 实现进程内存控制

背景从 Linux 内核 2.6.25 开始,CGroup 支持对进程内存的隔离和限制,这也是 Docker 等容器技术的底层支撑。使用 CGroup 有如下好处:在共享的机器上,进程相互隔离,互不影响,对其它进程是种保护。对于存在内存泄漏的进程,可以设置内存限制,通过系统 OOM 触发的 Kill 信号量来实现重启。CGroup 快速入门默认挂载分组Linux 系统默认支持...

2019-06-11 17:56:56 1403

原创 Prometheus 的优雅关闭姿势

最近在看 Prometheus 的源代码,发现它自带了优雅的关闭方式,这和我以前博文讲到的热更新十分相似。如何优雅关闭 使用 kill 命令 因为 Prometheus 是一个 Unix 二进制程序,我们可以向 Prometheus 进程发送 SIGTERM关闭信号。 使用pgrep-f prometheus找到运行的 Prometheus 进程号 使用kill...

2019-06-04 11:04:00 12832

原创 程序员租房妙招,爬一个好房

背景春节过后回京,本想好好休息两天结果家里迎来了不速之客——老鼠。最后通过一系列的操作终于成功捕获一家 8 口,这个过程笔者就不做多描述了。由于此次捕鼠事件留下阴影决定搬离。和媳妇开始寻找合适的房源,这还只是一个开始;之后看好房子(房子还在配置中)跟管家约定好释放当日签约;和媳妇两台手机两台电脑抢房子结果还是失之交臂。就算是双十一也不过如此吧!之后继续找房发现基于小区搜索房源结果很不...

2019-04-11 16:16:35 401

转载 为容器化的 Go 程序搭建 CI

本文介绍如何使用 Jenkins 的声明式 pipeline 为一个简单的 Golang web 应用搭建 CI 环境。如果你还不太了解 Jenkins 及其声明式 pipeline,请先参考笔者的 Jenkins 系列文章,或者直接到 Jenkins 官网进行学习。说明:本文的演示环境为 ubuntu 16.04。准备 Jenkins 环境鉴于篇幅原因,本文不再介绍 Jenkins 环境...

2019-01-24 16:17:11 352

转载 滚动 docker 中的 nginx 日志

Nginx 自己没有处理日志的滚动问题,它把这个球踢给了使用者。一般情况下,你可以使用 logrotate 工具来完成这个任务,或者如果你愿意,你可以写各式各样的脚本完成同样的任务。本文笔者介绍如何滚动运行在 docker 中的 nginx 日志文件。 思路Nginx 官方其实给出了如何滚动日志的说明: Rotating Log-filesIn order to rotate...

2019-01-18 16:36:06 970 1

原创 Docker 快速验证 HTML 导出 PDF 高效方案

需求分析项目中用到了 Echarts,想要把图文混排,当然包括 echarts 生成的 Canvas 图也导出 PDF。设计和实现时,分析了 POI、iText、freemaker、world 的 xml 模版、Jquery-printArea.js、JQuery Plugin-TableExport、flying saucer 等等技术组合,不尽人意。甚至因为echarts不支持后端调用...

2019-01-16 15:22:44 518

原创 容器网络通,但业务网络不通,怎么办?

本着为大家分享有用的技能和知识的原则,专门出了一个解决 bug 的主题分享。具体的 bug 描述可以看下面问题一描述: 某线上业务有 A,B 两个集群,集群之间存在横向访问, 当 A 集群中的某个容器(A.a)重建(发布更新)之后发现,(A.a)可以 ping 通 B 集群中的(B.b)容器,而通过 curl 和 telnet 业务端口的时候是连接被拒绝;第一直觉是业务自身的问题,就在 B...

2019-01-09 16:15:50 690

原创 Docker 快速验证:不转发让 Tomcat 绑定 80 端口

前言之前写过 tomcat 单机多实例,最后解决80端口访问用的是 iptables 转发;第三轮投产前,客户做了迁移和扩容。重启后,不但转发策略失效,重新执行转发命令后仍旧不能访问80。后来我还发现是彻底关闭了防火墙。后来经研究,通过打开防火墙,配置自定义防火墙函数保存 iptables 策略,解决了iptables转发重启失效的问题;方案也提交了客户。方案稍后整理发布。第三轮投产时...

2019-01-03 13:01:05 752

原创 Docker 快速验证保存 iptables 的转发策略

故事和事故这里的故事都是来源于事故。当然处理好了是传说中的故事,处理不好就是惨痛的事故。前言接上回(Docker 快速验证 tomcat 单机多实例方案),解决非 root 账号不能绑定80端口,采用的是iptables转发的解决办法.这只能是个临时方案:root@SuSE11:/etc/sysconfig$ iptables -t nat -A PREROUTING -p tc...

2018-12-29 10:39:25 668

原创 Docker快速搭建zookeeper3.4集群

​本文由作者:蛮大人  授权发布链接:https://opsdev.fun/2018/06/19/O1-8-40-Docker%E5%BF%AB%E9%80%9F%E6%90%AD%E5%BB%BAzookeeper%E9%9B%86%E7%BE%A4/著作权归作者所有。转载请联系作者获得授权。项目引入了 zookeeper,甲方一时提供不了开发用的 zookeeper 服务器。只能我们...

2018-12-27 10:17:22 673

原创 Docker 搭建 Django+Mariadb 环境

​本文由作者:蛮大人  授权发布链接:https://opsdev.fun/2017/07/17/O1-8-02-Docker%E6%90%AD%E5%BB%BADjango-Mariadb%E7%8E%AF%E5%A2%83/著作权归作者所有。转载请联系作者获得授权。阅读建议先通读全文后,再自行决定需要实践的步骤。后文总是有更简洁更快更好的实践。不过,新人建议从头到尾实践,也不...

2018-12-25 15:59:37 825 1

原创 Docker 验证 Centos7.2 离线安装 Docker 环境

本文由作者:蛮大人  授权发布链接:https://opsdev.fun/2018/05/09/O2-0-Docker%E9%AA%8C%E8%AF%81Centos7-2%E7%A6%BB%E7%BA%BF%E5%AE%89%E8%A3%85Docker%E7%8E%AF%E5%A2%83/著作权归作者所有。转载请联系作者获得授权。序题记:搞定了就是故事,搞不定就是事故。条件有...

2018-12-19 11:10:59 1803

原创 Docker 快速搭建 mock-server

项目目前选型是前后端分离开发,其中前端使用 AntDesign pro。根据和一线工程师沟通,引入mock技术搭建 json-server,可以快速模拟调用后端接口,实现增删查改以及复杂的业务逻辑。不用等后端开发完毕,配合 rap2 接口管理系统,前后端统一约束,而且前端不用手工造数:可以从配置好正则的接口生成(来自rap2接口服务器的支持)。原计划引入Rap2后,将其作为 Json-se...

2018-12-17 17:45:38 1361

原创 使用 Django WebSocket Redis 搭建在线即时通讯工具

话不多说先上效果图演示 项目:http://112.74.164.107:9990/1、安装组建redis: yum install redis/apt install redis2、创建虚拟化环境并进入python3/python -m venv venv source venv\bin\active3、安装第三方库pip install -r requir...

2018-12-10 11:59:31 1118

原创 Python编程(二):Python进程、线程的那点事儿

本文由作者:auxten  授权发布链接:http://zhuanlan.zhihu.com/auxten/20167077著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。多进程,多线程编程系统程序员、运维开发程序员在面试的时候经常会被问及一个常见问题:进程是什么,线程是什么,进程和线程有什么区别?不得不承认,这么多年了。这个问题依旧是个很难以招架...

2018-12-07 11:06:31 194

转载 一行 Python 代码能干嘛?

Python 有很多优雅有趣的代码写法,同时还很简短,以至于当我刚开始接触这个编程语言的时候,就爱不释手。而前几天的编程语言榜单中 Python 也超越了 Java 成为了第一,挺替 Python 开心的。Python到底有多有趣呢?一行代码告诉你!1)画爱心print(''.join([''.join([('sergiojune'[(x-y)%10]if((x*0.05)**2+(y...

2018-11-06 12:07:01 302

转载 无监控不运维——使用 Python 写一个小小的项目监控

在公司里做的一个接口系统,主要是对接第三方的系统接口,所以,这个系统里会和很多其他公司的项目交互。随之而来一个很蛋疼的问题,这么多公司的接口,不同公司接口的稳定性差别很大,访问量大的时候,有的不怎么行的接口就各种出错了。这个接口系统刚刚开发不久,整个系统中,处于比较边缘的位置,不像其他项目,有日志库,还有短信告警,一旦出问题,很多情况下都是用户反馈回来,所以,我的想法是,拿起 Python,为...

2018-11-01 17:30:36 156

空空如也

空空如也

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

TA关注的人

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