文章目录
- 前言
- 源码分析
-
- 一、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实例,并且启动。