1. HAProxyConsole简介

    之前在Golang中如何让html/template不转义html标签搭建高可用负载均衡组件及缓存DNS两篇文章中都提到为了方便使用HAProxy,我实现了一个简单的HAProxy负载均衡任务管理系统。前些天我把代码放在Github上,算是开源吧。

    同事使用该管理系统,遇到问题时,由于不清楚其实现,也就无法分析问题出在哪,同时也会有些恐慌,生怕搞挂了HAProxy,毕竟上面承载了一些关键的业务,所以我绘制一张图用于说明HAProxyConsole的应用场景和工作原理。

    HAProxyConsole-arch

    图中蓝色标识的部分都属于HAProxyConsole。

    • 用户通过Web页面增/删/改/查负载均衡任务,但这4个操作直接修改的都仅是数据库(DB.json或MySQL数据库)。另外,HAProxyConsole的Web页面中还嵌入了主从HAProxy自带的数据统计页面。
    • 只有当用户点击按钮“应用到主HAProxy”或“应用到从HAProxy”后,HAProxyConsole才会根据DB.json或MySQL中存储的数据和配置文件haproxy_conf_comm.json生成最新的HAProxy配置文件,然后拷贝一份为主HAProxy的配置文件或远程拷贝一份为从HAProxy的配置文件,最后重启HAProxy进程(/path/to/haproxy/sbin/haproxy -f /path/to/haproxy/conf/haproxy.conf -st …
  2. 仓库作业机器监控系统设计与实现

    近期在参与一个仓库作业机器监控项目。该项目的需求背景是:公司的电商业务在全国各地有多处或大或小的仓库,仓库的作业人员(没有IT技术背景)经常反馈/投诉作业机器断网、断电、连不了服务等问题。实际情况经常与反馈的不一致,但运维侧并没有数据可以证明,所以才有了这个项目的需求。

    该项目第一期的目标仅是收集、展示作业机器某些监控指标数据,以便在快速定位解决问题,或至少有数据可查

    为了避免大量监控数据上报影响到生产系统的网络服务,系统采用如下结构:

    inner_warehouse_monitor

    1. 实现一个agent用于在仓库作业PC或作业PDA上获取机器的监控数据;
    2. 在仓库本地服务器上实现一个数据收集处理服务,提供API给agent上传监控数据;数据收集处理服务会将接收到的数据持久化到数据库,提供给仓库本地服务器上的webApp进行数据展示等;
    3. 中心服务器可以调用各个仓库本地服务器上的webApp提供的数据查询接口(数据用于定位、发现问题);定期按需对各个仓库本地服务器上的数据进行归档。

    这样,主要的工作都集中在作业机器上的agent数据收集处理服务、webApp。这其中最关键的又是数据收集处理服务。考虑到需要多地部署运维仓库本地服务器,而且某些大仓库作业机器的数目目前已多达800-1000,我们做了如下技术选型:

    1. Golang实现agent、数据收集处理服务、webApp;
    2. 以SQLite作为数据库来存储agent上报的所有数据;
    3. NSQ作为异步消息队列中间件;

    选用Golang的理由是:可以静态编译,部署简单,只需将编译好的可执行二进制程序丢到服务器上跑起来就可以了 …

  3. 时间的心

    近期工作生活的一点心得:

    珍惜自己的时间

    乐于助人是好事,但,是需要耗费时间的,那么在助人之前就得确认帮助别人所做的事情有多大意义,是否对得起所耗费的时间精力。每个人的时间都很珍贵,应尽可能用来做有价值的事情,不要把自己的时间看得过于廉价。

    所以之后有人请我帮忙时,我会先问两个问题:

    1. 遇到什么问题?

    2. 为什么要解决这个问题?

    通过这两个问题来判断是否值得帮忙。

    平常心

    一心追求技术,对技术好坏有自己的“正义感”,是好事。但,不能苛求别人,更不能不停评价吐槽,否则于己于人都无益处。对别人、别人的技术水平宽容一点,把苛求留给自己,不断提高自己,努力把事情做得更好,其他的则应保持平常心。

    至于本文的题目,则纯属扯淡,故作矫情,从两个部分的标题中取出最后一词组合而成。

    标签: 总结 自省
  4. 回顾12,展望13(技术篇)

    终归是个搞技术的,所以怎么也得搞个总结与展望的特别篇,讲述过去一年的技术学习与成果,规划接下来一年技术学习的计划。

    2012年,阅读较少,写的代码较多,经过几个小项目以及实习,终于觉得自己有点攻城师的样子了,甚感欣慰,哈哈。

    罗列一下个人的小项目,虽然不复杂,代码量不多,代码也写得不漂亮,但自认为有那么点用。

    1. 百度音乐下载器:代码项目主页 (墙外)

    2. 简易FTP搜索引擎:代码项目主页 (墙外)应用(注:这个小项目断断续续做了一年,经历了几个版本,以及几次更新,目前看起来还不错)

    3. 基于Web的机器人远程控制:代码项目主页 (墙外)(注:这个项目就是我那尽是水的毕业设计啦,哈哈)

    4. 在线代码高亮,分享以及运行:代码(注:这个项目其实很不完整的啦,代码编译与执行部分根本没做防护措施,根本没法实际使用)

    5. Loven的个人静态站点:代码(注:其实绝大部分的代码都是loven自己写的啦,我主要写了实现总体动态效果的javascript程序,而且还是仿照的 …

    标签: 总结 技术
  5. 回顾2012,展望2013

    过去的一年里发生了很多事情,很大一部分原来就已在2011年终-回顾与展望一文中提及---实习、找工作、毕业,除此之外还有:我和女朋友定亲了,总算朝着婚姻近了一步,哈哈。

    实习

    关于实习有太多的话想说。7个月的时间里浓缩了太多的欢乐,太欢乐了。原本以为我的读书生涯就要这么平淡无奇地结束了,没想到在这个结尾处竟然给了我个大惊喜,所谓惊喜并不是这份实习有多牛逼,而是遇到了一群欢乐的人,一群“重口味”的人,一群彪悍的人,而其中绝大部分是女人,噢,女生更恰当些。

    在G1C1,我快乐地写代码,上班是种享受,我想以后很可能不会再有这样的享受了。在G1C1,我逐步地发展成为一个吃货,所以毫无疑问地胖了,原本我以为自己会一直瘦下去。另外,我也黑了,因为经过了无数次地“被黑”,但她们说我应该高兴才对,她们“黑”我是因为“爱”我。关于“黑”这件事情,刚入职的时候,我是很同情wenbin的,因为见他被“黑 …

    标签: 总结 文字
  6. 2011年终-回顾与展望

    昨晚实验室聚餐,和师兄们喝醉了,明年的这个时候,我也就和他们一样将要毕业。时间,总是往前看觉得很漫长,可回过头去看看,一年也就是瞬间的事情。

    2011,我从研一走向研二,2012,我将从研二走向研三,继而毕业,工作。

    回顾过去一年,于我自己而言,过得很平淡,也许是大学以来最平淡的一年,只能说也许,因为对于2011,我记不得太多的事情。

    这一年里,我,一个技术男,比以前更宅,话也相对少了很多,直接表现为QQ空间或者校内上的文字写得很少。很少和别人谈论自己,因为我觉得纠结于那个“小我”是件很“小青年”的事情。人与人之间不可避免的隔膜导致了个人的事情不管多大在别人眼里都是微不足道的,在别人的心里掀不起半点波澜,说过了也就忘了。所以那些关于自己的,还是放在心里比较好,毋须说些没意义的。

    这一年里,我想得挺多,但真正做了或者说做好的却很少。这是件严重的事情。特别在技术上,东看西看,东学西学,眼界确实开阔很多,也养成了较为良好的技术趣味。但从技术能力上来说,真不好说 …

    标签: 总结

Page 3 / 3