zoukankan      html  css  js  c++  java
  • 009 客户端编码

    一 .概述

      Rabbitmq的java客户端的API是本人见过的最垃圾的API的设计,没有之一.

      在这些API之中,竟然使用了方法的重载代表了不同的行为,这也是服气到不行.


    二 .消息的发布

      我们首先看看核心的API:  

    void basicPublish(String exchange, String routingKey, boolean mandatory, BasicProperties props, byte[] body)
      throws IOException;

    我们可以从上面看到,发送一个消息最重要的就是制定一个交换机和路由键,然后最后的参数就是设置消息的内容,中间的参数就是一些附加的属性.

      我们还发现了一个mandatory参数,这个在后面去介绍.

    我们一般不会使用最长的那一个方法,其中的immediate这个参数已经被废弃了.

    记住:

      [1]找到一个交换机

      [2]给出一个路由键

      [3]发送一个消息

      参数和mandatory需要的时候再去设置.


    二 .声明交换机

      在上面,我们看到发布一个消息首先需要声明一个交换机.  

        void exchangeDeclareNoWait(String exchange,
                                   String type,
                                   boolean durable,
                                   boolean autoDelete,
                                   boolean internal,
                                   Map<String, Object> arguments) throws IOException;

    我们就介绍一下这个最长的方法.

    [1]交换机的名称

    [2]交换机的类型

    [3]交换机是否持久化

    [4]是否自动删除(如果这个交换机没有任何一个队列与它有关系,那么它就会被自动删除)

    [5]internal : 这个我们一般设置为false

    [6]附加的参数,对交换机的属性进行设置,这个在后面需要的时候会去介绍


    三 .声明消息队列  

        Queue.DeclareOk queueDeclare(String queue, boolean durable, boolean exclusive, boolean autoDelete,
                                     Map<String, Object> arguments) throws IOException;

    我们只需要介绍这个最长的参数就可以了.

    [1]消息队列的名称

    [2]是否持久化

    [3]是否排他 : 那一个连接(Connection)声明的他,这个队列就会对这个连接有效,当连接断开的时候,这个队列自动删除了.一般情况下,我们不会设置的.

    [4]是否自动删除

    [5]附加的参数


    四 .绑定

      所谓的绑定在前面已经说明过了,就是将消息队列和交换机进行连接,其中,我们需要给出一个绑定键.

      同时还存在交换机和交换机的绑定,这种我们现在先不去说.

    Queue.BindOk queueBind(String queue, String exchange, String routingKey, Map<String, Object> arguments) throws IOException;

    上面的参数比较的简单,就是给出一个队列的名称,然后一个交换机的名称,然后给出一个绑定键的名称就好了.

  • 相关阅读:
    LeetCode 1245. Tree Diameter
    LeetCode 1152. Analyze User Website Visit Pattern
    LeetCode 1223. Dice Roll Simulation
    LeetCode 912. Sort an Array
    LeetCode 993. Cousins in Binary Tree
    LeetCode 1047. Remove All Adjacent Duplicates In String
    LeetCode 390. Elimination Game
    LeetCode 1209. Remove All Adjacent Duplicates in String II
    LeetCode 797. All Paths From Source to Target
    LeetCode 1029. Two City Scheduling
  • 原文地址:https://www.cnblogs.com/trekxu/p/9778152.html
Copyright © 2011-2022 走看看