zoukankan      html  css  js  c++  java
  • .Net Core 接入 RocketMQ

    参考博客 https://blog.csdn.net/u011511086/article/details/108406225

    推荐使用NewLife.RocketMQ,创作团队牛逼,更新快,使用方便,已支持.net 5,性能和稳定性待观察

    0、由于自家的Rocket服务器磁盘空间不足,导致一直写入失败,提示错误不够明显,最终浪费2个小时,最终总结建议适当怀疑别人

    1、Nuget安装NewLife.RocketMQ

    2、写入消息队列

                try
                {
                    //获取配置
                    var rocket = ConfigHelper.getRocket;
                    Producer producer = new Producer
                    {
                        Topic = rocket.RocketTopic,
                        NameServerAddress = rocket.RocketAddress,
                        Group = rocket.RocketGroup
                    };
                    //启动连接
                    producer.Start();
                    //发布消息
                    producer.Publish(JsonConvert.SerializeObject(wxMessage));
    
                    Console.WriteLine(JsonConvert.SerializeObject(wxMessage));
                    //释放连接
                    producer.Dispose();
                }
                catch (Exception ex)
                {
                    Console.WriteLine("写入消息队列出错:"+ex.ToString());
                }

    3、个人推荐先把数据写入数据库,再通过自动任务写入消息队列,充分保证系统的健壮性(由于本系统只负责写入消息,才有此推荐

    4、有第三步引起的问题,如果既是生产者也是消费者,怎样保证系统的稳定运行?

    5、思考2分钟,感觉可以这样做:①大部分的问题在生产者,可以考虑对写入消息队列做一个补偿机制,尝试多次写入,如果多次写入还是失败,则存入指定数据表,后续通过另一个任务来继续写入,或者待排查问题后手动执行写入    ②消费者也会存在问题   比如重复消费的问题(了解了下kafka的pull,直呼牛逼)

    6、是时候学习下kafka了

  • 相关阅读:
    Docker 文档编译
    Docker CentOS 安装方法
    Docker CentOS 安装要求
    Docsify 的文档页面标题在那里设置
    Docsify 的 GitHub 链接在那里设置的
    GitHub 中如何启用 GitHub Pages 中的子域名
    Spring API 的 CORS 测试 提示错误 Reason: header ‘authorization’ is not allowed
    Spring API 的 CORS 测试
    CentOS 7 安装 JDK 11
    Postman API 获得文件如何保存
  • 原文地址:https://www.cnblogs.com/jianghaidong/p/14571139.html
Copyright © 2011-2022 走看看