使用rabbitMQ

①声明:

Dim g_cf As New ConnectionFactory

Dim g_con As IConnection = Nothing

Dim g_ch As IModel = Nothing

Dim is_consuming As Boolean = False

 

②初始化:

g_cf.UserName = Server_Interface.strUserName

   g_cf.Password = Server_Interface.strPassword

   g_cf.VirtualHost = Server_Interface.strVirtualHost

   g_cf.Protocol = Protocols.FromEnvironment()

   g_cf.HostName = Server_Interface.strHostName

   g_cf.Port = Server_Interface.iPort

   Try

      g_con = g_cf.CreateConnection()

      g_ch = g_con.CreateModel()

      g_ch.QueueDeclare(Server_Interface.strQueueName, True, False, False, Nothing)

   Catch ex As Exception

      Console.WriteLine("Error in Crate Channel:" & ex.ToString())

   End Try

g_con.AutoClose = True

 

③使用:

Dim consumer As New QueueingBasicConsumer(Me.g_ch)

Dim tag As String = Me.g_ch.BasicConsume(Server_Interface.strQueueName,                      False, consumer)

   While (Me.is_consuming)

        Try

          If g_ch.IsOpen Then

              Dim ret_obj = consumer.Queue.DequeueNoWait(Nothing)

              If ret_obj Is Nothing Then

                  Continue While

             End If

Dim e As RabbitMQ.Client.Events.BasicDeliverEventArgs =DirectCast(ret_obj,RabbitMQ.Client.Events.BasicDeliverEventArgs)

            Dim props As IBasicProperties = e.BasicProperties

         Dim msg As String = System.Text.UTF8Encoding.ASCII.GetString(e.Body)

          Me.g_ch.BasicAck(e.DeliveryTag, False) '消息确认

    Catch ex As Exception

            MsgBox(ex.Message, MsgBoxStyle.Critical, "载入错误")

            Return

 End Try

End While

④结束:

     

Me.is_consuming = False

g_ch.Dispose()

g_con.Dispose()


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
RabbitMQ 是一个开源的消息队列系统,它在分布式应用程序中广泛用于实现异步通信和解耦。通过 RabbitMQ,你可以将请求或任务作为消息发送到队列,然后由一个或多个消费者处理这些消息,而发送者无需等待响应。这使得应用程序能够处理高并发、故障恢复和可扩展性。 以下是使用 RabbitMQ 进行异步的一些关键步骤: 1. **安装与配置**:首先,你需要在你的服务器上安装 RabbitMQ,并设置相应的环境变量,如配置文件中的 host, port, vhost 等。 2. **创建交换器和队列**:在 RabbitMQ 中,消息会被路由到特定的交换器,然后交换器再决定将消息分发到哪些队列。这一步可以根据你的应用需求来设计。 3. **生产者(Publisher)**:应用程序作为生产者,会使用 RabbitMQ 客户端库来创建一个连接并发布消息到指定的交换器。 4. **声明和绑定队列**:生产者需要声明队列并将其与交换器绑定,以便接收消息。 5. **消费者(Consumer)**:消费者从队列中获取消息并进行处理。消费者可以是单个进程或多个实例,根据需要进行负载均衡。 6. **回调和确认机制**:RabbitMQ 支持消息确认,消费者处理完消息后,会向 RabbitMQ 发送确认信号,如果消息丢失或出错,可以重新发布。 7. **错误处理和重试策略**:为了处理消息传递中的异常,通常会设置重试机制和错误处理策略。 8. **监控和管理**:使用 RabbitMQ 的管理界面(Web UI)或命令行工具,可以监控队列、消费者状态以及总体性能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

老侯

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值