Nginx 配置 —— 高可用集群 CAP 原则 CAP原则又称CAP定理,指的是在一个分布式系统中,一致性(Consistency)、可用性(Availability)、分区容错性(Partition (等同于所有节点访问同一份最新的数据副本) 可用性(A): 在集群中一部分节点故障后,集群整体是否还能响应客户端的读写请求。 KeepAlived keepalived 是基于 vrrp 协议的一款高可用软件。keepalived 有一台主服务器和和多个备份服务器。 主要为了解决静态路由高可用问题。 使用 keepalived 配置主备模式的高可用 Nginx 集群 为了防止某一台 linux 服务器宕机,我们需要在两台服务器上都进行 Nginx 和 keepalived 的安装。
192.168.4.52 tntzabbix7-02 192.168.4.99 oceanbase高可用VIP数据库 oceanbase高可用数据库集群见其他文章,为zabbix7创建数据库 UJ5;u] 数据库具备VIP高可用能力 三、安装zabbix 1、准备主机 准备两台主机,关闭防火墙 systemctl stop firewalld && systemctl disable firewalld zabbix高可用切换时,备用主机10051端口关闭,可以利用此端口配置keepalived 配置01主机 安装keealived yum install -y keepalived 编写zabbix 高可用检测脚本 vi /etc/keepalived/check_zabbix.sh #! systemctl stop zabbix-server 刷新网页,切换为tntzabbix7-01 测试结论 高可用能力正常,满足需求。
Zabbix 有以下几个主要组件: Zabbix Server:是 Zabbix 软件的核心组件,Zabbix Agent 向其报告可用性、系统完整性信息和统计信息。 数据库使用外部已经部署好的 MySQL 高可用集群。 本文将会介绍在 Centos7 上通过源码编译安装的方式部署一套 Zabbix 高可用集群。 systemctl enable keepalived systemctl start keepalived 高可用验证 浏览器访问 Zabbix Web,可以看到此时访问的是 ACP-ZABBIX-SERVER 5.4 版本源码安装] (https://www.zabbix.com/documentation/current/manual/installation/install) [zabbix ha 官方推荐高可用集群
redis集群是一个由多个主从节点群组成的分布式服务器群,它具有复制、高可用和分片特性。 redis集群的性能和高可用性均优于之前版本的哨兵模式,且集群配置非常简单。 ? Redis高可用集群搭建 redis集群需要至少三个master节点,我们这里搭建三个master节点,并且给每个master再搭建一个slave节点,总共6个redis节点,这里用三台机器部署6个redis redis-cluster/8003/redis-8003.conf redis-server /usr/local/redis-cluster/8006/redis-8006.conf Redis高可用集群水平扩展 Redis3.0以后的版本虽然有了集群功能,提供了比之前版本的哨兵模式更高的性能与可用性,但是集群的水平扩展却比较麻烦,今天就来带大家看看redis高可用集群如何做水平扩展,原始集群(见下图)由6个节点组成
集群高可用 HDFS单节点架构存在的问题 HDFS单点架构存在一些问题,首先是NameNode内存受限,因为数据的元数据信息全部保存在NameNode内存中。 其次就是单点故障问题,主从架构的HDFS是依靠主节点NameNode来运转的,一旦主节点挂掉就会导致整个集群不可用。 NameNode High Availability(高可用)机制 NameNode High Availability高可用机制是Hadoop 2.x中提出的,用于解决NameNode单节点故障问题的方案 实现高可用,至少提供两台NameNode做热备:Active、Standby
一、Kubernetes 集群高可用 下载链接: 链接:https://pan.baidu.com/s/1U3UWaZSA5b5bf3QnR_XZGw 密码:2flw 1.1、环境准备 准备好五台虚拟机分别做为 /v1alpha1 kind: KubeProxyConfiguration featureGates: SupportIPVSProxyMode: true mode: ipvs 1.13、安装配置集群 coreos/flannel/master/Documentation/kube-flannel.yml kubectl apply -f kube-flannel.yml 1.14、将从节点加入集群 #---------------------Master 节点使用下面这条命令加入集群------------------------------# kubeadm join 192.168.1.170 -------------------------------------------------------# #------------------------Node 节点使用下面这条命令加入集群
Heartbeat项目是 Linux-HA 工程的一个组成部分,它实现了一个高可用集群系统。 心跳服务和集群通信是高可用集群的两个关键组件,在 Heartbeat 项目里,由 Heartbeat 模块实现了这两个功能。 Core) 双节点互备集群: 节点1:node1 node1.pjy.com 192.168.146.141 节点2:node2 node2.pjy.com 192.168.146.150 VIP地址: Heartbeat高可用集群/ 下载方法见 http://www.linuxidc.com/Linux/2013-07/87684.htm ------------------------------- --0a7add1d9996/ .
RabbitMQ 高可用集群搭建 1 集群简介 1.1 集群架构 当单台 RabbitMQ 服务器的处理消息的能力达到瓶颈时,此时可以通过 RabbitMQ 集群来进行扩展,从而达到提升吞吐量的目的 一个高可用,负载均衡的 RabbitMQ 集群架构应类似下图: 这里对上面的集群架构做一下解释说明: 首先一个基本的 RabbitMQ 集群不是高可用的,虽然集群共享队列,但在默认情况下,消息只会被路由到某一个节点的符合条件的队列上 HAProxy 同时支持四层和七层负载均衡,并基于单一进程的事件驱动模型,因此它可以支持非常高的井发连接数。 此时对外服务的 VIP 依然可用,代表已经成功地进行了故障转移。 官方文档 —— 高可用镜像队列:www.rabbitmq.com/ha.html HAProxy 官方配置手册:cbonte.github.io/haproxy-dco… KeepAlived 官方配置手册
在高可用(HA)系统中,当联系2个节点的“心跳线”断开时,本来为一整体、动作协调的HA系统,就分裂成为2个独立的个体。由于相互失去了联系,都以为是对方出了故障。 S 17:49 0:00 /usr/sbin/keepalived -D ---- 三、测试高可用 为了测试简单明了,修改主上面的主页为: [root@zhdy-02 ~]# vim /usr BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 00:0c:29:50:b7: vim /etc/keepalived/keepalived.conf priority 90 除了配置nginx的高可用,我们当然也可以配置mysql的高可用,前提是一定要保证双方的数据是一致的。
RabbitMQ 的高可用性 RabbitMQ 是比较有代表性的,因为是基于主从(非分布式)做高可用的 RabbitMQ 有三种模式:单机模式、普通集群模式、镜像集群模式。 普通集群模式(无高可用性) 普通集群模式,有服务器ABC,在服务器ABC上分别启动RabbitMQ实例,生产者生产消息1,随机发给某一实例A,实例BC 上记录消息1的原数据信息(比如消息1具体信息在示例 所以这个事儿就比较尴尬了,这就没有什么所谓的高可用性,这方案主要是提高吞吐量的,就是说让集群中多个节点来服务某个 queue 的读写操作。 镜像集群模式(高可用性) 这种模式,才是所谓的 RabbitMQ 的高可用模式。 那么如何开启这个镜像集群模式呢?
kafka高可用集群搭建 说明 这篇博文主要是为了后面的 elk 做准备,我们这里搭建一个 kafka 集群,使用2个节点,还是前面的节点。主要是为了后面做数据缓冲。 个分区数 num.recovery.threads.per.data.dir=1 每个数据目录用来日志恢复的线程数目 log.retention.hours=168 默认消息的最大持久化时间,168小时,7天 zookeeper.connection.timeout.ms=6000 设置zookeeper的连接超时时间 ---- vi config/zookeeper.properties 为了保证 kafka 的高可用 现在 kafka 可用确认生产消费是正常的了 容错测试集群可用性 虽然说两个节点的 kafka 正常启动了,我们还需要对他的可用性进行测试,保证到时候我们服务的一个高可用。 现在已经完成了我们的高可用测试,但是我们对 kafka 的管理老是通过命令行处理非常麻烦,然后给大家介绍一下 kafka 的可视化工具: kafkatool、或者可以使用 kafka-manager 可视化
Sentinel为Redis提供了高可用性架构,该部署架构可以在无需人工干预的情况下完成故障转移;同时也提供监控,通知等其他功能. 一. TILT 模式 redis sentinel 严重依赖计算机的时间功能: 比如说,为了判断一个实例是否可用, sentinel 会记录这个实例最后一次相应 PING 命令的时间,并将这个时间和当前时间进行对比 返回指定集群的ip和端口. sentinel get-master-addr-by-name <master name> 7. 删除指定master集群,sentinel不再对该集群进行监控 sentinel remove <name> 13. Sentinel集群的不足 1. 集群较难支持横向扩容,且单节点的容量是有限的。 2. 从节点并不能分担主节点的压力,在没有故障发生时是很浪费资源的. 3.
上面的这些问题在多数讲eureka集群教程里都没有说明白,上来就是配server相互注册,client添加所有的server地址,大大的误导了我一把。 专门从头新建了项目来看看到底eureka集群是该怎么配置。 server端配置 创建个eureka server项目 pom.xml如下: <? application: name: eureka profiles: active: server1 我用同一个项目打算启动两个server服务,占用不同的端口,以此模拟eureka服务集群 这是因为eureka是通过在各个节点进行复制来达到高可用的目的。 测试很简单,我们直接关掉server1,然后看看server2是否还能维持住client的发现。 下面我们可以测试一下把server端yml里配置register-with-eureka: false的那两行注释给放开,看看eureka的server忽略自己后,是否能完成服务发现的高可用。
集群架构图 先来简单说一下这个架构图,前段是两台nginx + keepalived的高可用负载均衡群集,对后面两个tracker服务器做负载均衡,然后最后端是由fastdfs组成的分布式存储池,通过tracker storage服务器 nginx fastdfs storage fastdfs相关模块 (两台机器,对等的两组 192.168.3.23/24) keepalived结合nginx做高可用的负载均衡 eq 0 ];then killall keepalived fi fi 注意:这个脚本存在一些问题,需要把 —no-header 去掉,否则nginx会报错,起不来,显示端口被占用 7) client.conf image.jpg 然后我们在访问tracker服务器,看是否能反向代理到后端storage上 2)测试负载均衡器 我们访问负载均衡器的VIP,来看下是否能访问 至此,,一个简单的fastdfs高可用的负载均衡集群已经搭建完毕
kubernetes 虽然具有故障自愈和容错能力,但某些组件的异常会导致整个集群不可用,生产环境中将其部署为高可用还是非常有必要的,本文会介绍如何构建一个高可用的 Kubernetes 集群。 apiserver 的高可用可以分为集群外高可用和集群内高可用。 集群内的高可用配置是指对于部署到集群中的 pod 访问 kubernetes,kubernetes 集群创建完成后默认会启动一个kubernetes的 service 供集群内的 pod 访问,service etcd 的高可用配置 etcd 是一个分布式集群,也是一个有状态的服务,其天生就是高可用的架构。为了防止 etcd 脑裂,其组成 etcd 集群的个数一般为奇数个(3 或 5 个节点) 。 apiserver 作为集群的核心组件,其必须高可用部署,其他组件实现高可用相对容易。
这样你可以通过web页面观察rabbitmq的status,端口号是15672,例如http://ip:15672 3、配置RabbitMQ集群 我们这里会展示如何配置一个RabbitMQ集群,集群由以下节点组成 要保证集群在同一个局域网,IP能通。 ? 1)安装好RabbitMQ 安装方法同上文。 ,当然这个时候还没有组成集群。 client10:加入到集群rabbit@bigdata-arch-client09 [root@bigdata-arch-client10 ~]#rabbitmqctl stop_app [root 4、HA配置 我们使用haproxy来代理配置高可用。 haproxy可以用来做代理,进行负载均衡和backend探活。支持TCP和HTTP模式。 关于haproxy的内容就不展开说了。
应用场景 Yahoo将Spark用在Audience Expansion中的应用,进行点击预测和即席查询等 淘宝技术团队使用了Spark来解决多次迭代的机器学习算法、高计算复杂度的算法等。 应用于内容推荐、社区发现等 腾讯大数据精准推荐借助Spark快速迭代的优势,实现了在“数据实时采集、算法实时训练、系统实时预测”的全流程实时并行高维算法,最终成功应用于广点通pCTR投放系统上。 ,要解决此问题,就要借助zookeeper,并且启动至少两个Master节点来实现高可靠 配置Spark集群之前一定要把zookper集群启动 Spark集群规划:hdp-01,hdp-02是Master ;hdp-03,hdp-04是Worker 安装配置zk集群,并启动zk集群 停止spark所有服务 集群中Master地址是不固定的 所以必须把export SPARK_MASTER_IP=hdp-01 spark-examples_2.11-2.2.0.jar 100 参数说明: --master spark://hdp-01:7077 指定Master的地址 --executor-memory 1G 指定每个worker可用内存为
计划分几篇文章把近一个月技术上的一些实践记录一下,这第一篇记录一下mongodb的高可用集群部署。 /x86_64/RPMS/mongodb-org-4.0.3-1.el7.x86_64.rpm \ https://repo.mongodb.org/yum/redhat/7/mongodb-org /4.0/x86_64/RPMS/mongodb-org-mongos-4.0.3-1.el7.x86_64.rpm \ https://repo.mongodb.org/yum/redhat/7/ /yum/redhat/7/mongodb-org/4.0/x86_64/RPMS/mongodb-org-tools-4.0.3-1.el7.x86_64.rpm 分别在每台机器建立conf、mongos systemctl restart mognod-shard3 systemctl restart mognod-config systemctl restart mognos 至此,整个mongodb高可用集群就搭建好了
Mysql高可用集群--MHA 强烈推介IDEA2020.2破解激活,IntelliJ MHA Manager 可以单独部署在一台独立机器上管理多个 master-slave 集群,也可以部署在一台 slave 上。 MHA Manager 探测集群的 node 节点,当发现 master 出现故障的时候,它可以自动将具有最新数据的 slave 提升为新的 master,然后将所有其它的 slave 指向新的 master ECDSA key fingerprint is SHA256:dnnDcAA2qVnA31i7mtr9LYJmH2veu2+r4t+19qUSqqw. relay-log=relay-log-bin relay-log-index=slave-relay-bin.index read-only=1 # 启动只读属性 relay-log-purge=0 # 高可用进行切换时
将配置好的activemq全部复制到其他服务器,启动ActiveMQ集群搭建就完成了 Master-Slave集群主要解决了单点故障的问题,Master-Slave集群中的一个节点挂掉,其他的节点任然可用 ,服务就任然可用。 initialReconnectDelay=100” 基于Broker-Cluster集群部署 Broker-Cluster集群通过网络连接,将多个broker组合,对外构成一个整体,集群之间共享队列和主题列表 Master-Slave集群解决了单点故障的问题,但是仍然只是一个节点处理所有请求。 Master-Slave与Broker-Cluster两者相结合的集群即可解决单点故障又可保证负载均衡,做到了高可靠和高可用。 ?