写在前面

我们在进行分布式系统开发时, 为了提升性能, 系统之间松耦合对接, 我们需要在一些业务场景中使用MQ. 在使用MQ时不仅需要考虑MQ API的易用性, 可靠性, 也需要考虑MQ本身是否提供简单,快捷的可视化管理监控界面. 基于这几方面的考虑, 和具体的业务场景, Rabbitmq这个消息中间件进入了我们的选型范围. 本文主要结合Rabbitmq官方文档,和互联网上其他Rabbitmq使用者的经验(涉及到引用地方会标明详细出处),记录学习Rabbitmq的过程.

Read More

概述

监控预警平台, eagle + eye (鹰眼)的合体词, 寓意可以快速发现问题, 并及时作出响应,Eagleye整个分为:

  • eagleye-java-client: 针对java程序进行日志收集
  • eagleye-alerter: 根据控制台设置的预警规则, 对匹配日志进行实时预警.
  • eagleye-admin: eagleye管理界面,可以看到各个app的接入情况,设置预警规则,进行日志检索等.
  • eagleye-collector: eagleye日志收集器, 该收集器主要是从kafka中收集日志病存储到Elasticsearch中, 也可以用logstash替代.
  • eagleye-task: eagleye的定时监听组建, 如果下游其他系统需要某个app日志,可以直接通过该组建发送.

Read More

概述

在介绍LOOM之前, 说一下我对一个互联网公司多语言开发环境的感受. 现在互联网高速发展的时代,产品快速迭代会帮助我们快速产出产品原型,快速获取用户反馈,快速抢占市场. 我们需要使用适合的语言去做一些特定领域的事情. 在小型开发团队中,大概10人左右的开放团队中, 开发语言的选型不用过多的考虑管理成本,只要对产品的快速迭代有帮助的都可以使用.随着团队逐渐壮大, 我们需要更多的考虑不同开发团队之间的沟通成本, 招聘新人的培训成本, 由人员更替产生的交接成本等. 这个时候多语言开发环境带来的弊端逐渐显现出来, 我们需要在这中间找到一个平衡点.

Read More

概述

常规项目会有很多配置文件,比如数据库链接信息, 缓存信息等. 我们通常的做法是通过配置文件进行管理可以达到只需要修改一个地方,整个项目都可以生效的目的.目前我们的开发项目繁多, 程序为了保持高可用,会进行集群部署. 这样我们要对某一个或者某几个项目进行配置文件变更时,需要逐个进行修改.这样大量的人为操作可能会增加程序升级或发布的风险.与此同时修改配置文件之后会涉及到应用的重启.为了减小发布风险,我们需要一个地方对各个系统配置进行统一的管理,这时统一配置管理系统诞生的背景,我们暂且取名为 “IMAGO”没有特殊的含义,只是一个代号.

Read More