高可用和集群的关系

这里我要探讨的是高可用和集群之间的关系:

集群 :

以FastDFS为例,当文件需要上传到FastDFS,文件特别大时,会把文件切成各个小的部分,分别存储到各group1,2,3...N中,这样就实现了一个机子装不下一个大文件而搭建集群可以把文件分散存储的功能,这就时集群的场景之一,类似的还有

下面介绍的主主关系,常见的有Redis集群,数据库分库分表,这都可以通过搭建集群来实现,一群机器来实现负载均衡。简单的说,集群就是多台机器做同一件事情

高可用:

在两台服务器设置两个服务(主/备),通过虚拟IP对外提供唯一当访问IP。正常情况下访问主服务;当主服务宕机后,自动切换到备份服务上,继续对外提供访问服务。下面也提到了,主从中的从机也是备份了主节点的数据,数据冗余,起到了容灾的作用

一般来说为了保证系统的鲁棒性,高可用和集群的模式可以同时应用于系统当中,比如下面的FastDFS的架构中,多个groupX之间形成集群起到负载均衡的作用,而每个group里有有一个从节点来同步主节点的数据,起到容灾的效果,如果发生主节点宕机,从节点可以之间替代主节点工作,实现了高可用。

 

主从 主备 主主的介绍来自:https://www.cnblogs.com/tankblog/p/11190598.html

单点故障的情况不可避免,而且单副本的存储方案早已无法满足业务的可靠性要求,单机可靠性就就两个9,也就是一年大概有3.65天不可用。因此一般情况下我们至少也会上个双机存储架构。凡事最好有个plan B。

主备

主:主机,备:备机。
主机的意思当然是以它为主了,读写都是主机上,而备机呢就是备用,默默的在背后吸收主机的数据,时刻待命着等待主机挂了之后取而代之(没这么坏哈哈)。因此在主机还活着的情况下,备机的唯一使命就是同步主机的数据,不对外提供服务

 

优点:简单,主备之间只有数据同步,不需要考虑别的情况。就很简单的配置一下,再搞一台服务器就能组成主备架构了。

缺点:备机等于就拿来备份,浪费了备机这台服务器的资源。上面说的不考虑别的情况指的是主机和备机它们两之间就只要复制数据,但是有些情况我们人还是得考虑的:主机挂了如何让备机上。

有三种选择

1.人工切换。人工切换时效性不高,出了事情首先你得开机,登录远程一阵啪啪得好几分钟或者万一你在LOL,黑铁晋级青铜最后一把努力了几个月即将晋升倔强青铜的一刻!是吧。还要万一在深夜或者说....是吧。

2.引入中间件。例如ZooKeeper、keepalived。就跟好多房东把房子委托给中介一样,这中间件就是个中介。全权由中介来打理主机和备机,它会根据机子状态来判别这时候是不是该备机上了。(建议)

3.主机备机之间状态传输(咱不找中介了,自己来打理),啥意思呢?就是除数据同步,主备之间还要有个状态传输过程,来让备机只要现在主机过得好不好,可以是主机主动推送它的状态给备机,或者是备机去索要状态。当状态拿不到或者不对的时候就开始主备切换。但是可能传输出现了波动啥的,导致备机误判了,然后备机升级为主机,这样就两主机了(下面会说主主的问题)。

主从

主:主机,从:从机

从机和备机的区别在于它得除了同步数据之外还得干活,对外提供读的操作,你可以理解为它是仆从。但是仆从和备机一样也有翻身做主人的一天,所以它也在默默的等待着主机挂了,取而代之。

image

优点:充分利用了资源,嘿嘿不想备机这么爽了,还得出来干活,对外提供读操作。而且在主机挂了的时候,如果没任命新机主之前,读操作还是能用的。

缺点:

1.客户端需要多个判断,也就是不同操作需要发放给不同服务器,我上图主机提供读写,有时候读写分离了,主机就提供写。

2.主从延迟,读操作分配给从库,就会存在数据同步的延迟问题,比如某个人注册了账号之后,登录走的是从机,这时候数据还未从主机同步过来,那可不让人很难受了。有关主从延迟问题的一些解决办法

3.和主备一样的切换问题。(参考主备)

主主

主主就是两台都是主机。同时对外提供读写操作。客户端任意访问提供的一台。

 

优点:主主的好处就是可以把写操作也分担一下,但是问题恰恰就出在写操作上,导致主主的架构有很大的局限性。

缺点:例如主机A有个注册的插入操作,生成的id是50,同一时刻主机B也有个插入操作生成的id也是50。然后它们之间的数据同步了,你说是谁覆盖谁呢?谁覆盖谁都不对!

