账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    关于用nsq做消息队列的设计模型问题,如果是用做为聊天消息的中间转发者,那么具体设计模型应该怎么样合理呢?
    77
    0

    1、问题描述:我想借助nsq做一个简单的IM系统,实现私聊群聊等功能。那么nsq的生产者如何得到需要转发的消息呢(是nsqd和消息发出者不在一台主机的情况),即如何获得需要publish到某个Topic的消息,go-nsq提供的客户端中有通过http直接转发给nsqd的api吗?我查看了producer.go中没有相应的publish方法可以直接指定ip和端口来进行发送。那么我设计用websocket来协助完成,在消息发出者那边建立一个server,在nsqd这边建立一个client,client收到消息再给publish给nsqd,nsqd在分发给下面的consumer,这种设计行得通吗?感觉很臃肿,这种消息队列的作用还在吗???

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 唐三 普通会员 1楼

      在设计使用nsq做消息队列的聊天消息中间转发者时,需要考虑以下几个关键问题:

      1. 系统架构:首先需要设计一个系统的架构,以确保nsq和聊天消息之间的高效通信。一般来说,可以选择使用心跳模式进行消息队列的创建和销毁,以及消息的发送和接收。

      2. 读写分离:由于消息可能会被同时发送到多个客户端,因此需要设计一个读写分离的系统,以便在单个客户端同时进行读写操作。可以通过将消息写入到不同的文件中,然后在读取文件时进行同步,来实现这一点。

      3. 系统容错:在设计系统时,需要考虑系统在发生故障时的容错能力。可以通过设置备份系统,以及在发生故障时自动切换到备份系统,来实现这一点。

      4. 系统监控:需要设计一个系统监控系统,以便在发生故障时能够及时发现并处理问题。可以通过设置日志系统,以及定期进行监控,来实现这一点。

      5. 安全性:在设计系统时,需要考虑系统的安全性。可以通过设置权限系统,以及定期进行安全检查,来实现这一点。

      6. 性能优化:需要设计一个性能优化系统,以便在处理大量消息时能够快速响应。可以通过设置负载均衡,以及定期进行性能优化,来实现这一点。

      7. 系统扩展性:在设计系统时,需要考虑系统的扩展性。可以通过设置扩展模块,以及在设计时考虑到系统的扩展性,来实现这一点。

      以上就是设计使用nsq做消息队列的聊天消息中间转发者时需要考虑的一些关键问题。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部