小编eld*_*d87的帖子

RabbitMQ - 按优先级使用多个队列

我需要升级我们的生产者/消费者基础设施。

当前设置如下所示:

  • 一组具有不同优先级(低、中、高)的 3 个队列。
  • 当我们的客户生成任务(即处理图像)时:
    • Producer 将消息添加到相关队列中。
    • 其中一名工人解决了这个问题。

这种方法的问题在于,如果客户生成大量任务,它可能会占用队列中的所有可用插槽,这可能会导致该队列中的服务拒绝(或巨大延迟)。

建议更改:

  • 每个客户(或一组)都应该有专门的Consumer(或一组)。
  • 当消费者空闲时,他们应该处理其他客户的消息。

例如,我们有一组消息:

 1. Producer: Customer1, Queue: High, Payload: {}, Created: Today 16:00:00
 2. Producer: Customer2, Queue: High, Payload: {}, Created: Today 16:00:01
 3. Producer: Customer1, Queue: High, Payload: {}, Created: Today 16:00:02
 4. Producer: Customer1, Queue: High, Payload: {}, Created: Today 16:00:03
Run Code Online (Sandbox Code Playgroud)

我们有以下消费者:

1. Consumer1: Dedicated for Customer1
2. Consumer2: Dedicated for Customer1
3. Consumer3: Dedicated for Customer2
Run Code Online (Sandbox Code Playgroud)

预期结果:

1. Consumer1 will address Message#1
2. Consumer2 will …
Run Code Online (Sandbox Code Playgroud)

priority-queue amqp rabbitmq consumer producer

6
推荐指数
1
解决办法
1231
查看次数

如何使用PECL PHP solr扩展更改请求处理程序

我正在使用默认的PHP Solr客户端:http: //php.net/manual/en/book.solr.php 到目前为止,结果令人惊讶所以我决定继续使用Solr,并开发一个"建议者"服务:

我做了根据:http: //wiki.apache.org/solr/Suggester/ 它也很好用 - 但我不知道如何使用PHP客户端查询它.

这是我查询文档的方式:

http://localhost:8080/solr/subject_offers/select/?q=string_to_search
Run Code Online (Sandbox Code Playgroud)

这是我查询建议的方式:

http://localhost:8080/solr/subject_offers/suggest/?q=string_to_suggest
Run Code Online (Sandbox Code Playgroud)

如您所见,建议服务具有不同的RequestHandler(称为"建议").如何在客户端更改它?

更新: 我正在使用cURL从Solr检索响应XML.但我仍然想要返回一个Solr响应对象,所以我使用的是"SolrUtils :: digestXmlResponse($ xml,SolrResponse :: PARSE_SOLR_OBJ)".不幸的是,我收到了有效XML的"错误取消序列化响应"错误:

<response><lst name="responseHeader"><int name="status">0</int><int name="QTime">2</int></lst><lst name="spellcheck"><lst name="suggestions"><lst name="the"><int name="numFound">1</int><int name="startOffset">9</int><int name="endOffset">12</int><arr name="suggestion"><str>the</str></arr></lst><lst name="the"><int name="numFound">1</int><int name="startOffset">33</int><int name="endOffset">36</int><arr name="suggestion"><str>the</str></arr></lst><lst name="collation"><str name="collationQuery">name:for the d^5 description:for the d^0.4</str><int name="hits">1</int><lst name="misspellingsAndCorrections"><str name="the">the</str><str name="the">the</str></lst></lst></lst></lst><result name="response" numFound="1" start="0"><doc><str name="1_on_1_price">9,USD</str><float name="avarage_rating">0.0</float><arr name="categories"><str>2,2,3</str></arr><int name="category_id">3</int><arr name="description"><str>was named for the directo</str><str>The Manchesowned by Peel Ports</str></arr><bool name="is_public">true</bool><str name="language">he</str><int name="lesson_type">0</int><str name="name">was named for the directo</str><int name="subject_id">12</int></doc></result></response>
Run Code Online (Sandbox Code Playgroud)

请指教,谢谢!

php solr cakephp-2.0

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

标签 统计

amqp ×1

cakephp-2.0 ×1

consumer ×1

php ×1

priority-queue ×1

producer ×1

rabbitmq ×1

solr ×1