rabbitmq 基本信息
两个或多个系统间需要通过定时任务来同步数据,异构系弘的不同进程间想互调用 通讯的问题,可以用rabbitmq解决。rabbitmq擅长解决多系统 异构系统音的数据交换,也可以用于系统间服务的相互调用RPC。AMQP,即Advanced Message Queuing Protocol,高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计。消息中间件主要用于组件之间的解耦,肖息的发关者无需知道消息使用者的存在,反之亦然。
AMQP主要特征是面向消息 队列 路由(点对点和发布 订阅)可靠性 安全。
RabbitMQ是一个开源的AMQP实现,用于分布式系统中存储转发消息 在易用性 扩展性 高可用性方面表现不错。
ConnectionFactoryConnectionChannel都是RabbitMQ对外提供的API中最基本的对象。Connection是RabbitMQ的socket链接,它封装了socket协议相关部分逻辑。ConnectionFactory为Connection的制造工厂。Channel是我们与RabbitMQ打交道的最重要的一个接口,我们大部分的业务操作是在Channel这个接口中完成的,包括定义Queue定义Exchange绑定queue与exchange发布消息等。
Queue:队列,是RabbitMQ的内部的对象,用于存储消息。
http://www.cnblogs.com/bass6/p/data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIEAAABbCAYAAABUBeYZAAAE9ElEQVR4nO2cWyjsWxzHv4YYJpcoESeXxIMHPJ1n8eA8kBJFHhQZHkjILbcSUTxs2iRJYgvHw3k42XniBaVQzpHOC+Ugl2SX2zbjcmatvWeave2zzfZfZnb5fmrVrP//v36z1v//WZfR+vN4sADyqvFwdQWI66EEhBIQSkBACQgoAQElIKAEBJSAgBIQUAICSkBACQgoAQElIKAEBJSAwIkS3NzcoKSkBNPT0/D19UVVVRVqampg3djk5uaGrzc52R+7u7tDY2MjhoeHcXFxgYyMDAwNDclYWsp+DxFjYGAAnZ2dODg4QHx8PEZGRpCYmCjPb29vo6KiAvPz8zCbzUhOTsbo6CiCg4Nl2ba2NvT09ECv12NwcBCbm5vo7u6Gp6cnxsbGkJqaavuu59ZRBU6ToKmpCScnJ9jZ2ZEPp6Cg4IfKd3R0YHV1FWtra/D390d5eTlqa2vR39//omUXFhawuLiIgIAA+UCLi4uxsrIiz6Wnp6Ovrw9TU1MwmUxoaWlBZWUlxsfH5fnj42Ps7e1hcnISeXl5KCoqwu7ursyL6zY2NpTUUStOk2BiYkLeUNFLBG/evEFcXJzD5UUPmZubQ3h4uMyL3pmQkODQTdJSVlwTGBgoP1dXV8vebUX0bCve3t7yQUZGRtqOtba2wmAwID8/XwrQ3Nxsy4tRUVUdteI0CQ4PDxEVFWXLR0dH/1D5/f19ORwLxEhyf38vh9yXLmsVQODj44Pb21tbfmlpSfbW9fV1XF5eymP2ca1lvby8HuXt42ito1acJkFISIicCmJiYmRefP6iIh4euLq6kjdacHp6+sX50NBQLC8vIyws7FFsLWW1kJOTI6eItLQ0+Pn54fz8XA7lz+Gl6ugITpMgNzdXzoNi2BOmiwWVPWLoE4smMeSenZ09Oi+GTzEf9/b2IiIiAltbW2hvb5fzq5ayWri+vpaLPpGE1A0NDc+O9VJ1dASnSSDmUqPRKBsoVrzigc3OztrOi5VwYWGhvE70BjHMzszM2M7X1dWhq6sLKSkpcqUu1hNiNa21rBaE0ELsrKws+b2iTWKR+Bxeqo6O4DQJRG8RP59EsiJ+IlpJSkqSK2N7SktLbZ91Oh3q6+tl+hotZb/Ht97LsT+WmZkpkz1lZWXfLPtU/rl1VAH/WERetwT/t/p+bW/muVQCV99sV3//z8KrHgnIJygBoQSEEhBQAgJKQEAJCCgBASUgoAQElIBAkQRi121XXR3g6ak51o3JBHedTu4W0srl1RUMn3cbaUFs9TKZzdB/3iamBZXtw8MDBt+90xxGiQRHR0fYeP8elRcXmmP9bkliA1qS5kiA2OfToSDOv5b0pyWVPnWhA6hsX6nYyq4gjrLp4BdLL8lWIIHYv/urJf2mORLQbUnZCuL8jU/1UhFLZfsqVYwm4JqAgBIQUAICSkBACQgoAQElIKAEBJSAgBIQUAICSkBACQgoAQElIKAEBJSAgBIQUAICSkBACQgoAQElIKAEBJSAgBIQUAICSkBACQgUSrCq08FoMGiO85fZjDVLrD/c3TXHOv74EUa9XnOcD/f3+Of2FkYF/39BZfvOFLwFLlAiQWxsLDrfvlURCqlPX+KSWKr4GdunRIKgoCBkZ6t4e5+4Aq4JCCUglICAEhBQAgJKQEAJCCgBASUgoAQElICAEhBQAgJKQEAJCCgBsfAfLJom4NBqZCAAAAAASUVORK5CYII=
RabbitMQ中的消息都能存储在Queue中,生产者下图的P,生产消息并最终投递到Queue中,消费者下图的C,可以从Queue中获取消息并消费。
http://www.cnblogs.com/bass6/p/data:image/png;base64,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
多个消费者可能订阅同一个Queue,这时Queue中的消息会被平均分摊给多个消费者进行处理,而不是每个消费者都收到所有的消息并处理。
http://www.cnblogs.com/bass6/p/data:image/png;base64,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
Messageacknowledgement:在实际应用中,可能会发生消费者收到Queue中的消息,但没有处理完成就宕机或出现其它的意外的情况,这种情况下就可能会导致消息丢失。为了避免这咱情况的发生,我们可以要求消费者在消费完消息后发一个回执给RabbitMQ,RabbitMQ收到消息回执(Messageacknowledgment)后才将该消息从Queue中移除;如果RabbitMQ没有收到回执并检测到消费者的RabbitMQ连接断开,刚RabbitMQ会将该消息发送给其他消费者如果 存在多个消费者 进行除理。这里不存在timeout的概念,一个消费者外理消息的时间再长也不会导致该消息被 发送给其他消费者,除非它的RabbitMQ连接断开。
Messagedurability:在RabbitMQ服务器重启的情况下,也不会丢失消息,我们可以将Queue与Message都设置为可持久化的durable,这样可以保证绝大部分情况下我们的RabbitMQ消息不会丢失。但依然解决不了小概率丢失事件的发生 比如RabbitMQ服务器已经接收到生产者的消息,但还没来得及持久化该消息时RabbitMQ服务器就断电了,如果我们需要对这种小概率事件也要管理起来,那么我们要用到事务。
Prefetchcount:前面我们讲到如果有多个消费者同时订阅同一个Queue中的消息,Queue中的消息,Queue中的消息会被平摊给多个消费者。这时如果每个消息的处理时间不同,就有可能导致某些消费者一直在忙,而另外一些消费者很快就处理完手洋工作并一直空闲的情况。我们可以通过设置prefetchCount来限制Queue每次发关给每个消费都的消息数,比如我们设prefetchCount=1,则Queue每次给每个消费者发送一条消息;消费者处理完这条消息后Queue会再给该消费者发送一条消息。
http://www.cnblogs.com/bass6/p/data:image/png;base64,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
Exchange:生产者将消息发送到Exchange(交换器,下图中的x),由于Exchange将消息路由到一个或多个Queue中或丢弃。
http://www.cnblogs.com/bass6/p/data:image/png;base64,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
RabitMQ中的Exchange有四种类型,不同的类型有着不同的路由策略。
Routeingkey:生产者在将消息发送给Exchange的时候,一般会指定一个routingkey,来指定这个消息的路由规则,而这个routingkey需要与ExchangType 及bindingkey联合使用才能最终生效。在ExchangType与bindingkey固定的情况下“在正常使用时一般这些内容都是固定配置好的”,我们的生产者就可以在发送消息给Exchange时,通过指定routingkey来决定消息流向哪里。RabbitMQ为routingkey设定长度为255bytes.
Binding:RabbitMQ中通过Binding将Exchange与Queue关联起来,这样RabbitMQ就知道如何正确地将消息路由到指定的Queue了。
http://www.cnblogs.com/bass6/p/data:image/png;base64,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
Bindingkey:在绑定Exchange与Queue的同时,一般会指定一个bindingkey;消费者将消息发送给Exchange时,一般会指定一个routingkey;当bindingkey与routingkey相匹配时,消息将会被路由到对应的Queue中。在绑定多个Queue到同一个Exchange的时候,这些Binding允许使用相同的bindingkey.binding key并不是在所有情况下都生效,它信赖于ExchangeType,比如fanout烊型的Exchange就会无视bindingkey,而是将消息路由到所有绑定到该Exchange的Queue.
ExchangeType:RabbitMQ常用ExchangeType有fanoutdirect topic headers这四种
http://www.cnblogs.com/bass6/p/data:image/png;base64,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fanout类型的Exchange路由规则非常简单,它会把所有发送到该Exchange的消息路由到所有它绑定的Queue中。
上图中,生产者P发送到ExchangeX的所有消息都会路由到图中的两个Queue,并最终被两个消费者c1与c2消费。
direct类型的Exchange路由规则也很简单,它会把消息路由到那些bindingkey与routingkey完全匹配的 Queue中。
http://www.cnblogs.com/bass6/p/data:image/png;base64,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
以上图的配置为例,我们以routingKey=”error”发送消息到Exchange,则消息会路由到Queue1(amqp.gen-....,这是由RabbitMQ自动生成的Queue名称)和Queue2(amqp.gen-...);如果我们以routingKey=”info”或routingKey=”warning”来发送消息,则消息只会路由到Queue2,如果我们以其他routingKey发送消息,则消息不会路由到这两个Queue中。
http://www.cnblogs.com/bass6/p/data:image/png;base64,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Topic:前面讲到direct类型的Exchange路由规则是完全匹配bindingkey与routingkey,但这咱严格的匹配方式在很多情况下不能满足实际业务需求。topic类型的Exchange在匹配规则上进行了扩展,它与direct类型的Exchange相似,也是将消息路由到bindingkey与routingkey相匹配的Queue中,但这里的匹配规则有些不同:
routingkey为一个句号“.”分隔的字符串我们将被句点号'.'分隔的每一段独立的字符串称为一个单词,如'stock.usd.nyse'
binding key与routingkey一样也是句点号'.'分隔的字符串
bindingkey中可以存在两种特殊字符'*'与'#',用于做模糊匹配,其中'*'用于匹配一个单词,'#'用于匹配多个单词也可以为0个。
上图中的配置为例,routingKey=“quick.orange.rabbit”的消息会同时路由到Q1与Q2,routingKey=”lazy.orange.fox”的消息会路由到Q1与Q2,routingKey='lazy.brown.fox'的消息会路由到Q2,routingKey='lazy.pink.rabbit'的消息会路由到Q2(只会投递Q2-次,虽然这个routingkey与Q2的两个bindingKey都区);routingKey='quick.brown.fox',routingKey='orange',routingKey='quick.orange.male.rabbit'的消息将会被 丢弃,因为它们没有匹配任何bindingKey.
Headers:headers烊型的Exchange不依赖于routingkey与bindingkey的匹配规则来路由消息,而是根据发送的消息内容中的header属性进行匹配。在绑定Queue与Exchange时指定一组键值对;当消息发送到 Exchange时,RabbitMQ会取到该消息的headers(也是一个键值对的形式),对比其中的键值对是否完全匹配Queue与Exchange绑定时指定的键值对;如果完全匹配则消息会路由到该Queue,否则不会路由到Queue.
RPC:MQ本身是基于异步的消息处理,前面的示例中所有的生产者(P)将消息发关到RabbitMQ后不会知道消费者c处理成功或者失败,甚至连有没有消费者来除理这条消息都不知道。但实际的应用场景中,我们很可能需要一些同步等待服务端将我的消息处理完后再进行下一步处理。这相当于RPC(RemoteProcedure Call,远程过程调用)。在RabbitMQ中也支持RPC
http://www.cnblogs.com/bass6/p/data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAkAAAADICAYAAAAA5l6qAAA9lElEQVR4nO2dCbhN5f7Hf6EiTZonjZq7KW5RklJXNBElt6hUolIpNIrMyhAyJ0kZKiWESFRu86SilDRwuSqReea/Pi/r/JdtT+dYe5+zz/5+nmc9e3732mvvvd7v+xuLbfUwIYQQQogsolh+74AQQgghRLqRABJCCCFE1iEBJIQQQoisQwJICCGEEFmHBJAQQgghsg4JICGEEEJkHRJAQgghhMg6JICEEEIIkXVIAAkhhBAi65AAEkIIIUTWIQEkhBBCiKxDAkgIIYQQWYcEkBBCCCGyDgkgIYQQQmQdEkBCCCGEyDokgIQQQgiRdUgACSGEECLrkAASQgghRNYhASSEEEKIrEMCSAghhBBZhwSQEEIIIbIOCSAhhBBCZB0SQEIIIYTIOiSAhBBCCJF1SAAJIYQQIuuQABJCCCFE1iEBJIQQQoisQwJICCEKELvttpv16NHDbQsXLrQtW7bk3D9gwADr1q2b/fbbb1a6dGl7/PHH7ZZbbsl57bhx46xdu3Y2a9YsO/TQQ61169Z22223JXzP559/3jp06GALFiywY445xlq0aGFNmjSxrVu3uvflMtp+Bu/nvdu0aWPfffedHXDAAW6/2rdvb8WKFQtlDCHCRr8qIYQoYEyZMsU+++wzO+yww3a4v2vXrjZixAg766yz7KuvvrIbbrjB9ttvP7vmmmtswoQJdvfddzsxU7lyZSdmEEOJBNCYMWOsY8eONnLkSDful19+6cbNDZMnT7a2bdvawIED7eyzz7ZFixZZ06ZNnZhh7HSNIURukAASQogCxtNPP72T+IF+/frZueee665XqFDB+vbt60QDAgiR0L9/f7v00kvd42XKlLFhw4YlfK+nnnpqh3ErVqzobteoUSPp/eW9hwwZYmXLlnW3sSINHjzYypUrl7R4CWMMIXKDBJAQQhQwTjrppKj3Y9kJcuGFF9rXX3/trs+cOdOqVq2a6/fi9dHGzQ1ffPGFlS9f3l3HpeVvuLjSOYYQuUECSAghChhFihTJ712IS2Q8D3FKf/75p5UqVSqtYwixK0gACSFEhjBjxgyrVq1azu33338/x2VE/M706dPtiiuuyNWYvD7auD577bWXLVu2bAdh8v333+8wBpabsWPH7hCQHSSMMYQIGwkgIYTIEAhyHj58uAsSJliZ28TwwCOPPGJ33nmnDR061C644AKbP3++C4JOFAfUvHnznca96667ch5HGJEV9uSTT7qAa4Kzg48DcUjXX3+9lShRwq688kp338cff+wy2QjODmMMIcJGAkgIITIExAoZWn4afKtWraxOnTrusauuuso2btzonkMa+RFHHOHS5BNx7bXX2vLly534IO2e4OOHHnrIpcEDWVmIleOPP97Wr19vp512mj344IN244035oxxySWX2GuvveZEDFlnuLMI0kb0hDWGEGEjASSEEAWIaPVyfBAlvjCJRu3atd2WWxAckeny/vsccsghNnr06J1eE5kqX6VKFZs2bVrU8cMYQ4iwkQASQgghRNYhASSEEIWUeCnk8SxNQmQDEkBCCJEB5EWw7IrIkUAShR0JICGEEEJkHRJAQgghhMg6JICEEEIIkXVIAAkhhBAi65AAEkIIIUTWIQEkhBBCiKxDAkgIIYQQWYcEkBBCCCGyDgkgIYQQQmQdEkBCCCGEyDokgIQQQgiRdUgAZRirV6+2DRs25PduiCykSJEitt9+++X3bgghRChIAGUYt9xyi02aNMmKFdNXJ9LLmjVrrHPnzta8efP83pUCSZcOHeyXefNCG49mpJs2bbLdd989tDEZDyHLFhYsyPbYY4/Qxtu8ebO7LFq0aGhj2pYt1qFbNzv44IPDG1NkPJpFMwxOip06dbKqVavm966ILOPqq6+2vn37uompWbNm+b07BY6xw4fbJXPm2NEhjbfA20Z624MhjQfDve0EbzsnpPG2eNv93tYrpPFgurct87baIY75RIkS9mDr1hJAYgckgIQQSYHwad++vbX2JpK1a9faI488kt+7VOBg0i4X0lgzvW2at90R0njwpbdV8rYGIY2HrQaBFuY+4uBfEPKYPUO0oonCgwSQECJpSpUqZc8++6zdfvvt7rZEkBAiU5EAEkLkigMPPFAiSAiR8UgACSGSguDUuXPn2vLly91t4oBwiYFEkBAi05AAEgWef/zjHznX99prL3ebCfeEE07Ix73aGfbr22+/ze/dSBnXXXed9evXz3bbbbec+0iLf/zxx61FixahZisJIUSqkQASGYEvLFatWmXDhw+3hx9+2F599dV83qvsokGDBm6LpEKFCvmwN0IIsWtIAImMYu+997aGDRvawIED3e0tW7ZY7969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
RabbitMQ中实现发送请求(消息)时,在消息的属性(MessageProperties,在AMQP协议中定义了14种properties,这些属性会随着消息一起发送)中设置两个值replyTo(一个Queue名称,用于告诉服务处理完成后将通知我的消息发到这个Queue中)和correlationId(此次请求的标识号,服务器外理完成后需要将此属性返还,客户端将根据这个id了解哪条请求被成功执行了或执行失败)
服务器端收到消息并处理
服务器端处理完消息后,将生成一条应答消息到replyTo指定的Queue,同时带上correlationId属性
客户端之前订阅replyTo指定的Queue,从中收到服务器的应答消息后,根据其中的correlationId属性分析哪条请求被执行了,要据执行结果时行后续业务处理。
AMQP协议是一个高级抽象层消息通信协议,RabbitMQ 是AMQP协议的实现。
每个rabbitmq-server叫做一个broker,等着tcp连接进入。
Binding联系Exchane与Queue.
Routing key由生产者指定。Binding key由消费者指定。二者联合决定一条消息的来去。
页:
[1]