当前位置: 代码迷 >> 综合 >> Rabbit架构篇 - ConnectionFactory
  详细解决方案

Rabbit架构篇 - ConnectionFactory

热度:92   发布时间:2024-02-28 08:27:05.0

文章目录

  • 前言
  • 源码分析
    • 一、setUsername
    • 二、setPassword
    • 三、setVirtualHost
    • 四、setHost
    • 五、setPort
    • 六、setUri
    • 七、newConnection
      • Part One
      • Part Two
      • Part Three
      • Part Four
      • Part Five


前言

ConnectionFactory:开放一个用于连接RabbitMQ节点的工厂类。也用于大多数连接和套接字配置。

Connection: 实质上是AMQConnection,表示一个AMQP连接。


源码分析

进入源码分析之前,首先看下如下代码:

ConnectionFactory factory = new ConnectionFactory();
factory.setUsername("root");
factory.setPassword("root");
factory.setVirtualHost("/");
factory.setHost("192.168.0.106");
factory.setPort("5672");
Connection connection = factory.newConnection();

或者:

ConnectionFactory factory = new ConnectionFactory();
factory.setUri("amqp://root:root@192.168.0.106:5672/");
Connection connection = factory.newConnection();

接下来围绕上面的代码展开源码分析。

一、setUsername

在这里插入图片描述

credentialsProvider属性初始时,被赋予为DefaultCredentialsProvider,构造器参数为guest、guest。

设置用户名。默认是guest。


二、setPassword

在这里插入图片描述

设置用户密码。默认是guest。


三、setVirtualHost

在这里插入图片描述

设置虚拟主机名。默认是/。


四、setHost

在这里插入图片描述

设置主机名。默认是localhost。


五、setPort

在这里插入图片描述

设置端口号。默认是-1。


六、setUri

在这里插入图片描述

设置用于连接的uri字符串。

在这里插入图片描述

  • DEFAULT_AMQP_OVER_SSL_PORT : 5671。

在这里插入图片描述
在这里插入图片描述


七、newConnection

在这里插入图片描述

创建新的连接。

在这里插入图片描述

在这里插入图片描述


Part One

在这里插入图片描述

赋予metricsCollector属性为NoOpMetricsCollector实例。


Part Two

在这里插入图片描述
创建SocketFrameHandlerFactory实例。
在这里插入图片描述


Part Three

在这里插入图片描述

构造ConnectionParams实例。

在这里插入图片描述


Part Four

在这里插入图片描述

判断automaticRecovery参数的值。如果为true,构造AutorecoveringConnection实例并且初始化。


Part Five

在这里插入图片描述

创建AMQConnection实例,并且启动。