rittbiMQ:

连接远程rabbitmq server

sudo rabbitmqctl addser mihon mihon123

sudo rabbitmqctl set_permissions -p / mihon ".*" ".*" ".*"

set_permissions [-p vhost] {user} {conf} {write} {read}

客户端连接的时候需要配置认证参数:

credentials =  pika.PlainCreadentials('mihon','mihon123')

connection = pika.BlockingConnection(pika.ConnectionParameters(

'172.20.30.10',5672,'/',credentials))

channel = connection.channel()

消息持久化:

channel.queue_=declare(queue='task_queue', durable=Ture)

公平分发:

在消费者端配置perfetch=1,当消息还没有处理完的时候不不在接受消息

带消息持久化+公平分发

生产者端:

import pika

import sys

connection = pika.BlockingConnection(pika.ConnectionParameters(

host='localhost'))

channel.queue_declare(queue='task_queue',durable=Ture)

message = '.'.join(sys.argv[1:] or "hello world!")

channel.basic_publish(exchange='',

routing_key='task_queue',

body=message,

properties=pika.BasicProperties(

delivery_mode = 2, #make messa  persistent

))

print(" [x] Sent %r"%message)

connection.close()

消费者端:

import pika

import time

connection = pika.BasicProperties(pika.ConnectionParameters(

host="localhost"))

channel = connection.channel()

channel.queue_declare(queue='task_queue',durable=Ture)

print(' [*]Waiting for message. To exit press CTRL+C')

def callback(ch,method,properties,body):

print('asdfasdf')

time.sleep(body.count(b'.'))

print('111111')

ch.basic_ack(delivery_tag = method.delivery_tag)

channel.basic_qos(prefetch_count=1) #公平分发

channel.basic_consume(callback,

queue='task_queue')

channel.srart_consuming()  #启动接收

Publish\Subscribe

exchange

fanout:所有bind到exchange的queue都可以接收到消息

direct:通过routingKey和exchange决定的哪一个唯一的queue可以接收消息

topic:所有符合routingKey的routingKey所bind的queue可以接收消息

headers:通过headers 来决定把消息发给那些queue

有选择的接收消息(exchange type=direct)

publisher:

channel.exchange_declare(exchange='direct_logs',type='direct')

channel.basic_publish(exchange='direct_logs',routing_key=severity,body=message)

subscriber:

channel.exchange_declare(exchange='direct_logs',type='direct')

result = channel.queue_declare(exclusive=True)

for severity inseverities:

channel.queue_bind(exchange='direct_logs',queue=queue_name,routing_key=severity)

Ribbitmq的更多相关文章

  1. springboot+cloud 学习(五)统一配置中心 spring cloud config + cloud bus + WebHooks +RibbitMQ

    前言 微服务要实现集中管理微服务配置.不同环境不同配置.运行期间也可动态调整.配置修改后可以自动更新的需求,Spring Cloud Config同时满足了以上要求.Spring Cloud Conf ...

  2. springboot+cloud 学习(三)消息中间件 RibbitMQ+Stream

    安装RabbitMQ window下安装: (1):下载erlang,原因在于RabbitMQ服务端代码是使用并发式语言erlang编写的,下载地址:http://www.erlang.org/dow ...

  3. RibbitMQ 实战教程

    # RabbitMQ 实战教程 ## 1.MQ引言 ### 1.1 什么是MQ `MQ`(Message Quene) : 翻译为 `消息队列`,通过典型的 `生产者`和`消费者`模型,生产者不断向消 ...

  4. springboot整合ribbitMQ

    参考:https://blog.csdn.net/a13627210064/article/details/82348059 参考:https://blog.csdn.net/u010288264/a ...

  5. 【进阶技术】一篇文章搞掂:RibbitMQ

    一.简介 一开始,消息队列源自于一个激进的工程师的思想,他希望有一种通用软件“总线”能解决程序间繁重的信息通信工作 后来出现了很多消息队列产品,但是他们互不兼容,价格昂贵 后来出现了AMQP,高级消息 ...

  6. HIPPO-4J 1.3.0 正式发布:支持 Dubbo、RibbitMQ、RocketMQ 框架线程池

    文章首发在公众号(龙台的技术笔记),之后同步到个人网站:xiaomage.info Hippo-4J 距离上一个版本 1.2.1 已经过去一个月的时间.在此期间,由 8 位贡献者 提交了 170+ c ...

  7. Python开发程序:RPC异步执行命令(RabbitMQ双向通信)

    RPC异步执行命令 需求: 利用RibbitMQ进行数据交互 可以对多台服务器进行操作 执行命令后不等待命令的执行结果,而是直接让输入下一条命令,结果出来后自动打印 实现异步操作 不懂rpc的请移步h ...

  8. .Net Web开发技术栈

    有很多朋友有的因为兴趣,有的因为生计而走向了.Net中,有很多朋友想学,但是又不知道怎么学,学什么,怎么系统的学,为此我以我微薄之力总结归纳写了一篇.Net web开发技术栈,以此帮助那些想学,却不知 ...

  9. C#介绍RabbitMQ使用篇一HelloWorld

    RabbitMQ官网官方介绍: 译文: RabbitMQ是目前部署最广泛的开源消息代理(何为代理?可以理解为一个提供功能服务的中间件). 在全球范围内的大小企业中的生产环境中,RabbitMQ的部署两 ...

