关于mysql多机房部署那点事儿_多机房部署的问题

本文探讨了异地多活部署中的技术挑战,包括请求路由、会话保持、数据同步、服务调用等问题,并提出相应解决方案。面对机房间的延迟,通过路由网关、读写分离、双写策略等方式保证系统的高可用性和数据一致性。
摘要由CSDN通过智能技术生成

什么是异地多活?

为了保证系统能够对机房级别的故障进行容错,不会使系统不可用,这就需要在机房级别对系统进行冗余处理。而这就需要在架构上进行良好的设计。来面对多机房场景下的技术挑战。事实上,异地多活最大的挑战在于机房之间的物理距离更远,数据传输的延迟已经不能忽略。在网络普遍延迟的情况下,如何根据业务特性设计高可用的性能达标的分布式系统,将是最大的挑战。

需要面对怎样的技术挑战?

请求如何路由,如何实现会话保持?

在跨机房部署项目时,第一个面对的问题就是在多个机房之间,请求如何选择一个机房分发,并且当相同用户的第二次请求又如何再次访问相同的会话?

2. 数据存储服务如何同步?

业务方依赖数据存储服务,列如数据库与缓存。在A机房更新的数据,如果其他业务需要,那么在B机房也应该能访问的到。

3. 是否可以跨机房服务调用?延迟提高,占据更多的网络带宽怎么办?

对于多机房部署,应该尽量避免跨机房调用。多机房部署最大的问题应该就是网络延迟,不能忽略的网络延迟。跨地区的异地多活更是如此,一般不低于10ms的延迟。

当某个机房不可用时,需将该机房的流量切入另一个机房,那么每个机房要预留多少存储与计算资源?异地多活是一个分布式系统的高可用解决方案,他的引入就是当发生机房级别故障时不会发生整个系统的瘫痪不可用。允许将不可用的机房流量,切换到其他的可用机房。

4. 一些devops组件如何支持跨机房部署环境?

监控系统,部署系统等如何汇总所有机房的数据,还是将其区分开?

5. 对于强一致性业务如何保证?

列如,交易订单,库余额等业务来说,要求一定的数据实时一致性,当用户在A机房下单,A机房不可用。用户被转入B机房继续业务流程,这是用户订单数据没有同步。系统判断在下一单,用户重新扣款,支付了两次,这时A机房恢复,数据同步会造成数据冲突?这又如何解决呢&#x

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值