问题概览目前主流的消息队列技术(MQ技术)分为RabbitMQ和Kafka,其中深蓝色为只要是MQ,一般都会问到的问题。浅蓝色是针对RabbitMQ的特性的问题。蓝紫色为针对Kafka的特性的问题。MQ的应用场景MQ主要提供的功能为:异步解耦削峰。展开来讲就是异步发送(验证码、短信、邮件…)MYSQL和Redis/ES之间的数据同步分布式事务削峰填谷RabbitMQ如何保证消息不丢失RabbitMQ的工作流程应该如下,其中每个环节都可能导致消息丢失。publisher叫做发布者,也可叫做生产者。consumer叫做消费者。生产者确认机制(解决消息未到达交换机或队列的问题)生产者确认机制是用来确
延迟队列是指当消息被发送以后,并不是立即执行,而是等待特定的时间后,消费者才会执行该消息。延迟队列的使用场景有以下几种:未按时支付的订单,30分钟过期之后取消订单。给活跃度比较低的用户间隔N天之后推送消息,提高活跃度。新注册会员的用户,等待几分钟之后发送欢迎邮件等。一、如何实现延迟队列?延迟队列有以下两种实现方式:通过消息过期后进入死信交换器,再由交换器转发到延迟消费队列,实现延迟功能;使用官方提供的延迟插件实现延迟功能。早期,大部分公司都会采用第一种方式,而随着RabbitMQ3.5.7(2015年底发布)的延迟插件的发布,因为其使用更简单、更方便,所以它现在才是大家普通会采用的,实现延迟队
目录一、介绍1.概述2.作用及优势3.工作原理二、交换机Exchange1. Direct2.Topic3. Fanout三、代码案例消费者代码 1.直连direct 生产者代码测试2. 主题topic 生产者代码测试3. 扇形fanout 生产者代码测试每篇一获一、介绍1.概述RabbitMQ中的交换机(exchange)是消息的分发中心,它接收来自生产者的消息,并将这些消息路由到一个或多个队列中。交换机根据消息的路由键(routingkey)将消息发送到相应的队列中。四型交换机直连交换机(directexchange):直连交换机根据消息的路由键将消息发送到与之匹配的队列中。如果消息的路
1.集群角色 zookeeper集群下,有3种角色,分别是领导者(Leader)、跟随着(Follower)、观察者(Observer)。接下来我们分别看一下这三种角色的作用。领导者(Leader): 事务请求(写操作)的唯一调度者和处理者,保证集群事务处理的顺序性; 集群内部各个服务器的调度者。对于create、setData、delete等有写操作的请求,则要统一转发给leader处理,leader需要决定编号、执行操作,这个过程称为事务。跟随着(Follower) 处理客户端非事务(读操作)请求(可以直接响应)。 转发事务请求
目录一、高可用(HA)的背景知识1.1 单点故障1.2 如何解决单点故障 1.2.1主备集群 1.2.2 Active、Standby1.2.3 高可用1.2.4 集群可用性评判标准(x 个 9)1.3 HA 系统设计核心问题 1.3.1脑裂问题 1.3.2数据状态同步问题二、NAMENODE 单点故障问题 2.1概述 2.2解决 三、HDFSHA 解决方案--QJM3.1QJM—主备切换、脑裂问题解决3.1.1 ZKFailoverController(zkfc)3.1.2 Fencing(隔离)机制 3.2 主备数据状态同步问题解决 四、HDFSHA 集群搭建 4.1 HA 集群规划 4
1.概述Redis集群是一个提供在多个Redis间节点间共享数据的程序集。Redis集群并不支持处理多个keys的命令,因为这需要在不同的节点间移动数据,从而达不到像Redis那样的性能,在高负载的情况下可能会导致不可预料的错误。Redis集群通过分区来提供一定程度的可用性,在实际环境中当某个节点宕机或者不可达的情况下继续处理命令。Redis集群的优势:自动分割数据到不同的节点上。整个集群的部分节点失败或者不可达的情况下能够继续处理命令。2.获取资源及上传首先通过命令获取redis安装包:wgethttps://download.redis.io/releases/redis-6.2.6.ta
一、引言1、、消息队列Ⅰ、什么是消息队列? 消息队列是一种进程间通信或同一进程的不同线程间的通信方式,软件的贮列用来处理一系列的输入,通常是来自用户。消息队列提供了异步的通信协议,每一个贮列中的纪录包含详细说明的数据,包含发生的时间,输入设备的种类,以及特定的输入参数。也就是说:消息的发送者和接收者不需要同时与消息队列交互。消息会保存在队列中,直到接收者取回它。Ⅱ、Messagequeue释义 服务之间最常见的通信方式是直接调用彼此来通信,消息从一端发出后立即就可以达到另一端,称为即时消息通讯(同步通信)消息从某一端发出后,首先进入一个容器进行临时存储,当达到某种条
目录一、介绍1.概述2.作用3.工作原理二、RabbitMQ安装部署1.安装2.部署3.增加用户三、实现案例1.项目创建2.项目配置3.生产者代码4.消费者代码四、测试每篇一获一、介绍1.概述RabbitMQ 是一种开源的消息代理和队列服务器,用于通过简单和可扩展的方式在分布式系统中传递消息。它实现了高级消息队列协议(AMQP)。服务之间最常见的通信方式是直接调用彼此来通信,消息从一端发出后立即就可以达到另一端,称为即时消息通讯(同步通信)消息从某一端发出后,首先进入一个容器进行临时存储,当达到某种条件后,再由这个容器发送 给另一端,称为延迟消息通讯(异步通信)一个提供统一消息服务的应用层标准
🎉🎉欢迎来到我的CSDN主页!🎉🎉🏅我是Java方文山,一个在CSDN分享笔记的博主。📚📚🌟推荐给大家我的专栏《RabbitMQ实战》。🎯🎯👉点击这里,就可以查看我的主页啦!👇👇Java方文山的个人主页🎁如果感觉还不错的话请给我点赞吧!🎁🎁💖期待你的加入,一起学习,一起进步!💖💖目录✨前言什么是交换机使用交换机的好处一、交换机(Exchange)的类型1.直连交换机:DirectExchange2.主题交换机:TopicExchange3.扇形交换机:FanoutExchange4.首部交换机:Headersexchange5.默认交换机:DefaultExchange6.死信交换机:Dead
hbase历险记目录hbase历险记寻找问题分析原因解决方案方案1(资源问题、失败)方案2(成功)寻找问题 不知道你是不是有这样的疑惑。我kylin是个单机,我使用的hbase是个集群,但内存全在某一台机器上了。其实,这里kylin是单机还是集群都无所谓的,但hbase作为存储,为什么集群内存占用到了一台。 我就在hbaseshell中使用了hbase负载均衡的命令balance_switchtrue 过了一会发现并没有用。 我就用knox做了网关,把hbase的页面信息代理了出来,进去浏览了一圈发现了 通过网上的寻找,就是它。分析原因