• RabbitMQ(2)


    上一次安装了RabbitMQ并成功创建了vhost和user,可是生产和消费的过程还没有完毕。这次主要调了一下这个过程。

    上次基本的问题是没有实现过程代码的编写保存,事实上也就是Python程序,这两天看了一下Python的基本知识,完毕了

    主要的Hello World的生产消费:

    1.生产send.py

    进入vim。编写生产进程


    !/usr/bin/env python
    import pika
    connection = pika.BlockingConnection(pika.ConnectionParameters(host='localhost'))
    channel = connection.channel()
    channel.queue_declare(queue='hello')
    channel.basic_publish(exchange='',routing_key='hello',body='Hello World!')
    print " [x] Sent 'Hello World!'"
    connection.close()

    过程:先和RabbitMQ server建立连接。localhost代表的是本机。假设要连接到其他主机。使用相应的主机地址就OK

    ;声明队列hello。因为消息不能直接传递到消息队列其中去,所以须要一次exchange,这里使用默认的交换

    '',routing_key为队列的名字;然后在关闭连接。


    2.消费receive.py

    进入vim,编写消费进程

    !/usr/bin/env python
    import pika
    connection = pika.BlockingConnection(pika.ConnectionParameters(host='localhost'))
    channel = connection.channel()
    channel.queue_declare(queue='hello')
    print ' [*] Waiting for messages. To exit press CTRL+C'
    def callback(ch, method, properties, body):
        print " [x] Received %r" % (body,)
    channel.basic_consume(callback,queue='hello',no_ack=True)
    channel.start_consuming()

    过程:建立连接。声明队列。这里声明的原因是我们不知道预先存在的队列是什么,所以我们就确定化我们的目标

    消费队列就是我们前面缩写的send.py里面的队列hello。然后建立我们的消费方法callback。然后声明消费的

    对象队列是hello队列;然后启动。


    測试的时候。首先启动生产进程send.py:

    $ python send.py
     [x] Sent 'Hello World!'

    然后我们会显示生产的标识消息:[x] Sent 'Hello World!'

    生产进程每运行一次生产就停止了。

    然后再启动消费进程:


    $ python receive.py
     [*] Waiting for messages. To exit press CTRL+C
     [x] Received 'Hello World!'

    这里我们就会发如今Received后面出现了我们生产进程中发出的信息'Hello World!',这样便完毕了一次生产消

    费过程。

    也能够打开两个终端,在当中一个终端上一直运行生产进程。我们会发如今还有一个终端上会一直显示我们的消费标识

    信息。即边生产边消费。


    后面第二部分的就是多个消费worker(),还在看.....











  • 相关阅读:
    java概述------
    java中有几种方法实现一个线程?用什么关键字修饰同步方法?stop()和suspend()方法为何不推荐使用?
    java的5个框架,哪个框架更适合你的项目?
    java的热门应用有哪些?
    vue-router 切换页面时怎么设置过渡动画
    Referrer Policy 介绍
    await进行同步操作
    vue中axios拦截器同一项目多域名如何配置
    正规方程求解特征参数的推导过程
    一种网页中显示代码所涉及的字符转义问题的解决方案
  • 原文地址:https://www.cnblogs.com/mfrbuaa/p/5199143.html
Copyright © 2020-2023  润新知