首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C# BigData队列

C# BigData队列
EN

Stack Overflow用户
提问于 2021-03-09 23:21:49
回答 1查看 36关注 0票数 1

我们有一个REST服务器,它运行在与主应用服务器不同的机器上。现在,我们希望将数据从REST服务器转移到主应用服务器,还希望将一些消息从主服务器发送到REST服务器。因此,我们对MQRabbit进行了评估,因为它似乎非常适合消息部分。但是我们现在想知道MQRabbit是否可以在它的队列中处理大约1~2 GB的数据。

我一直在关注RabbitMQ tutorials

现在我们有了以下代码:

代码语言:javascript
复制
public class QueueController<T> : IDisposable
{
    private IModel channel;
    private IConnection connection;
    private ConnectionFactory factory = new ConnectionFactory() { HostName = "localhost" };

    public string Topic { get; private set; }

    public string LastMessage { get; private set; }

    public QueueController() 
    {
        connection = factory.CreateConnection();
        channel = connection.CreateModel();
        
        Topic = nameof(T);
    }

    public void Publish(List<T> data)
    {
        var body = Encoding.UTF8.GetBytes(LastMessage = data.SerializeJson());

        var properties = channel.CreateBasicProperties();
        properties.Persistent = true;

        channel.BasicPublish(exchange: "",
                             routingKey: $"{Topic}_queue",
                             basicProperties: properties,
                             body: body);
    }

    public void Dispose()
    {
        channel.Dispose();
        connection.Dispose();
    }
}

Als MQRabbit的教程展示了一个生产者和许多消费者,但我们的情况正好相反。多个生产者和一个消费者。对于这些情况,有没有一些最佳实践?

EN

回答 1

Stack Overflow用户

发布于 2021-06-01 14:34:48

让我们首先考虑消息队列的作用:发送消息--向另一个计算机系统传递信息的一小部分数据。这里的关键字很小。消息通常包含以下三种内容之一: 1.命令(去做点什么),2.事件(发生了什么),3.请求(给我一些数据),以及4.响应(这是你的数据)。关于这些的全面讨论超出了范围,但可以说,每一个通常都可以由小于100kB的小消息组成。

实际上,作为RabbitMQ基础的AMQP协议是一个相当健谈的协议。它要求大的消息是divided into multiple segments of no more than 131kB的。这会给大型文件传输增加大量开销,特别是与其他文件传输机制(例如FTP)相比时。其次,消息必须由代理完全处理,然后才能在队列中可用,在此过程中,它会占用代理上的宝贵资源。首先,由于其体系结构的原因,整个消息必须适合代理上的RAM。此解决方案可能适用于一个客户端和一个代理,但当尝试向外扩展时,它将很快崩溃。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66549723

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档