1,EasyNetQ-链接到RabbitMQ
一、链接到RabbitMQ
1,创建连接
注意不能有空格
var bus = RabbitHutch.CreateBus(“host=myServer;virtualHost=myVirtualHost;username=mike;password=topsecret”);
1)host(必填):
例如:host=localhost或者host=192.168.2.56或者host=myhost.mydomain.com
使用标准格式主机:端口(host=myhost.com:5673)
如果省略端口号,默认端口使用AMQP(5672)
连接到RabbitMQ集群,每个集群节点指定以逗号分隔(host=myhost1.com,myhost2.com,myhost3.com)
2)virtualHost(默认‘/’):
例如:virtualHost=myVirtualHost
3)username(默认guest):
例如:username=mike
4) password(默认guest):
例如:password=mysecret
5)requestedheartbeat(默认值是10秒):
例如:requestedHeartbeat=10。设置为0,没有心跳。
6) prefetchcount(默认值是50):
例如:prefetchcount=1。这是由EasyNetQ发送ack之前由RabbitMQ发送的消息数。 设置为0用于无限预取(不推荐)。 设置为1,在消费者农场之间进行公平的工作平衡。
7)publisherConfirms(默认为false):
例如:publisherConfirms=true,这打开了Publisher Confirms.。
8) persistentMessages(默认为true):
例如:persistentMessages=false。这决定了在发布消息时如何设置basic.properties中的delivery_mode。 false = 1,true = 2。 当设置为true时,消息将由RabbitMQ持久存储到磁盘,并在服务器重新启动后生存。 当设置为false时,可以预期性能提升。
9) product(默认值是实例化总线的可执行文件的名称):
例如:product=My really important service。在EasyNetQ 0.27.3中引入。 此处输入的值将显示在RabbitMQ的管理界面中。
10) platform( 默认值是运行客户端进程实例化总线的机器的主机名):
例如platform = my.fully.qualified.domain.name。在EasyNetQ 0.27.3中引入。 此处输入的值将显示在RabbitMQ的管理界面中。
11)timeout(默认为10秒):
例如timeout = 60。 在EasyNetQ 0.17中推出。 解析为System.UInt16。 范围从0到65535.格式为秒。 对于无限超时,请使用0。超出值时抛出System.TimeoutException。
2,关闭连接
bus.Dispose();
这将关闭EasyNetQ使用的连接,渠道,消费者和所有其他资源。
二、连接SSL
var connection = new ConnectionConfiguration(); connection.Port = 443; connection.UserName = "user"; connection.Password = "pass"; connection.Product = "SSLTest"; var host1 = new HostConfiguration(); host1.Host = "rmq1.contoso.com"; host1.Port = 443; host1.Ssl.Enabled = true; host1.Ssl.ServerName = "rmq1.contoso.com"; host1.Ssl.CertPath = "c:\\tmp\\myclient.p12"; host1.Ssl.CertPassphrase = "secret"; var host2 = new HostConfiguration(); host2.Host = "rmq2.contoso.com"; host2.Port = 443; host2.Ssl.Enabled = true; host2.Ssl.ServerName = "rmq2.contoso.com"; host2.Ssl.CertPath = "c:\\tmp\\myclient.p12"; host2.Ssl.CertPassphrase = "secret"; connection.Hosts = new List<HostConfiguration> { host1, host2 }; connection.Validate(); //非常重要 var Bus = RabbitHutch.CreateBus(connection, services => services.Register<IEasyNetQLogger>(logger => new DoNothingLogger()));