随机推荐

  1. apache配置优化 - 解决apache环境下网站访问速度慢的问题(重点参考)

    如果apche访问量过大,将会导致页面打开迟缓,下载速度也降低,如果由于经费和环境问题,集群方案没有得以应用.可以通过对Apache2增加模块MPM来进行优化, 这里我选择线程型MPM加以优化:  开 ...

  2. Connection conn = DriverManager.getConnection("jdbc:odbc:bbs");

    Connection conn = DriverManager.getConnection("jdbc:odbc:bbs"); 这是JDBC连接数据库的时候用的一句话,,Conne ...

  3. C# winwordcontrol控件编程

    C# word控件WinWordControl可创建.编辑.保存word. 1.使用代码直接创建word文件,同时可以添加页眉.内容.图片及表格,示例代码: /// <summary>   ...

  4. [转]Hibernate对象的三种状态

    在Hibernate中,对象有三种状态:临 时状态(Transient).持久状态(Persistent)和游离状态(Detached). 处于持久态的对象也称为 PO(PersistenceObje ...

  5. 2013上半年中国CRM市场分析报告

    经过了十多年的风风雨雨,CRM度过了漫长的市场培育期,即将迎来成熟期.目前这一阶段也是CRM惨烈搏杀的一个阶段,据不完全统计,国内大大小小的CRM厂商已经超过600家,各厂商几度火拼,努力扩大自己在C ...

  6. HDU4576 Robot(概率)

    题意 抄袭自https://www.cnblogs.com/Paul-Guderian/p/7624039.html  多组输入n,m,l,r.表示在一个环上有n个格子.接下来输入m个w表示连续的一段 ...

  7. linux_base-f10-10_7 linuxulator is not (kld)loaded

    # cd linux_base-f10/# make install clean===>  linux_base-f10-10_7 linuxulator is not (kld)loaded. ...

  8. 【Web应用-迁移】迁移 Web 应用到新的应用服务计划的相关限制和说明

    现象描述 当前 Web 应用所在的应用服务计划和目标应用服务计划属于同一个资源组,但是通过 Portal 点击 “更改应用服务计划”,依旧看不到目标应用服务计划. 问题分析 导致上述问题的原因是,用户 ...

  9. SQL问题:未启用当前数据库的 SQL Server Service Broker

    数据库分离后,附加回到数据库,然后在程序中打开调用数据库的页面,出现如下问题:“未启用当前数据库的 SQL Server Service Broker,因此查询通知不受支持.如果希望使用通知,请为此数 ...

  10. Perl sendmail

    introduction of sendmail example send mail to multi-receiver