连接rabbitmq的两种方式,URI须注意

2,408 阅读1分钟

连接rabbitmq的两种方式,URI须注意

方式1

直接设置各个属性值,其中许多属性有其默认值,例如

image.png

ConnectionFactory connectionFactory = new ConnectionFactory();
//默认情况下,“ guest” /“ guest”,仅限于本地主机连接
connectionFactory.setUsername("admin");
connectionFactory.setPort(5672);
connectionFactory.setPassword("admin");
connectionFactory.setHost("172.30.18.114");

Connection connection = connectionFactory.newConnection();

方式2

也可以通过URI的方式进行连接 URI的格式为"amqp://userName:password@hostName:portNumber/virtualHost" PS:虚拟主机的默认值为"/",这里是个坑,根据amqp协议详情,如下图所示:

image.png 我们可以知道,当虚拟主机为"/"时,URI中虚拟主机的配置则为%2f

connectionFactory.setUri( "amqp://admin:admin@172.30.18.114:5672/%2f");
Connection connection = connectionFactory.newConnection("test");

提示:连接名称,名称是可选的;但是,强烈建议开发人员提供一个,如果设置,则标识符将在日志条目和管理UI中提及。 完成连接之后,下面进行一个简单的测试:

  1. 建立通道;
  2. 声明交换机;
  3. 声明队列;
        Channel channel = connection.createChannel(2);
        channel.exchangeDeclare("test", "direct", true, false, null);
        channel.queueDeclare("testQueue",true,false,false,null);
        channel.queueBind("testQueue","test","");

image.png

image.png