exchange

RabbitMQ工作模型

梦想与她 提交于 2020-01-08 13:52:49
典型应用场景 1、跨系统的异步通信 人民银行二代支付系统,使用重量级消息队列 IBM MQ,异步,解耦,削峰都有体现。 2、应用内的同步变成异步 3、基于Pub/Sub模型实现的事件驱动 放款失败通知、提货通知、购买碎屏保 系统间同步数据 摒弃ELT(比如全量 同步商户数据); 摒弃API(比如定时增量获取用户、获取产品,变成增量广播)。 4、利用RabbitMQ实现事务的最终一致性。 基本介绍 AMQP协议 AMQP,即Advanced Message Queuing Protocol,一个提供统一消息服务的应用层标准高级消息队列协议,是应 用层协议的一个开放标准,为面向消息的中间件设计。基于此协议的客户端与消息中间件可传递消息,并不受客户 端/中间件同产品、不同的开发语言等条件的限制。 AMQP的实现有:RabbitMQ、OpenAMQ、Apache Qpid、Redhat Enterprise MRG、AMQP Infrastructure、 ØMQ、Zyre等。 RabbitMQ的特性 RabbitMQ使用Erlang语言编写,使用Mnesia数据库存储消息。 (1)可靠性(Reliability) RabbitMQ 使用一些机制来保证可靠性,如持久化、传输确认、发布确认。(2)灵活的路由(Flexible Routing) 在消息进入队列之前,通过 Exchange

RabbitMQ学习笔记:Event Exchange Plugin(事件交换器插件)rabbitmq-event-exchange

丶灬走出姿态 提交于 2020-01-07 20:29:03
客户端connection、channels、queues、consumers和系统其它部分自动生成的事件。例如,当一个connection被接受,虚拟主机通过了验证授权,将会发送一个connection_created事件,当一个connection关闭或者由于其它原因失败,将会发送一个connection_closed事件。RabbitMQ提供了一个最小的事件通知机制向RabbitMQ客户端公开。 rabbitmq-event-exchange插件 rabbitmq-event-exchange是一个消费内部事件并且重新发送到一个topic exchange的插件,因此可以展示事件给客户端应用程序。 为了消费事件,应用程序需要声明一个队列,并绑定到一个系统指定的交换器去消费消息。 插件在默认的虚拟主机上声明了一个topic类型的exchange(交换器)amq.rabbitmq.event。所有的事件都会发送到这个exchange上并绑定一个路由键,比如,exchange.created、binding.deleted。所以你可以只订阅你关注的事件。 交换器的行为类似amq.rabbitmq.log,所有的信息都发布到这里,如果用户没有经过授权,你可以拒绝它们访问。 每个事件都有与之关联的各种属性,它们被转换成AMQP 0-9-1数据编码并插入到消息头中。消息的正文始终为空。

批量导入Exchange邮箱用户头像

