最近在实现一个 发布订阅系统 主要功能就是订阅客户端 发送订阅请求 当服务请接收到消息后 可以推送给订阅客户端 但是要保证推送消息的顺序和 服务器接收到的顺序一致 现在想用多线程实现
主要问题在于:
1.服务器epoll wait返回后 由线程去解析消息 线程的执行顺序不确定 可能先到达的消息 后被处理完 导致消息队列中消息的顺序错误
2.在推送消息的时候 有这么用多线程保证发送的顺序呢
目前可以解决 接收消息顺序的问题 就是在接收到消息的时候编排递增的序号 队列可以升序排序
但是序号一定是要每次递增1的 不然如果有条消息漏了 就没有办法发现
不知道有没有更好的设计方案 或者解决方法