exchange

RabbitMQ交换机

北慕城南 提交于 2020-02-14 23:15:24
1、交换机属性 交换机有以下属性: Name :交换机名称 Type :交换机类型 direct、topic、fanout、headers Durability :是否需要持久化,true为持久化 Auto Delete :当最后一个绑定到Exchange上的队列删除后,自动删除该Exchange Internal :当前Exchange是否用于RabbitMQ内部使用,默认为False Arguments :扩展参数,用于扩展AMQP协议,定制化使用 2、直连交换机Direct Exchange(完全匹配路由key) 所有发送到Direct Exchange的消息会被转发到RouteKey中指定的Queue 注意:Direct模式可以使用RabbitMQ自带的Exchange:default Exchange,所以不需要将Exchange进行任何绑定(binding)操作,消息传递时,RouteKey必须完全匹配才会被队列接收,否则该消息会被抛弃; 消费端代码: package com.ue.exchange.direct; import com.rabbitmq.client.Channel; import com.rabbitmq.client.Connection; import com.rabbitmq.client.ConnectionFactory; import

19.python笔记之Rabbitmq

偶尔善良 提交于 2020-02-13 15:31:06
RabbitMQ是一个在AMQP基础上完整的,可复用的企业消息系统。他遵循Mozilla Public License开源协议。 MQ全称为Message Queue, 消息队列(MQ)是一种应用程序对应用程序的通信方法。应用程序通过读写出入队列的消息(针对应用程序的数据)来通信,而无需专用连接来链接它们。消 息传递指的是程序之间通过在消息中发送数据进行通信,而不是通过直接调用彼此来通信,直接调用通常是用于诸如远程过程调用的技术。排队指的是应用程序通过 队列来通信。队列的使用除去了接收和发送应用程序同时执行的要求。 RabbitMQ安装 1.linux 安装配置epel源 $ rpm -ivh http://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm 安装erlang $ yum -y install erlang 安装RabbitMQ $ yum -y install rabbitmq-server service rabbitmq-server start/stop 2.安装python API pip install pika or easy_install pika 先来一个基于Queue实现生产者消费者模型试试水 #!/usr/bin/env python3 #coding:utf8

PAT T1024 Currency Exchange Centers

故事扮演 提交于 2020-02-13 12:23:49
krustral算法求最少结点数的最小生成树,用优先队列实时排序,优先选择已经被选中的中心~ #include<bits/stdc++.h> using namespace std; const int maxn=10014; int N,M,x,y; struct edge { string name; int u; int v; int w; }Edge[maxn]; int father[maxn]; int num[maxn]; vector<edge> vi; unordered_set<string> st; int findfather (int x) { int a=x; while (x!=father[x]) x=father[x]; while (a!=father[a]) { int z=a; a=father[a]; father[z]=x; } return x; } bool cmp1 (edge a,edge b) { if (a.w!=b.w) return a.w<b.w; else return st.count(a.name); } bool cmp2 (edge a,edge b) { if (a.name!=b.name) return a.name<b.name; else return a.w<b.w; } bool operator

Exchange开发(四) Exchange Resources and Q&A

我与影子孤独终老i 提交于 2020-02-13 10:42:15
Microsoft http://www.microsoft.com/exchange/default.mspx Microsoft Exchange Server TechCenter http://www.microsoft.com/technet/prodtechnol/exchange/default.mspx Exchange Server Developer Information on MSDN http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnanchor/html/exchangesvr.asp Exchange Resources http://www.msexchange.org SSL Enabling OWA 2003 using your own Certificate Authority http://www.msexchange.org/tutorials/SSL_Enabling_OWA_2003.html 当设置 OWA 认证方式为 Forms-based Authentication 时,设置用户的默认域以及自定义用户登录页面 Outlook Web Access 2003 Forms-based Authentication and the default

Java初识RabbitMQ一消费端限流

