高可用

Redis Sentinel 高可用部署实践集群

。_饼干妹妹 提交于 2019-12-03 04:40:12
一、Redis Sentinel 介绍 1、Sentinel 数据库环境搭建,从单机版到主备、再到多数据库集群,我们需要一个高可用的监控;比如Mysql中,我们可能会采用MHA来搭建我们的高可用数据库服务; 目前很多项目都用到了redis,比如我们采用1+2的模式,也就是一主两从;我们设置Redis主从复制,将主节点数据同步给从节点,从而达到: 1、主机异常宕机,从节点作为主节点顶上来,让服务正常运行,给运维留足时间; 2、采用读写分离,分担主节点的读压力; 那么Redis 怎么解决主节点宕机,从节点晋升成主节点,同时需要修改应用方的主节点地址,并且让所有从节点去复制新的主节点,整个过程不需要人工干预的问题? Redis官方给出了解决方案,就是使用Sentinel来动态监控redis节点,并组建高可用方案。 2、Redis Sentinel的高可用 Redis Sentinel是一个分布式架构,包含若干个Sentinel节点和Redis数据节点,每个Sentinel节点会对数据节点和其余Sentinel节点进行监控,当发现节点不可达时,会对节点做下线标识。 如果被标识的是主节点,他还会选择和其他Sentinel节点进行选举,当大多数的Sentinel节点都认为主节点不可达时,他们会重新选举出一个Sentinel节点来完成自动故障转移工作,同时将这个变化通知给Redis应用方。

[转帖]【MySQL+keepalived】用keepalived实现MySQL主主模式的高可用

本秂侑毒 提交于 2019-12-03 03:28:21
【MySQL+keepalived】用keepalived实现MySQL主主模式的高可用 https://www.jianshu.com/p/8694d07595bc 一、实验说明 MySQL主主模式,是两台MySQL数据库互为主从。 此实验是用keepalived实现MySQL主主模式的高可用,基于已经安装好了主主架构的MySQL,然后配置keepalived,验证高可用性! 二、实验环境 操作系统:CentOS 7.5 serverA:192.168.1.104 serverB: 192.168.1.105 VIP: 192.168.1.110 三、关闭selinux # setenforce 0 # sed -i 's/^SELINUX=.*/SELINUX=permissive/g' /etc/selinux/config 四、防火墙设置 firewalld和iptables二选一 五、软件安装 在serverA和serverB # yum -y install epel-release # yum -y install keepalived 六、在serverA配置keepalived # vim /etc/keepalived/keepalived.conf ########################################### !

k8s工作机制和组件