因此主主只适用于可以双向复制,覆盖的数据(例如用户登录生成的token)。但是我们平日里绝大部分的数据都不允许。

 


 

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: PostgreSQL是一种开源的关系型数据库管理系统,它支持高可用集群部署,可以提供数据的持久性和可用性。以下是关于PostgreSQL高可用集群的装指南简述: 1. 集群环境准备:首先需要准备一组具有相同操作系统和网络配置的物理或虚拟机。确保集群中的所有节点都可以互相通信。 2. 安装和配置PostgreSQL:在每个节点上安装PostgreSQL软件,并在配置文件中设置适当的参数。确保所有节点的配置文件保持一致。 3. 数据同步和复制:为实现高可用性,需要使用PostgreSQL内置的复制功能。使用流复制或逻辑复制将数据从主节点复制到备份节点。 4. 主备切换和故障恢复:在主节点发生故障时,需要手动或自动触发主备切换。保证备份节点可以接管主节点的功能,并尽快恢复服务。 5. 自动化监控和管理:为了更好地管理和监控集群,可以使用一些工具和脚本来自动化任务,例如监控节点状态、日志检查和备份。 6. 容灾和故障转移:为了应对更严重的故障,可以在不同的地理位置设置多个节点,以实现容灾和故障转移。在这种情况下,需要考虑数据同步的延迟和网络带宽等因素。 7. 安全性和权限管理:在配置高可用集群时,务必考虑数据的安全性。设置适当的访问权限并实施加密和身份验证措施。 总之,PostgreSQL高可用集群的装指南包括安装和配置PostgreSQL、数据同步和复制、主备切换和故障恢复、自动化监控和管理、容灾和故障转移以及安全性和权限管理等内容。通过合理地设置和管理,可以确保PostgreSQL数据库具备高可用性和可靠性。 ### 回答2: PostgreSQL是一个开源的关系型数据库管理系统,它支持高可用集群配置,以确保数据库系统的可用性和容错性。以下是一个关于PostgreSQL高可用集群配置的装指南。 1.选择合适的架构:在配置PostgreSQL高可用集群之前,首先需要选择适合你的架构。常见的架构包括主-从复制、主-主复制和基于分布式数据库的架构。根据你的需求和资源预算选择适合的架构。 2.配置主-从复制:主-从复制是最简单和常见的PostgreSQL高可用架构。配置主-从复制需要设置一个主数据库和一个或多个从数据库。主数据库接收写入操作,并将更新传播给从数据库。配置主-从复制需要在主数据库和从数据库之间设置流复制。 3.配置主-主复制:主-主复制架构允许多个节点同时接收写入操作。这种架构可以提高系统的容错性和可用性。配置主-主复制需要设置多个相互同步的节点,并使用流复制来实现数据同步。需要注意的是,主-主复制可能导致数据冲突,因此需要进行一些额外的配置和管理。 4.配置自动故障转移:为了实现高可用性,当主节点遇到故障时,需要配置自动故障转移。自动故障转移可以自动将故障节点替换为备用节点,以确保数据库系统的连续性。可以使用软件工具或自定义脚本来实现自动故障转移。 5.监控和管理集群:为了确保高可用集群的稳定性和性能,需要定期监控和管理集群。可以使用PostgreSQL提供的监控工具,如pg_stat_replication和pg_stat_activity,来监控数据库状态和查询性能。另外,还可以使用第三方的监控工具来监控集群的运行状况。 以上是关于PostgreSQL高可用集群配置的一些基本指南。具体的配置方法和工具选择可能会因环境和需求而异,建议在实际操作中参考官方文档和相关资料,以确保配置正确和可靠。 ### 回答3: PostgreSQL是一种非常强大的开源数据库管理系统,在构建高可用集群时,可以采用以下指南: 1. 安装和配置PostgreSQL:首先,需要在每个节点上安装和配置PostgreSQL。可以从官方网站下载适用于您的操作系统的最新版本,并按照说明进行安装。确保在每个节点上进行相同的配置,包括数据库路径、监听地址和端口等。 2. 设置主从复制:在高可用集群中,通常会将一个节点作为主节点,其他节点作为从节点。主节点负责处理写操作,而从节点负责处理读操作。在主节点上进行设置,以使其将更改记录到WAL(Write-Ahead Log)并发送给从节点,从节点可以通过流复制技术将更改同步到自己的本地数据库。 3. 配置复制流:在从节点上配置复制流以接收主节点发送的更改。可以使用PostgreSQL提供的pg_basebackup工具来进行复制流设置。确保在从节点上指定主节点的地址和端口,并指定复制流的用户名和密码。 4. 配置故障切换:在高可用集群中,当主节点发生故障时,必须能够实现自动故障切换。这可以通过使用PostgreSQL的流复制和触发器来实现。可以编写一个触发器,当检测到主节点故障时,自动将一个从节点提升为新的主节点,并将其他从节点重新配置为复制新的主节点。 5. 监控和管理:在构建高可用集群时,需要定期监测各个节点的状态和性能。可以使用PostgreSQL自带的工具,如pg_stat_replication和pg_stat_activity来监控复制状态和数据库活动。此外,还可以使用第三方监控工具,如Zabbix或Nagios来实时监测集群的运行状态,并及时采取措施应对潜在的故障。 在配置和管理PostgreSQL高可用集群时,请确保备份数据库,定期更新软件版本,并遵循最佳实践和安全措施,以确保数据的完整性和可用性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值