标签: rabbitmq

Akka的语言和产品替代方案是什么?

现在我正在看Play Framework并且喜欢它.在Play中提供的功能广告之一是Akka.

为了更好地了解Akka以及如何正确使用它,您能告诉我其他语言或产品有哪些替代品?

RabbitMQ与它相比如何?有很多重叠吗?将它们一起使用是否实用?在什么用例?

rabbitmq actor akka playframework

21
推荐指数
3
解决办法
2万
查看次数

将RabbitMQ与数据库事务集成

想象一下情况:

var txn = new DatabaseTransaction();

var entry = txn.Database.Load<Entry>(id);
entry.Token = "123";
txn.Database.Update(entry);

PublishRabbitMqMessage(new EntryUpdatedMessage { ID = entry.ID });

// A bit more of processing

txn.Commit();
Run Code Online (Sandbox Code Playgroud)

现在,消费者EntryUpdatedMessage可能会在提交事务之前获取此消息txn,因此无法查看更新.

现在,我知道RabbitMQ本身就支持事务,但我们不能真正使用它们,因为我们IModel为每个发布创建一个新的,并且在我们的场景(ASP.NET Web应用程序)中使用每线程模型非常麻烦.

我想到了在提交数据库事务时要发布的消息列表,但这是一个非常臭的解决方案.

处理这个问题的正确方法是什么?

transactions rabbitmq

21
推荐指数
1
解决办法
9479
查看次数

从一个Docker容器连接到另一个

