这是openfire消息接收、处理流程图下载,Apache MINA 是一个网络应用框架,有助于用户非常方便地开发高性能、高伸缩性的网络应用。它通过Java NIO提供了一个抽象的、事件驱动的、异步的位于各种传输协议(如TCP/IP和UDP/IP)之上的API,Apache MINA 通常可被称之为。
openfire消息接收、处理流程图首先boot()调用of_01.launch()向core中注册了一个OpenFlow_01_Task的类的组件,并且把这个组件明明为"of_01"。
openfire消息接收、处理流程图在这个类中有一个run方法会轮询所有socket,包括用来监听连接请求的listener和维持与OVS连接的socket,每一个和OpenFlow交换机的连接都会生成一个Connection类的实例,当收到OpenFlow消息之后,会调用Connection类中定义的read()方法来检查这个OpenFlow消息的头部是不是符合规范,包头部中的length是不是和包本身的长度相符,是何种类型的OpenFlow消息等,最终交给相应的handle函数来进行处理。
在read()方法中,会根据解析出的OpenFlow类型调用unpackers函数,实际上是调用了libopenflow_01.py中定义的每种OpenFlow消息的类中的unpack方法,生成一个赋过值的该类的实例。
值得注意的是可能会出现几个OpenFlow消息在一个TCP包中的情况,这里采用顺序解析的方式,每解析完一个OpenFlow消息,就会得到一个新的offset,从而解析下一个OpenFlow消息。
1. 由于每个用户都有1到多个好友,服务器的处理量被放大。
2. 分布式处理的复杂度,你的好友可能同时分布在n个服务器上,而且同时上线的好友没有规律。
3. 请求量不均衡,可能瞬时非常大。比如你服务器刚重启所有的客户几乎同时自动重连过来。比如Twitter宕机都是在一些热点事件时,大家活跃度突然同时增大。所以系统必须按峰值的处理量设计。
4. 缓存cache设计困难。每个用户的在线好友都不同,而且随时在变。
5. 隐身同黑名单的业务逻辑很难高效处理。