.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了

原文地址:https://www.cnblogs.com/jianghaidong/p/14571139.html