北城以北 提交于 2020-02-13 01:55:12
Java初识RabbitMQ一消费端限流 为什么要对消费端限流 假设一个场景,首先,我们RabbitMQ服务器上积压了有上万条未处理的消息,我们随便打开一个消费端,巨量的消息就会瞬间全部推送过来,但是我们单个消费端是无法同时处理这么多消息的。 当数据量特别大的时候,我们对生产端限流肯定是不科学的,因为有时候并发量就是特别大,有时候并发量又特别少,我们无法约束生产端,这是用户的行为。所以我们应该对消费端限流,用于保持消费端的稳定,当消息数量激增的时候很有可能造成资源耗尽,以及影响服务的性能,导致系统的卡顿甚至直接崩溃。 怎么实现消费端限流 RabbitMQ给我们提供了 QOS (服务质量保证)功能,即在非自动确认消息的前提下( autoAck 要设置为false ),如果一定数目的消息未被 ack 前,RabbitMQ服务器不会推送新的消息给消费端。 /** * Request specific "quality of service" settings. * * These settings impose limits on the amount of data the server * will deliver to consumers before requiring acknowledgements. * Thus they provide a means of

RabbitMQ拓展

|▌冷眼眸甩不掉的悲伤 提交于 2020-02-13 00:03:28
RabbitMQ拓展 TTL队列/消息 TTL是Time To Live的缩写, 也就是生存时间 RabbitMQ支持消息的过期时间, 在消息发送时可以进行指定 RabbitMQ支持队列的过期时间, 从消息入队列开始计算, 只要超过了队列的超时时间配置, 那么消息会自动清除 生产者 import com . rabbitmq . client . Channel ; import com . rabbitmq . client . Connection ; import com . victoria . rabbitmq . util . ConnectionUtils ; import java . io . IOException ; import java . util . concurrent . TimeoutException ; public class send { private static final String EXCHANGE_NAME = "test_exchange_ttl" ; public static void main ( String [ ] args ) throws IOException , TimeoutException { //获取链接 Connection connection = ConnectionUtils .

【SpringBoot MQ系列教程】RabbitMq 初体验

孤街醉人 提交于 2020-02-10 21:14:53
【SpringBoot MQ系列教程】RabbitMq 初体验 mq 在异步解耦削峰的优势非常突出,现在很多的项目都会用到,掌握 mq 的知识点,了解如何顺畅的使用 mq,可以说是一个必备的职业技能点了 接下来我们进入 rabbitmq 的学习过程 I. 环境准备 在测试之前,需要安装 rabbitmq,下面分别给出 mac + centos 的安装教程 1. mac 安装 安装命令 brew install rabbitmq ## 进入安装目录 cd /usr/local/Cellar/rabbitmq/3.7.5 # 启动 brew services start rabbitmq # 当前窗口启动 rabbitmq-server 启动控制台之前需要先开启插件 ./rabbitmq-plugins enable rabbitmq_management 进入控制台: http://localhost:15672/ 用户名和密码:guest,guest 2. centos 安装 安装命令 yum install erlang wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.6.15/rabbitmq-server-3.6.15-1.el6.noarch.rpm yum install rabbitmq-server-3

Java内置HttpServer的使用

試著忘記壹切 提交于 2020-02-09 20:13:32
一、相关类 1.HttpServer 表示一个服务器实例,需要绑定一个IP地址和端口号 2.HttpContext 服务器监听器的上下文 3.HttpHandler 上下文对应的http请求处理器 4.HttpExchange 监听器回调时传入的参数,封装了http请求和响应的所有数据操作 二、使用 public class MyServer { public static void main(String[] args) throws IOException { HttpServer httpServer = HttpServer.create(new InetSocketAddress(9090), 0); httpServer.createContext("/hello", new MyHandler()); httpServer.start(); System.out.println("server start..."); } static class MyHandler implements HttpHandler { @Override public void handle(HttpExchange exchange) throws IOException { String response = "Hello World"; exchange

Currency Exchange Centers

点点圈 提交于 2020-02-09 01:26:53
There are currently 168 internationally recognized unique national currencies in this world. But let us assume that we have business with other species in the entire universe... To change one currency to another, we need currency exchange centers, and they charge fees for it. Now given a list of informations of these centers, you are supposed to find a collection of the centers so that we can make change between any two currencies (directly or indirectly) through them. Since such a kind of collection may not be unique, you must find the one with the minimum total fees; and if there are still

SpringBoot与消息

我与影子孤独终老i 提交于 2020-02-07 03:05:15
消息服务的两个重要概念: 1.消息代理 2.目的地 目的地有两种: a.队列:点对点消息通信:消息只有唯一的发送者和接受者,但不是只有一个接收者,也就是说发送者发送的消息可以被多个接收者接收,但信息被其中一个接收者接受后,其他接收者不可接受。 b.主题:发布/订阅消息通信:发送者将消息发送到主题,这个主题的所有订阅者会在消息到达时同时接收到消息。 当消息发送者发送消息以后,将由消息代理接管,消息代理保证消息传递到指定目的地。 消息规范: 1.JMS Java消息服务,不能跨平台、跨语言,实现:ActiveMQ、HornetMQ 2.AMQP 高级消息队列协议,实现:RabbitMQ Spring支持: 1.spring-jms提供了对JMS的支持;spring-rabbit提供了对AMQP的支持 2.需要ConnectionFactory的实现来连接消息代理 3.提供JmsTemplate、RabbitTemplate来发送消息 4.@JmsListener、@RabbitListener注解在方法上监听消息代理发布的消息 5.@EnableJms、@EnableRabbit开启支持 6.JmsAutoConfiguration、RabbitAutoConfiguration自动配置 RabbitMQ Exchange类型: 四种类型:direct、fanout、topic