摘要:
在分布式系统中为了解决单点问题,通常会把数据复制多个副本部署到其他机器,满足故障恢复和负载均衡等需求。Redis也是如此,它为我们提供了复制功能,实现了相同数据的多个Redis副本。复制功能是高可用Redis的基础,哨兵和集群也都是在复制的基础上实现高可用的。 1、配置复制 从节点配置文件可能要配置 阅读全文
摘要:
Redis支持RDB和AOF两种持久化机制,持久化功能有效地避免因进程退出造成的数据丢失问题,当下次重启时利用之前持久化的文件即可实现数据恢复。 1、RDB RDB持久化是把当前进程数据生成快照保存到硬盘的过程,触发RDB持久化过程分为手动触发和自动触发。 1.1、触发机制 手动触发分别对应save 阅读全文
摘要:
1、客户端通信协议 几乎所有的主流编程语言都有Redis的客户端(http://redis.io/clients),不考虑Redis非常流行的原因,如果站在技术的角度看原因还有两个: 第一,客户端与服务端之间的通信协议是在TCP协议之上构建的。 第二,Redis制定了RESP(REdis Seria 阅读全文
摘要:
Redis提供的5种数据结构已经足够强大,但除此之外,Redis还提供了诸如慢查询分析、功能强大的Redis Shell、Pipeline、事务与Lua脚本、Bitmaps、HyperLogLog、发布订阅、GEO等附加功能。 慢查询分析:通过慢查询分析,找到有问题的命令进行优化。 Redis Sh 阅读全文
摘要:
1、Redis基础 1.1、redis-cli操作redis的方式 redis-cli有两种方式连接Redis服务器,并进行数据操作。 第一种方式是将命令作为redis-cli的参数执行(命令行方式)。 第二种方式是不带参数运行redis-cli,进入交互模式(交互式方式)。 redis-cli [ 阅读全文
摘要:
Redis约定次版本号(即第一个小数点后的数字)为偶数的版本是稳定版(如2.8版、3.0版),奇数版本是非稳定版(如2.7版、2.9版),生产环境下一般需要使用稳定版本。 1、编译安装redis(单机模式) 1.1、部署环境 软件版本 Redis:redis-6.0.16.tar.gz 系统环境 1 阅读全文
摘要:
Redis是一种基于键值对(key-value)的NoSQL数据库。 与很多键值对数据库不同的是,Redis中的值可以是由string(字符串)、hash(哈希)、list(列表)、set(集合)、zset(有序集合)、Bitmaps(位图)、HyperLogLog、GEO(地理信息定位)等多种数据 阅读全文
摘要:
keepalived,原生设计的目的为了高可用ipvs服务。 基于vrrp协议完成IP地址飘移。 基于ipvs模块生成ipvs规则(在配置文件中预先定义)。 检查器根据后端服务器的状态,动态的调整ipvs规则。 keepalived通过调用接口,可以执行外部脚本,并根据外部脚本的执行状态码,可以动态 阅读全文
摘要:
1、keepalived配置文件的概述 keepalived.conf是keepalived的配置文件。 关键字被放置在块和子块的层次结构中,每一层由“{”和“}”对分隔。 注释符:'#'或'!'。 include:允许主配置文件加载其他配置文件。 #FILENAME可以是一个绝对或相对路径,并且可 阅读全文
摘要:
https://www.keepalived.org https://github.com/acassen/keepalived 1、安装keepalived(yum) keepalived主网站不提供任何Linux发行版的软件包,它只提供源代码和代码库。 大多数Linux发行版都提供keepali 阅读全文
摘要:
1、高可用概述 HA Cluster实现方案: heartbeat和corosync一般用于高可用任何常见服务的。 keepalived原生设计的目的是为了高可用ipvs。 网络分区(Network partition) 隔离类型有两种: node:STONITH(Shooting The Othe 阅读全文
摘要:
1、HAProxy简介 HAProxy是使用C语言编写的开源软件,提供双机热备、高可用、负载均衡、虚拟主机、基于TCP(四层)和HTTP(七层)的应用代理、图形界面查看信息等功能。 HAProxy配置简单、维护方便,而且可以对后端服务器进行健康状态检测(相当于keepalived健康状态检测)。 当 阅读全文
摘要:
HAProxy管理指南(management.txt):version 2.5 https://www.haproxy.org/download/2.5/doc/management.txt 1、启动HAProxy HAProxy是一个多线程的、事件驱动的、非阻塞守护进程。大多数时候它作为一个单独的 阅读全文
摘要:
HAProxy配置手册(configuration.txt):version 2.5 2022/05/13 https://www.haproxy.org/download/2.5/doc/configuration.txt 1、HTTP介绍 当HAProxy在HTTP模式下运行时,请求和响应都被完 阅读全文
摘要:
1、RabbitMQ网址 RabbitMQ官网:https://www.rabbitmq.com/ Github地址:https://github.com/rabbitmq/rabbitmq-server RabbitMQ的rabbitmq-env.conf文件:https://www.rabbit 阅读全文
摘要:
1、HAProxy安装(二进制) 1.1、部署环境 软件版本 lua:5.4.3 haproxy:2.5.6 系统环境 192.168.1.101:CentOSLinuxrelease7.7.1908(Core) 192.168.1.102:CentOSLinuxrelease7.7.1908(Co 阅读全文
摘要:
1、消息追踪 在使用任何消息中间件的过程中,难免会出现消息异常丢失的情况。 可能是生产者与Broker断开了连接并且也没有任何重试机制。 可能是消费者在处理消息时发生了异常,不过却提前进行了ack。 可能是交换器并没有与任何队列进行绑定,生产者感知不到或者没有采取相应的措施。 可能是RabbitMQ 阅读全文
摘要:
1、网络分区的意义 RabbitMQ集群的网络分区的容错性并不是很高,一般都是使用Federation或者Shovel来解决广域网中的使用问题。不过即使是在局域网环境下,网络分区也不可能完全避免,网络设备(比如中继设备、网卡)出现故障也会导致网络分区。 当出现网络分区时,不同分区里的节点会认为不属于 阅读全文
摘要:
1、存储机制 持久化消息和非持久化消息都可以被写入到磁盘。 持久化消息一到达队列就会被写入磁盘。持久化消息会尽可能地保存在内存中,这样可以提高一定的性能,但当内存吃紧时会从内存中清除。 非持久化消息一般只会保存在内存中,但在内存吃紧时也会被写入到磁盘中,以节省内存空间。 将持久化消息和非持久化消息存 阅读全文
摘要:
RabbitMQ可以通过3种方式实现分布式部署:集群、Federation和Shovel。这3种方式不是互斥的,可以根据需要选择其中的一种或者以几种的组合来达到分布式部署的目的。 Federation和Shovel可以为RabbitMQ的分布式部署提供更高的灵活性,但同时也提高了部署的复杂性。 1、 阅读全文