怎样提高系统的可用性?
App的服务器,目前用的是微软的Azure,产品马上要上线了,想提高服务端的可用性。目前的配置如下
硬件:两台主机,一台Django应用程序服务器,一台数据库服务器
软件:负载均衡用的Nginx,消息队列RabbitMQ+Celery,它们与Django应用程序服务器共用一台主机
提高系统可用性,我能想到的是使用集群。
目前的想法是,增加两台主机,一台放Nginx和MQ,另一台用做应用程序服务器,这样在一定程序上提高应用程序服务器的可用性。后台代码更新时,可以先更新一台应用程序服务器,成功后,再更新另一台,这样更新过程中不会中断服务。对于数据库,做主备,主备数据库应该放在不同的主机上吗?另外,除了这些,提高系统的可用性还有哪些措施呢?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
一般思路如下:
1. 是否可以水平扩展, 可以创建集群. 如web的 基本都是无状态的 可以水平扩容搞个nginx就可以实现集群(其它的lvs haproxy都可以考虑).
2. 是否有接入单点, 可以考虑心跳与轮询的方式. 如lvs haproxy 之间可以做心跳检测,自动容灾.简单点的DNS轮询 ,zookeep等.
3. 是否有数据单点, 可以采用开源的一些解决方案,最简单的就是保证数据安全,多份部署,冷备.
现在设计服务都要考虑分布式的一个需求,之后迁移云平台都是非常简单的.
简单的说就是冗余