我想在一个docker容器中运行rabbitmq-server,并使用celery从另一个容器连接到它(http://celeryproject.org/)

我使用以下命令运行rabbitmq ...

sudo docker run -d -p :5672 markellul/rabbitmq /usr/sbin/rabbitmq-server
Run Code Online (Sandbox Code Playgroud)

并经过芹菜

sudo docker run -i -t markellul/celery /bin/bash
Run Code Online (Sandbox Code Playgroud)

当我尝试在http://docs.celeryproject.org/en/latest/getting-started/first-steps-with-celery.html上执行非常基本的教程来验证连接时

我收到连接拒绝错误:

consumer:无法连接到amqp://guest@127.0.0.1:5672 //:[Errno 111]连接被拒绝.

当我在与芹菜相同的容器上安装rabbitmq时,它工作正常.

我需要做些什么才能让容器相互交互?

rabbitmq celery docker

21
推荐指数
2
解决办法
3万
查看次数

RabbitMQ客户端无法连接到远程RabbitMQ服务器

我有一个nodejs客户端,它使用bramqp连接到RabbitMQ服务器.我的客户端可以连接到localhost中的Rabbit MQ服务器并且运行良好.但它无法连接到其他计算机上的远程RabbitMQ服务器.我在远程服务器上打开了端口5672,所以我认为问题在于RabbitMQ服务器的配置.我怎么解决这个问题?

connection remote-access rabbitmq

21
推荐指数
1
解决办法
5万
查看次数

如何调整套接字描述符?

在此输入图像描述

我想知道谁来调整套接字描述符的数量?

另外,如何自动关闭有限超时的连接?

rabbitmq

21
推荐指数
2
解决办法
1万
查看次数

与RabbitMq类似,Apache Kafka能否拥有强大的路由功能?

我们正在尝试评估Kafka并在我们的软件中替换Rabbit Mq.

我们知道Kafka在RabbitMq方面优于离线消费,巨大的持久性,卓越的性能,低延迟和高吞吐量.

但我们需要像RabbitMq一样的功能,使用主题交换粒度路由进行异构消费.

在某种程度上,我们可以通过在Kafka中为每个代理提供更多的分区来实现这一目标.但它有自己的局限性,例如znode上主题元数据的开销,增加延迟.

我们的用例是过滤分区内的数据.假设您在一个分区中获得了100个类似类型的传感器数据.消费者是否有能力仅选择少量传感器数据而忽略其余数据.

我们可以在应用程序(消费者)方面进行过滤/路由,但它似乎不是可重用的,并且在每个消费者方面都有额外的开销.

Kafka有没有办法通过最佳分区数提供丰富的路由功能?

谢谢,Ashish

java routing amqp rabbitmq apache-kafka

21
推荐指数
1
解决办法
6226
查看次数

Azure Service Bus与RabbitMQ for Enterprise应用程序

我需要在Azure Service Bus和RabbitMQ(在Azure上部署)之间为企业级应用程序做出决定,我的主要用途是主题(具有持久存储).我发现,与RabbitMQ相比,服务总线具有更多功能,如Retries Count,TTL,会话和事务等.但我不确定哪一个最适合高可用性,可扩展性,存储和吞吐量.服务总线对存储大小有一些限制(非分区队列最大为5 GB,分区队列最大为80 GB),吞吐量为2000 msgs/sec/queue.如果在服务总线的情况下我需要更多这些限制怎么办?

RabbitMQ的限制尚不清楚,因为它取决于集群.如果有人能帮我决定哪一个在我的情况下是最好的?

servicebus bitnami rabbitmq azureservicebus

21
推荐指数
1
解决办法
2万
查看次数

我可以在商业应用中使用Mozilla Public License 1.1(MPL)吗?

有几个线程在讨论许可证问题.主要关注GPL/LGPL/BSD.我试图在商业应用程序中使用RabbitMQ,它是在Mozilla Public License(MPL)下获得许可的.MPL是否适合商业用途?

我在Stack Overflow上发现了一个不同的问题,其中一条评论提到:

MPL:人们可以接受您的代码,修改它,但如果他们分发修改,他们需要确保修改公开可用3年.

如果我根本不触及源代码,但只在我的代码中使用.jar文件,我是否也需要在MPL下许可我的代码?

mozilla rabbitmq

20
推荐指数
1
解决办法
2万
查看次数

Celery制造的临时队列

我在使用带有RabbitMQ的Celery.最近,我注意到大量的临时队列正在制作中.

因此,我进行了实验,发现当任务失败时(即任务引发异常),就会形成一个具有随机名称的临时队列(如c76861943b0a4f3aaa6a99a6db06952c)并保留队列.

在rabbitmqadmin中找到的临时队列的一些属性如下 -

auto_delete:真正的消费者:0持久:错误消息:1 messages_ready:1

每次任务失败时都会产生一个这样的临时队列(即引发异常).如何避免这种情况?因为在我的生产环境中会形成大量这样的队列.

rabbitmq celery

20
推荐指数
2
解决办法
4099
查看次数

澄清Hadoop与RabbitMQ + Celery的用例

我知道有类似的问题,例如:

但我问这个问题是因为我正在寻找一个更具特色的区别,请用几个用例来支持.

所以,我是一个python用户想要制作以下两者之一的程序:

  1. 太大了
  2. 花太长时间

在一台机器上完成,并在多台机器上处理它们.我熟悉python中的(单机)多处理软件包,我现在正在编写mapreduce样式代码.我知道我的功能很容易并行化.

在询问我常见的智能CS建议提供者时,我的问题是:

"我想接受一项任务,将其分成一堆在一堆机器上同时执行的子任务,然后将这些结果聚合并根据其他一些功能处理,这可能是一个减少,或者可能是指令例如,串行添加到数据库."

根据我的用例的分解,我认为我同样可以使用Hadoop或一组Celery工作者+ RabbitMQ经纪人.然而,当我问圣人的建议提供者时,他们回应我,好像我完全疯狂地将Hadoop和Celery视为可比较的解决方案.我已经阅读了很多关于Hadoop的内容,以及关于Celery的内容---我认为我对两者的作用都有很好的把握 - 我似乎不明白的是:

  1. 为什么他们被认为是如此独立,如此不同?
  2. 鉴于他们似乎被接受为完全不同的技术 - 以什么方式?哪个用例可以区分彼此,哪个更好?
  3. 两者都可以解决哪些问题,哪一方面使用其中一个特别愚蠢?
  4. 是否有更好,更简单的方法来实现多处理 - 如Pool.map() - 多机器的功能?让我们假设我的问题不受存储限制,而是受到计算所需的CPU和RAM的限制,因此没有太大的空间来保存工作者返回的结果.(也就是说,我正在做类似模拟的事情,我需要在数据库中的值中播种的较小机器上生成很多东西,但这些在返回到源机器/数据库之前会被减少.)

我知道Hadoop是大数据标准,但Celery也看起来很受支持; 我感谢它不是java(流式API python必须用于hadoop看起来对我不舒服),所以我倾向于使用Celery选项.

python hadoop distributed-computing rabbitmq celery

20
推荐指数
1
解决办法
4348
查看次数