exchange

SpringCloudGateWay修改请求路径,从注册中心获得服务

匿名 (未验证) 提交于 2019-12-03 00:07:01
SpringCloudGateWay修改请求路径,从注册中心获得服务 @Resource private DiscoveryClient disClient ; @Resource private LoadBalancerClient loadBlance ; public Mono < Void > filter ( ServerWebExchange exchange , GatewayFilterChain chain ) { String contentType ; ServiceInstance serviceInstance = null ; boolean formdataType = false ; String postBody = "" ; String ip = "" ; String tokenID = "" ; ServerHttpRequest req = exchange . getRequest (); ServerHttpResponse rep = exchange . getResponse (); String path = req . getURI (). getPath (); String port = Integer . toString ( req . getURI (). getPort ()); URI requestUri =

RabbitMQ源码解析前奏--AMQP协议

匿名 (未验证) 提交于 2019-12-03 00:03:02
一、协议 AMQP协议分层类似于OSI或TCP/IP协议分层。从图中可以看出分三层: 图1 AMQP协议分层图 1、Model Layer 规范服务器端Broker的行为。 2、Session Layer 定义客户端与服务器端Broker的Context。 3、Transport Layer 传输二进制数据流。 二、模型 AMQP服务器Broker主要由Exchange和Message Queue组成,主要功能是Message的路由Routing和缓存Buffering。 图2 AMPQ服务器模型图 Exchange接受Producer发送的Message并根据不同路由算法将Message发送到Message Queue。 Message Queue会在Message不能被正常消费时将其缓存起来,但是当Consumer与Message Queue之间的连接通畅时,Message Queue将Message转发给Consumer。 Message由Header和Body组成,Header是由Producer添加的各种属性的集合,包括Message是否客被缓存、由哪个Message Queue接受、优先级是多少等。而Body是真正需要传输的APP数据。 Exchange与Message Queue之间的关联通过Binding来实现。Exchange在与多个Message

Rabbitmq的可靠消息投递

匿名 (未验证) 提交于 2019-12-03 00:00:02
一、背景 生产端向rabbitmq发送消息时,由于网络等原因可能导致消息发送失败。所以,rabbitmq必须有机制确保消息能准确到达mq,如果不能到达,必须反馈给生产端进行重发。 RabbitMQ消息的可靠性投递主要两种实现: 1、通过实现消费的重试机制,通过@Retryable来实现重试,可以设置重试次数和重试频率; 2、生产端实现消息可靠性投递。 两种方法消费端都可能收到重复消息,要求消费端必须实现幂等性消费。 二、消息投递到exchange的确认模式 rabbitmq的消息投递的过程为: producer ――> rabbitmq broker cluster ――> exchange ――> queue ――> consumer 1、生产端发送消息到rabbitmq broker cluster后,异步接受从rabbitmq返回的ack确认信息。 2、生产端收到返回的ack确认消息后,根据ack是true还是false,调用confirmCallback接口进行处理。 在application.yml中开启生产端confirm模式 spring : rabbitmq : publisher - confirms : true 实现ConfirmCallback接口中的confirm方法,ack为true表示消息发送成功,ack为false表示消息发送失败

SecureCRT SSH 失败 Key exchange failed 解决方法

匿名 (未验证) 提交于 2019-12-02 23:55:01
背景:SecureCRT 的SSH正常使用过程中,突然出现: Key exchange failed。 No compatible hostkey.The server supports these methods: RSA,rsa-sha2-512,rsa-sha2-256,ecdsa-sha2-nistp256,ssh-ed25519 解决步骤: 1.先是重启服务器的sshd:service sshd restart 2.删除secureCRT的SSH2.ini文件 3.重启secureCRT 4.恢复正常 备注:因为参考了网上的方法都没能恢复,这些操作是自己折腾搞得,哪一步奏效不太清楚,大家可以按步骤都试一下。 来源:博客园 作者: geekwade 链接:https://www.cnblogs.com/geekwade/p/11425246.html

Springboot接入RabbitMQ详细教程

匿名 (未验证) 提交于 2019-12-02 23:49:02
本文适用于对 RabbitMQ 有所了解的人,在此不讨论MQ的原理,只讨论如何接入。其实Spring Boot 集成 RabbitMQ 非常简单,本文章使用的是Spring Boot 提供了 spring-boot-starter-amqp 接下来将进入正题,六步轻松教你接入RabbitMQ 1.配置pom文件所依赖的主要jar包 <dependency> <groupId>org.springframework.amqp</groupId> <artifactId>spring-rabbit</artifactId> <version>2.0.4.RELEASE</version> </dependency> 2.配置文件(application.properties) ## rabbitmq spring.rabbitmq.host=127.0.0.1 spring.rabbitmq.port=5672 spring.rabbitmq.username=root spring.rabbitmq.password=root spring.rabbitmq.virtual-host=/ # rabbitmq消息确认 spring.rabbitmq.publisher-confirms=true spring.rabbitmq.publisher-returns=true ##

SpringBoot集成RabbitMQ

匿名 (未验证) 提交于 2019-12-02 23:45:01
下载带有管理界面的RabbitMQ Docker镜像 docker pull rabbitmq:3.7.7-management 然后创建并运行RabbitMQ容器 docker run -d --name rabbitmq3.7.7 -p 5672:5672 -p 15672:15672 -v `pwd`/data:/var/lib/rabbitmq --hostname myRabbit -e RABBITMQ_DEFAULT_VHOST=my_vhost -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=admin rabbitmq:3.7.7-management docker run -d --hostname rabbitmqhost --name rabbitmq3.6 --restart always -p 5672:5672 -p 15672:15672 -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=admin rabbitmq:3.6.15-management -d:后台运行 --hostname:设置容器的主机名 --name:容器命名 --restart always:开机启动 -p:端口号映射,前面是宿主机端口,后面是容器端口

商城-RabbitMQ及消息同步-Spring AMQP

匿名 (未验证) 提交于 2019-12-02 23:43:01
商城-RabbitMQ及消息同步-Spring AMQP 3.Spring AMQP 3.1.简介 3.2.依赖和配置 3.3.监听者 3.4.AmqpTemplate 3.5.测试代码 3.Spring AMQP 3.1.简介 Sprin有很多不同的项目,其中就有对AMQP的支持: Spring AMQP的页面: http://spring.io/projects/spring-amqp 注意这里一段描述: 3.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 3.3.监听者 在SpringAmqp中,对消息的消费者进行了封装和抽象,一个普通的JavaBean中的普通方法,只要通过简单的注解,就可以成为一个消费者。 @Component public class

RabbitMQ之Topic交换器模式开发

匿名 (未验证) 提交于 2019-12-02 23:43:01
Topic交换器,即主题模式,进行规则匹配。 一、Provider 配置文件 1 spring.application.name=provider 2 spring.rabbitmq.host=192.168.50.30 3 spring.rabbitmq.port=5672 4 spring.rabbitmq.username=rabbit 5 spring.rabbitmq.password=rabbit 6 #设置交换器名称 7 mq.config.exchange=log.topic 代码 1 public class UserSender { 2 @Autowired 3 private AmqpTemplate amqpTemplate; 4 5 @Value("${mq.config.exchange}") 6 private String exchange; 7 8 public void send(String msg) { 9 //交换器、路由键、消息 10 this.amqpTemplate.convertAndSend(this.exchange, "user.log.debug", msg); 11 this.amqpTemplate.convertAndSend(this.exchange, "user.log.info", msg); 12 } 13

RabbitMQ - mandatory参数

匿名 (未验证) 提交于 2019-12-02 23:36:01
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/mytt_10566/article/details/90741398 参考:<<RabbitMQ实战指南>> mandatory和immediate是channel.basicPublish方法中的两个参数,它们都有当消息传递过程中不可达目的地时将消息返回给生产者的功能。 RabbitMQ 3.0版本开始去掉了对immediate参数的支持,这里就不在讨论该参数。 1. 发送消息api: void basicPublish ( String exchange , String routingKey , BasicProperties props , byte [ ] body ) throws IOException ; void basicPublish ( String exchange , String routingKey , boolean mandatory , BasicProperties props , byte [ ] body ) throws IOException ; void basicPublish ( String exchange , String routingKey , boolean mandatory , boolean immediate

消息中间件RabbitMQ-RabbitMQ简介

匿名 (未验证) 提交于 2019-12-02 23:36:01
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/shenzhen_zsw/article/details/90745796 消息中间件RabbitMQ-RabbitMQ简介 RabbitMQ简介 1.1消息队列中间件简介 1.2什么是RabbitMQ 具体特点包括: 1.可靠性(Reliability) 2.灵活的路由(Flexible Routing) 3.消息集群(Clustering) 4.高可用(Highly Available Queues) 5.多种协议(Multi-protocol) 6.多语言客户端(Many Clients) 7.管理界面(Management UI) 8.跟踪机制(Tracing) 9.插件机制(Plugin System) 1.3架构图与主要概念 1.3.1架构图 1.3.2 主要概念 RabbitMQ简介 1.1消息队列中间件简介 1)异步处理; 2)应用解耦; 3)流量削锋; 4)消息通讯; 1.2什么是RabbitMQ RabbitMQ 是一个由 Erlang 语言开发的 AMQP 的开源实现。 AMQP :Advanced Message Queue,高级消息队列协议。它是应用层协议的一个开放标准,为面向消息的中间件设计,基于此协议的客户端与消息中间件可传递消息,并不受产品