1 Star 0 Fork 4

张文建/online-chat-room-backend

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
readme.txt 2.06 KB
一键复制 编辑 原始数据 按行查看 历史
zwjphp 提交于 2024-09-02 20:07 . rabbitmq 处理聊天信息加入数据库
1、socket 加jwt token验证
// 分布式 微服务 负载均衡
2、加入redis 订阅/发布 解决websocket session 不能序列化存入 redis 问题
// 待解决问题
3、加入rabbitMq 队列 发送消息先加入 队列 在加入数据库 削峰填谷
4、rabbitMq
4.1、 exchange
fanout
Exchange中的fanout类型是我们一般使用的偏少的一种类型,采用的是广播的形式来进行消息转发处理,同时该模式下的不需要使用RountingKey,只要是与该Exchange绑定的所有的队列均可以收到发送的消息,该模式主要用于当某个事件发生是对相关业务的通知,这样只要想要知道该事件的所有业务只需要绑定到这个Exchange即可平等收到转发的消息
direct
Exchange默认的类型就是direct,该类型的Exchange消息分发机制非常简单,需要和routingKey配合使用,首先在配置阶段,direct类型的Exchange通过一个rountingKey和Queue进行绑定,绑定完成后,消息通过使用Exchange名称和rountingKey进行发送,消息到达RabbitMq服务器后,rountingKey需要和Queue绑定的rountingKey完全相同才会进行消息的路由,路由到对应的Queue,
topic
topic类型的Exchange必须要配置一个RountingKey,该RountingKey由字符组成,通过dots(也就是 . )来进行分割,RountingKey可以是任意字符来组成,但是上线不可以超过 255 bytes;Queue通过Binding Key来将Exchange与之绑定,Exchange下RountingKey与Binding Key相匹配的消息被发送到对应的绑定的Queue中,然后消息被当前Queue的消费者进行消费处理,在Binding Key中有两个非常常用并且特殊的字符需要注意:
*:与RountingKey进行匹配时,可以精确的代替一个字符
#:与RountingKey进行匹配时,可以代替0个或多个字符
定义一个交换机 chat durable=true 一个队列 chat.queue durable=true routingkey = chatkey
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Java
1
https://gitee.com/zhang_wenjian123/online-chat-room-backend.git
git@gitee.com:zhang_wenjian123/online-chat-room-backend.git
zhang_wenjian123
online-chat-room-backend
online-chat-room-backend
master

搜索帮助