元气小坏坏 提交于 2019-12-03 01:40:45
Master节点: kuber-apiserver->资源增删改查等操作的唯一出口,也是集群控制的入口进程 Kube-controller-manager->k8s所有资源对象的自动化控制中心 Kube-scheduler->负责资源调度 Replication controller->通过模板来创建和复制pod,提供滚动伸缩和升级 node节点: kubelet->与master节点协作,是主节点的代理,负责pod容器的创建,启动,停止服务 默认情况下kubelet会向master注册自己,kubelet定期向主机节点汇报加入集群的Node的各类信息 Kube-proxy->kubernets services使用其将链路路由到Pod,作为外部负载均衡器使用,在一定数量的Pod之间均衡流量 Docker->kubernets使用容器技术来创建容器 Kubernetes主要由以下几个核心组件组成: etcd保存了整个集群的状态; apiserver提供了资源操作的唯一入口,并提供认证、授权、访问控制、API注册和发现等机制; controller manager负责维护集群的状态,比如故障检测、自动扩展、滚动更新等; scheduler负责资源的调度,按照预定的调度策略将Pod调度到相应的机器上; kubelet负责维护容器的生命周期,同时也负责Volume(CVI)和网络(CNI

Windows版本redis高可用方案探究

匿名 (未验证) 提交于 2019-12-03 00:43:02
Ŀ¼ 前言 前提 搭建redis主从 配置主redis-28380 配置从redis-23381 配置从redis-23382 将redis部署为服务 启动redis 配置哨兵 启动哨兵 主从自动切换 动态新增从库 程序连接redis高可用 总结 参考文档 本篇文章专注于讲解redis在windows环境下使用Redis Sentinel(哨兵)实现高可用方案。 想要在windows环境下实现redis高可用,先要准备以下材料或知识点。 redis 3.2.100 目前在windows版本最新的redis是3.2.100,可以到 这里 下载 Redis Sentinel redis本身不支持高可用方案,通过sentinel对redis进行监控进行主从监控及调节等。 下载的压缩文件内容如下图所示。 具体结构如下图所示 应用层连接redis集群,集群包括3个redis服务(1主2从)和3个哨兵。 哨兵用于监控主redis可用性。若长时间不可用,则哨兵进行投票选举出新的主redis。原来的主redis降级为从redis。哨兵会将所有redis的配置进行自动更新。 将redis复制一份。一个文件夹用于部署redis服务,一个文件夹用于部署哨兵。 规定redis服务端口为28380~28382。将redis.windiws-service.config改名为redis-28380.conf

高可用高并发的 9 种技术架构

匿名 (未验证) 提交于 2019-12-03 00:39:02
转载自 高可用高并发的 9 种技术架构 1、分层 分层是企业应用系统中最常见的一种架构模式,将系统在横向维度上切分成几个部分,每个部分负责一部分相对简单并比较单一的职责,然后通过上层对下层的依赖和调度组成一个完整的系统。 在网站的分层架构中,常见的为3层,即应用层、服务层、数据层。应用层具体负责业务和视图的展示;服务层为应用层提供服务支持;数据库提供数据存储访问服务,如数据库、缓存、文件、搜索引擎等。 分层架构是逻辑上的,在物理部署上,三层架构可以部署在同一个物理机器上,但是随着网站业务的发展,必然需要对已经分层的模块分离部署,即三层结构分别部署在不同的服务器上,是网站拥有更多的计算资源以应对越来越多的用户访问。 所以虽然分层架构模式最初的目的是规划软件清晰的逻辑结构以便于开发维护,但在网站的发展过程中,分层结构对网站支持高并发向分布式方向的发展至关重要。 2、冗余 网站需要7×24小时连续运行,那么就得有相应的冗余机制,以防某台机器宕掉时无法访问,而冗余则可以通过部署至少两台服务器构成一个集群实现服务高可用。数据库除了定期备份还需要实现冷热备份。甚至可以在全球范围内部署灾备数据中心。 3、分隔 如果说分层是将软件在横向方面进行切分,那么分隔就是在纵向方面对软件进行切分。 网站越大,功能越复杂,服务和数据处理的种类也越多,将这些不同的功能和服务分隔开来,包装成高内聚低耦合的模块单元

搭建 RabbitMQ Server 高可用集群

匿名 (未验证) 提交于 2019-12-03 00:20:01
搭建 RabbitMQ Server 高可用集群 阅读目录: 准备工作 搭建 RabbitMQ Server 单机版 RabbitMQ Server 高可用集群相关概念 搭建 RabbitMQ Server 高可用集群 搭建 HAProxy 负载均衡 因为公司测试服务器暂不能用,只能在自己电脑上重新搭建一下 RabbitMQ Server 高可用集群,正好把这个过程记录下来,以便日后查看。 公司测试服务器上的 RabbitMQ 集群,我搭建的是三台服务器,因为自己电脑空间有限,这边只能搭建两台服务器用作高可用集群,用的是 Vagrant 虚拟机管理工具。 环境介绍: RabbitMQ 节点 IP 地址 工作模式 node1 192.168.1.50 DISK CentOS 7.0 - 64λ node2 192.168.1.51 DISK CentOS 7.0 - 64λ 整体架构: 1. 准备工作 首先,在 node1 服务器上,修改 vi /etc/hostname : node1 在 node2 服务器上,修改 vi /etc/hostname : node2 然后在 node1 服务器上,修改 vi /etc/hosts : node1 192 .168 .1 .50 node2 192 .168 .1 .51 127 .0 .0 .1 node1 ::1 node1 在

漫谈互联网架构

匿名 (未验证) 提交于 2019-12-03 00:17:01
互联网的标准技术架构如下图所示,这张图基本上涵盖了互联网技术公司的大部分技术点,不同的公司只是在具体的技术实现上稍有差异,但不会跳出这个框架的范畴。 存储层技术SQL SQL即我们通常所说的关系数据。前几年NoSQL火了一阵子,很多人都理解为NoSQL是完全抛弃关系数据,全部采用非关系型数据。但经过几年的试验后,大家发现关系数据不可能完全被抛弃,NoSQL不是No SQL,而是Not Only SQL,即NoSQL是SQL的补充。 所以互联网行业也必须依赖关系数据,考虑到Oracle太贵,还需要专人维护,一般情况下互联网行业都是用MySQL、PostgreSQL这类开源数据库。这类数据库的特点是开源免费,拿来就用;但缺点是性能相比商业数据库要差一些。随着互联网业务的发展,性能要求越来越高,必然要面对一个问题:将数据拆分到多个数据库实例才能满足业务的性能需求(其实Oracle也一样,只是时间早晚的问题)。 数据库拆分满足了性能的要求,但带来了复杂度的问题:数据如何拆分、数据如何组合?这个复杂度的问题解决起来并不容易,如果每个业务都去实现一遍,重复造轮子将导致投入浪费、效率降低,业务开发想快都快不起来。 所以互联网公司流行的做法是业务发展到一定阶段后,就会将这部分功能独立成中间件,例如百度的DBProxy、淘宝的TDDL。不过这部分的技术要求很高,将分库分表做到自动化和平台化

Keepalived+Haproxy搭建高可用Web群集

匿名 (未验证) 提交于 2019-12-03 00:09:02
通过博文: Haproxy服务调优及配置内容详解 已经可以了解Haproxy服务的作用; 通过博文: 利用Keepalived实现双机热备详解 已经可以了解到Keepalived服务的作用; Haproxy服务是搭建群集调度的一种工具,性能好。但是现实环境中肯定需要和Keepalived服务一起使用,避免造成单点故障。 一、案例环境: 这篇博文其实跟博文: 搭建LVS(DR模式)+Keepalived高可用群集,可跟做!!! 差不多,只是把负责搭建群集环境的LVS换成了Haproxy。其实也没什么好写的,本意是不想写的。但是其中有几个知识点,必须要了解,否则这个环境不可能实现。 二、案例实施 案例实施大致步骤: 1.为了简单起见,每个服务器(不管是Web节点和是调度服务器),实际环境中,应该开启防火墙相关流量; 2.主调度服务器上安装Keepalived和Haproxy服务; 3.配置Web节点服务器,安装Web服务(APache、Nginx都可以)创建虚拟IP地址,所有配置都一样但是建议主页不要一样,这样能看出效果,实际环境中网站主页内容必须一样,可以搭建NFS服务器等来同步网页内容; 4.客户机测试访问主Haproxy服务器地址(能否访问到Web页面); 5.从调度服务器安装Keepalived和Haproxy服务; 6.客户机访问漂移IP地址(能否访问成功);

实现eureak高可用性及建立eureak服务注册中心及服务提供者

匿名 (未验证) 提交于 2019-12-03 00:08:02
在微服务架构这样的分布式环境中,我们需要充分的考虑发生故障的情况,所以在生产环境中我们必须对各个组件进行高可用部署。Eureka Server 的设计一开始就考虑了这个问题,在Eureka的服务治理设计中,所有的结点,既是服务提供方,也是服务消费方,服务注册中心也不例外。Eureka Server 的高可用实际上就是将自己作为服务向其他服务注册中心注册自己。这样就可以形成一组相互注册的服务注册中心,以实现服务清单的相互同步,达到高可用的效果。 具体实现方式:搭建一个双节点的服务注册中心集群 如A ,B两个注册中心,在建立时分别注册到本身,并相互注册。 实现方法一: 环境为Ubuntu IntellijIDE jdk1.8 步骤1:建立eureak-server注册中心 点击File ,New,Project,选择左侧的Spring Initializr,并配置好JDK版本(一定为jdk1.8)点击next, 默认不变,再点击next,选择右侧的Spring Cloud Discovery,对应选择左侧的Eureka Server,点击next,输入项目名,点击finish 。需要分别建立两个工程。 不需要配置pom.xml 在节点A和B中配置@EnableEurekaServer。 @EnableEurekaServer @SpringBootApplication public

搭建 RabbitMQ Server 高可用集群

旧巷老猫 提交于 2019-12-02 23:59:30
阅读目录: 准备工作 搭建 RabbitMQ Server 单机版 RabbitMQ Server 高可用集群相关概念 搭建 RabbitMQ Server 高可用集群 搭建 HAProxy 负载均衡 因为公司测试服务器暂不能用,只能在自己电脑上重新搭建一下 RabbitMQ Server 高可用集群,正好把这个过程记录下来,以便日后查看。 公司测试服务器上的 RabbitMQ 集群,我搭建的是三台服务器,因为自己电脑空间有限,这边只能搭建两台服务器用作高可用集群,用的是 Vagrant 虚拟机管理工具。 环境介绍: RabbitMQ 节点 IP 地址 工作模式 node1 192.168.1.50 DISK CentOS 7.0 - 64位 node2 192.168.1.51 DISK CentOS 7.0 - 64位 整体架构: 1. 准备工作 首先,在 node1 服务器上,修改 vi /etc/hostname : node1 在 node2 服务器上,修改 vi /etc/hostname : node2 然后在 node1 服务器上,修改 vi /etc/hosts : node1 192.168.1.50 node2 192.168.1.51 127.0.0.1 node1 ::1 node1 在 node2 服务器上,修改 vi /etc/hosts : 192