Cat源码分析(二):Server端

本文详细分析了Cat服务器端的初始化过程,涉及CatHomeModule、TcpSocketReceiver和MessageConsumer的职责。TcpSocketReceiver接收并解码客户端消息,MessageConsumer负责消费与分发。RealTimeConsumer借助PeriodManager实现周期性消费,每个周期对应一小时。消息消费通过启动PeriodTask线程执行analyze,对MessageTree进行处理。消息分发则将消息放入所有分析器的队列中进行多维度分析。后续内容将深入探讨分析器的实现。
摘要由CSDN通过智能技术生成

初始化

服务端消费客户端发来的消息进行分析和展示,所以这个的初始化指的是CatHomeModule的初始化

在这里插入图片描述

CatHomeModule依赖TcpSocketReceiver和MessageConsumer,前者用来接收客户端发送的消息,后者用来消费消息。
TcpSocketReceiver通过Messagecodec对MessageQueue中的MessageTree进行解码,还原成为MessageTree,然后通过MessageHandler调用Consumer对消息进行消费。(这个消费的过程其实是一个消息分发的过程。消息有不同的消息分析器)
消费的过程是一个周期性的过程,对应上图右边部分。一个Period代表一个周期,每个周期对应一个持续时间(duration),默认为一小时。
RealTimeConsumer是MessageConsumer的实现类,他的作用是进行实时的消费,如何实现周期性消费呢?他需要依赖PeriodManager,进行周期管理。所以在初始化MessageConsumer的过程中会初始化PeriodManager。并且开启periodmanager的守护线程,进行周期开始和结束的控制。

在这里插入图片描述

通过m_strategy.next(now)方法进行时间对比,返回大于零或小于零的值,来决定是开始新的周期还是结束旧的周期。这

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值