旧巷老猫 提交于 2020-01-07 18:40:17
1、首先,我们像批量开启帐号的方法一样,利用CSV文件编辑好要配置邮箱头像的帐号,如下图所示: 2、接着呢,我们将对应员工照片放入对应存放路径,如下图所示: 3、制作PowerShell脚本,以实现批量导入功能,脚本内容及存放位置如下: Import-Csv -path C:\Usert\csuet.csv -encoding default | %{Set-UserPhoto $ .Account -PictureData([System.IO.File]::ReadAllBytes("C:\Usert\"+$ .Account+".jpg")) -Confirm:$false} 注意修改上面脚本里的路径奥。 4、操作前先验证邮箱是否有照片,如下图所示。 5、开始执行导入照片脚本,方法如下图所示: 6、等待上图脚本执行完成后,我们来验证是否导入照片,从验证结果中 至此我们已经完成了批量导入了邮箱用户的头像。 来源: 51CTO 作者: IT圈老男孩 链接: https://blog.51cto.com/itsoul/2059822

SpringCloud Gateway 获取 request body response write

允我心安 提交于 2020-01-05 00:21:15
话不多说,直接上码 /** * @author liuhanling * @create 2018-12-14 20:01 * @desc */ @Slf4j @Component public class RequestBodyFilter implements GatewayFilter, Ordered { private static final String CACHE_REQUEST_BODY_OBJECT_KEY = "cachedRequestBodyObject"; @Override @SuppressWarnings("unchecked") public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) { Class inClass = String.class; ServerRequest serverRequest = new DefaultServerRequest(exchange); ServerHttpRequest request = exchange.getRequest(); //只记录 http 请求(包含 https) String schema = request.getURI().getScheme(); if ((!"http"

快速学习-Spring AMQP

谁都会走 提交于 2020-01-04 09:33:08
3.Spring AMQP 3.1.简介 Sprin有很多不同的项目,其中就有对AMQP的支持: Spring AMQP的页面:http://spring.io/projects/spring-amqp 注意这里一段描述: ​ Spring-amqp是对AMQP协议的抽象实现,而spring-rabbit 是对协议的具体实现,也是目前的唯一实现。底层使用的就是RabbitMQ。 2.2.依赖和配置 添加AMQP的启动器: < dependency > < groupId > org.springframework.boot </ groupId > < artifactId > spring-boot-starter-amqp </ artifactId > </ dependency > 在 application.yml 中添加RabbitMQ地址: spring : rabbitmq : host : 192.168.56.101 username : leyou password : leyou virtual-host : /leyou 2.3.监听者 在SpringAmqp中,对消息的消费者进行了封装和抽象,一个普通的JavaBean中的普通方法,只要通过简单的注解,就可以成为一个消费者。 @Component public class Listener {

Spring AMQP 错误处理策略详解

核能气质少年 提交于 2020-01-04 00:07:03
1.介绍 异步消息传递是一种松耦合的分布式通信,在事件驱动体系结构实现中越来越受欢迎。幸运的是,Spring框架提供了Spring AMQP项目,可以帮助我们构建基于AMQP的消息传递解决方案。 另一方面,在这种环境中处理错误并不简单。本文将讨论错误处理策略。 2.配置环境 这里使用RabbitMQ实现AMQP标准。此外,Spring AMQP还提供了spring-rabbit模块,让集成更容易。 RabbitMQ作为独立服务器运行。执行下面命令,在Docker容器中运行: docker run -d -p 5672:5672 -p 15672:15672 --name my-rabbit rabbitmq:3-management 了解更多配置信息和项目依赖项设置,请参阅Spring AMQP教程。 3.失败场景 由于分布式特性,相比一个独立整体的应用程序,通常基于消息传递的系统发生的错误类型会更多。 下面列举了一些异常类型: 网络或I/O相关故障:网络连接和I/O操作故障; 协议或基础架构相关错误:消息传递基础架构配置错误; 代理(Broker)相关故障:客户端与AMQP代理之间配置不正确。例如,达到定义的限制或阈值、身份验证或策略配置无效。 应用程序和消息相关的异常:表现为违反某些业务或应用程序规则的异常; 当然,上述故障列表并不全面,但包含了最常见的错误类型。 应该注意到

Exchange 允许指定用户往指定通讯组发送邮件

廉价感情. 提交于 2020-01-03 18:52:17
上一篇写过:Exchange 限制指定用户往指定通讯组发送邮件 的文档 https://blog.51cto.com/zhaodongwei/2136094 此篇是允许指定用户或组的用户发到指定通讯组,下面命令使用AcceptMessagesOnlyFromSendersOrMembers 参数来设置 允许test邮件组里的用户往 TestGroup@satid.com 发送 Set-DistributionGroup TestGroup -AcceptMessagesOnlyFromSendersOrMembers test@satid.com 允许邮件组和用户往TestGroup@satid.com发送 Set-DistributionGroup TestGroup -AcceptMessagesOnlyFromSendersOrMembers test@satid.com,zhaodongwei@satid.com 没有发送权限的用户发送时,会提示如下图: 来源: 51CTO 作者: cix123 链接: https://blog.51cto.com/zhaodongwei/2412641

Exchange 2016 证书续期

血红的双手。 提交于 2020-01-03 18:49:22
查看证书指纹值 Get-ExchangeCertificate 在本地 Exchange 服务器上续订自签名证书 Get-ExchangeCertificate -Thumbprint BC37CBE2E59566BFF7D01FEAC9B6517841475F2D | New-ExchangeCertificate -Force -PrivateKeyExportable $true 已生成 把没用证书删除,在IIS里把证书选上 参考自: https://docs.microsoft.com/zh-cn/Exchange/architecture/client-access/renew-certificates?view=exchserver-2019 来源: 51CTO 作者: cix123 链接: https://blog.51cto.com/zhaodongwei/2414212

Exchange OWA设置邮件转发到外网邮箱

僤鯓⒐⒋嵵緔 提交于 2020-01-03 18:43:31
用户登录owa,通过 收件箱和整理规则,设置所有邮件的转发。转发内部地址可以成功。外网无法送达。 经查询,需要开启 启用自动转发。把 AutoForwardEnabled 设为True Exchange2010 控制台 Exchange2016 shell控制台 来源: 51CTO 作者: cix123 链接: https://blog.51cto.com/zhaodongwei/2464161

exchange 邮件发送

℡╲_俬逩灬. 提交于 2020-01-03 05:35:39
封装发送Exchange邮箱的工具 package com . tbc . app . im . util ; import lombok . Data ; import lombok . extern . slf4j . Slf4j ; import microsoft . exchange . webservices . data . core . ExchangeService ; import microsoft . exchange . webservices . data . core . enumeration . misc . ExchangeVersion ; import microsoft . exchange . webservices . data . core . exception . service . local . ServiceLocalException ; import microsoft . exchange . webservices . data . core . service . item . EmailMessage ; import microsoft . exchange . webservices . data . credential . ExchangeCredentials ; import microsoft .