通过Redis的Pub/Sub实现对服务器群的监控管理

需求:

为了准确监控每个服务器的内部状态,而且也不影响现有业务逻辑的情况,需要快速部署 一个简单的服务器集中监控系统。经过考虑,可以使用Redis的Pub/Sub功能来实现一个监控系统是非常好合适 的。

当然我们也可以通这个来做批量的管理。

Pub/Sub 从字面上理解就是发布(Publish)与 订阅(Subscribe),在Redis中,你可以设定对某一个key值进行消息发布及消息订阅,当一个key值上进行了 消息发布后,所有订阅它的客户端都会收到相应的消息。这一功能可以用作实时消息系统。

发布和订 阅机制

当一个客户端通过 PUBLISH 命令向订阅者发送信息的时候,我们称这个客户端为发布者 (publisher)。

而当一个客户端使用 SUBSCRIBE 或者 PSUBSCRIBE 命令接收信息的时候,我们称这个客户 端为订阅者(subscriber)。

为了解耦发布者(publisher)和订阅者(subscriber)之间的关系,Redis 使用 了 channel (频道)作为两者的中介 —— 发布者将信息直接发布给 channel ,而 channel 负责将信息发送 给适当的订阅者,发布者和订阅者之间没有相互关系,也不知道对方的存在

下面这个图适合批量管理 ,每个客户端的服务器都要有个redis-cli ,安装redis自然就有了,然后定义sub ,在管理端就可以通过pub 发布一些个指令,客户端收到后,可以执行,也可以做些相应别的操作。

下面这个适合监控,把自己的业务指标pub过去,服务端可以进行相应的处理, 可以是写到mysql里面,可 以是和页面进行交互。

其实说白了,用socket也是可以实现的,但是redis已经是较成熟的产品,内部实现采用epoll封装,有多 路复用特性,非阻塞IO,而且绝大部分请求是纯粹的内存操作。有这些个特性,咱们没必要还费劲给socket写 个并发异步的重构,逼近太麻烦了。

那咱们现在就搞吧~

这个是订阅者

时间: 2024-12-22 20:07:25

通过Redis的Pub/Sub实现对服务器群的监控管理的相关文章

Redis的Pub/Sub模式

Redis同样支持消息的发布/订阅(Pub/Sub)模式,这和中间件activemq有些类似.订阅者(Subscriber)可以订阅自己感兴趣的频道(Channel),发布者(Publisher)可以将消息发往指定的频道(Channel),正式通过这种方式,可以将消息的发送者和接收者解耦.另外,由于可以动态的Subscribe和Unsubscribe,也可以提高系统的灵活性和可扩展性. 关于如何搭建Redis环境,请参考其他文章.这里假设有一个可用的Redis环境(单节点和集群均可). 在red

使用 IBM Systems Director VMControl 对虚拟服务器进行多磁盘管理

开始之前 了解应从本文学到什么,以及如何充分理解本文. 关于本系列 IBM Systems Director VMControl 高级管理器简化了涵盖多种虚拟化技术和硬件平台的虚拟环境的管理.VMControl 是各个 IBM Systems Director 版本中包含的一个领先的多平台虚拟化管理解决方案.VMControl 支持 3 种类型的接口(GUI.CLI 和 REST API).本系列文章包含以下主题: 虚拟服务器多磁盘管理:本教程解决了最终用户在执行与虚拟服务器的多磁盘管理相关的操

阿里云如何查看云服务器实例的监控信息

查看云服务器实例的监控信息 描述 分页查询本用户的所有云服务器相关的监控信息. 只能查询到状态非 Deleted 或者非刚刚创建完成尚处于 Stopped 状态的云服务器的监控信息. 可返回的监控内容包括:云服务器的 CPU 使用率.云服务器分配到的内存数.云服务器接收到的数据流量.云服务器发送的数据流量.云服务器网络流量.云服务器平均带宽.有可能返回的监控内容中会缺少部分内部,这可能是由于系统没有获得到相应的信息,比如当时实例处于 Stopped 状态. 一次最大只容许返回 400 条监控数据

james邮件服务器 怎么打开全局管理

问题描述 james邮件服务器 怎么打开全局管理 apache-james除了使用telnet 域名 端口这种方式进入后台管理 还有别的方法吗 我们公司不准用telnet 也没装 但是安装了ssh 有没有人用过这个啊.SOS 解决方案 james邮件服务器James 邮件服务器 解决方案二: http://www.oschina.net/question/3270_12317

Android使用HttpClient实现文件上传到PHP服务器,并监控进度条

上传 服务器端PHP 代码如下 : <?php $target_path = "./tmp/";//接收文件目录 $target_path = $target_path.($_FILES['file']['name']); $target_path = iconv("UTF-8","gb2312", $target_path); if(move_uploaded_file($_FILES['file']['tmp_name'], $targ

数据-服务器日志查询监控功能

问题描述 服务器日志查询监控功能 最近在做一个项目,企业每天大概产生20G左右日志(txt格式,4台服务器分别存储),每次出问题都要远程上服务器通过windows search服务搜索文件内容查日志,维护很繁琐.想开发一个软件来方便维护人员查询日志,有想过将日志存在数据库里,如SQL Server,但是考虑到每天产生的日志量过大,维护更麻烦.所以,请问下,有没有什么方法保存日志,而且能通过软件或者服务来查询? 解决方案 具体要看你什么样的日志,文本文件肯定没有效率,而且你的日志肯定包含大量的冗余

Windows搭建ngrok服务器、Linux搭建ngrok服务器、支持用户管理

                           Windows搭建ngrok服务器.Linux搭建ngrok服务器.支持用户管理 阿里云双11领代金券啦 https://m.aliyun.com/act/activity2017h5?userCode=vc31fdqr&utm_source=vc31fdqr           微信公众号.支付宝支付等开发要求有公网(外网)服务器.每次调试时,上传代码到服务器很不方便.ngrok很好的解决了这一问题.网上的文章大多是讲实通过阿里怎么在Lin

视频流经转发服务器后,监控端出现画面花,不清楚问题,怎么解决?

问题描述 视频流经转发服务器后,监控端出现画面花,不清楚问题,怎么解决? 视频监控系统,采集的视频打包编码后,发送给服务器,服务器再转发给监控端,但是视频画面出现花.不清楚的问题,但是如果视频中人动作不大的话,画面比较正常,人的动作较大,画面就会变花,请问这是怎么回事?怎么解决呢? 解决方案 应该是视频编码的问题,压缩率太高,关键帧不足. 解决方案二: 对发送端发出的每个包进行编号吗,RTP里面有个seq.服务器也接收端主要保证2个东西一个是顺序,一个是不要丢包.一般按序和不丢包是不会出现这些问

服务器压力过大 我烧网扩容服务器群

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 近日来,据很多网友反映登录我烧网时总是感觉很慢,还会出现一些错误,用户的怨声连连.记者通过电话与我烧网的工作人员取得了联系. 根据我烧网CEO计拓介绍,随着访问量的日益增加,我烧网原先的服务器群总共有14台服务器,已经难以应付日常的负荷."我们计划已久的很多新功能正等待上线,必须要采取些行动了."计拓说,"4月初