rabbitMQ实战

rabbitmq整合springAMQP实战

2019-07-06 19:21:15

阅读数 11

评论数 0

TTL以及死信队列

TTL是time to live的缩写 也就是生存时间 rabbitmq支 持消息过期时间,在消息发送时候可以进行指定 rabbitmq支持队列过期时间,从消息入队列开始计算,只要超过了队列的超时设置,那么消息会自动消除 死信队列:DXL 利用DXL,当消息在一个队列中变成死信...

2019-07-06 16:35:19

阅读数 7

评论数 0

消费端ACK与重回队列

消费端的手工ACK和NACK(确认·处理失败) 消费端进行消费的时候,如果由于业务异常我们可以进行日志的记录,然后进行补偿 (如果多次nack,我们可以先发送ack 然后日志记录 后面坐人工补偿)—— 如果由于服务器宕机等严重问题 那我们需要手工进行ack保障消费成功 消费端的重回...

2019-07-06 14:29:16

阅读数 101

评论数 0

消费端限流

什么是消费端的限流 假设一个场景,首先我们rabbitmq服务器上面有上万条没有处理的消息,我们随便打开一个消费者客户端,会出现下面情况: 巨量消息瞬间全部推送过来,但是我们当个客户端没有办法进行处理这么多的数据,可能会造成服务器宕机。 rabbitmq提供一种qos(服务质量保证)功能...

2019-07-06 10:34:10

阅读数 10

评论数 0

消费端自定义监听

我们一般就是在代码中编写while循环,进行consumer.nextDelivery方法进行获取吓一跳消息,然后进行消息处理。 但是我们使用自定义的consumer更加方便,解耦行更加强,也是实际工作中最常见的使用方法。 主要是继承defaultconsumer类,然后实现 handle...

2019-07-02 15:15:05

阅读数 18

评论数 0

confirm 确认消息 return 返回消息

//1.创建一个ConnectionFactory,并进行配置。 ConnectionFactory connectionFactory = new ConnectionFactory(); connectionFactory .setHost("192.168.11.76")...

2019-06-30 15:40:09

阅读数 19

评论数 0

幂等性

幂等性:可能你对一件事情进行操作,这个操作可能要执行多次,那么最终操作的结果都是相同的。好像执行一条sql语句,执行多次之后结果都是一致的。 我们可以借鉴数据库的乐观锁的机制:比如我们要执行更新一条库存的sql语句 update T_REPS set count = count-1,verso...

2019-06-29 21:57:13

阅读数 126

评论数 0

消息如何保证100%的投递成功

什么是生产端的可靠性投递 保障消息的成功发出 保障MQ节点的成功接收 发送端收到MQ节点(broke)确认应答 完善的消息补偿机制 消息落库,对消息状态进行打标记 消息的延迟投递,做二次确认,回调检查 Q:事务?保证数据源一致 tcc 用补偿机制 设定一个time lock 分布...

2019-06-29 21:34:12

阅读数 79

评论数 6

rabbitmq进阶二

消息如何保障100%的投递成功 幂等性的概念详细介绍 在海量订单产生的业务高峰期,如何避免消息的重复消费问题 confirm 确认消息 return 返回消息 自定义消费者 消息的ACK与重新回队列 (就是消息签收问题) 消息限流(mq服务消息堆积,这个时候要通过消息限流,控制消费端一...

2019-06-29 19:46:09

阅读数 26

评论数 0

根据CPU核心数确定线程池并发线程数

在Java中,通过下面的代码,我们可以很容易地获取到系统可用的处理器核心数目: 1 Runtime.getRuntime().availableProcessors(); 基本原则是:应用程序的最小线程数应该等于可用的处理器核数。具体场景又分为以下两种情...

2019-06-02 12:28:37

阅读数 35

评论数 0

五月 牛客网Java

5.23从现在开始每天在牛客网上面刷关于Java相关的知识 准备好秋招: 这是五月份的 加油

2019-05-23 20:08:00

阅读数 10

评论数 0

Java版本KMP

Java版本KMP https://leetcode-cn.com/problems/implement-strstr/ import java.util.Scanner; import java.lang.reflect.InvocationHandler; import java.lan...

2019-05-22 20:20:36

阅读数 13

评论数 0

rabbitMQ入门

rabbitMQ整体架构模型是什么样子的 rabbitMQ消息是如何流转的 rabbitMQ安装与使用 命令行与管控台 rabbitMQ消息生产与消费(Java) rabbitMQ交换机详解 rabbitMQ队列 绑定 虚拟主机 消息 JMX rabbitMQ是一个开源的消息代理和队...

2019-05-14 16:09:33

阅读数 67

评论数 0

Redis之集群

节点,槽指派,命令执行,重新分片,转向,故障转移,消息 节点 一个redis集群中通常有多个节点组成,刚刚开始的时候每一个节点都是相互独立的,它们都是处于一个只包含自己的集合之中,然后各个节点之间需要通讯,所以用cluster meet <ip> <p...

2019-05-08 22:10:48

阅读数 16

评论数 0

Redis之哨兵

主从切换技术的方法是:当主服务器宕机后,需要手动把一台从服务器切换为主服务器,这就需要人工干预,费事费力,还会造成一段时间内服务不可用。这不是一种推荐的方式,更多时候,我们优先考虑哨兵模式。 一、哨兵模式概述 哨兵模式是一种特殊的模式,首先Redis提供了哨兵的命令,哨兵是一个独立的进程,作为...

2019-05-08 09:55:05

阅读数 35

评论数 0

Redis之复制(主从一致)

通过命令slaveof命令加ip 设定注定复制的主服务器 旧版复制只要是由两个部分组成的 同步:让从服务器的数据库状态更新至主服务器数据库状态 命令传播:将对主服务器的写改操作,传送给从服务器,使得主从服务器状态重写一致 同步: 从服务器向主服务器发送SYNC命令 主服务器创建子进程进...

2019-05-08 09:44:39

阅读数 28

评论数 0

Redis之服务器

命令请求过程 1.发送命令请求(在客户端中将命令转换为协议格式),然后通过链接到服务器的套接字,将协议格式的命令发送给服务器 2.读取命令请求 读取套接字中的协议格式的命令,然后放在客户端状态的输入缓冲区中。 对输入缓冲区中命令请求进行解析,然后更新命令参数以及命令个数。 调用命令执行器...

2019-05-08 08:53:44

阅读数 13

评论数 0

redis之redis客户端

redis服务器是典型的一对多服务器程序 一个服务器处理多个客户端 使用I/O多路复用技术实现的文件事件处理器,redis服务器采用单线程单进程处理命令请求,并与多个客户端进行网络通信。 1.redisserver有list* clients保存客户端状态 套接字描述 fd=-1或者...

2019-05-07 21:56:44

阅读数 21

评论数 0

redis之RDB持久化以及AOF持久化

redis是属于内存数据库,所有数据保存在内存中 服务器进程推出后则数据库状态清除 数据库状态:非空数据库和键值对 手动执行RDB保存 根据服务器配置选项定期执行RDB保存 生成一个经过压缩生成的二进制文件,将某一时刻数据库状态保存在RDB文件中,存储在磁盘上 ...

2019-05-06 18:06:40

阅读数 26

评论数 0

redis之单机数据库的实现

redis只要是由服务器和客户端组成的。 每一个服务器端都会有一个redisServer结构 struct redisServer{ redisDb *db;//一个数组,保存服务器所有的数据库 int sum;//数据库个数,默认是16个 } 每一个客户端都会有一个redisclie...

2019-05-06 16:01:01

阅读数 13

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