40 | 软件部署实战(上):部署方案及负载均衡、高可用组件介绍
孔令飞
该思维导图由 AI 生成,仅供参考
你好,我是孔令飞。
接下来,我们就进入到这门课的最后一个模块,服务部署部分的学习。在这一模块中,我会带着你一步一步地部署一个生产级可用的 IAM 应用。
在 03 讲 中,我们快速在单机上部署了 IAM 系统,但这样的系统缺少高可用、弹性扩容等能力,是很脆弱的,遇到流量波峰、发布变更很容易出问题。在系统真正上线前,我们需要重新调整部署架构,来保证我们的系统具有负载均衡、高可用、弹性伸缩等核心运维能力。
考虑到你手中的系统资源有限,这一模块会尽量简单地展示如何部署一个相对高可用的 IAM 系统。按照我讲的部署方法,基本上可以上线一个中小型的系统。
在这一模块中,我会介绍两种部署方式。
第一种是传统的部署方式,基于物理机 / 虚拟机来部署,容灾、弹性伸缩能力要部署人员自己实现。第二种是容器化部署方式,基于 Docker、Kubernetes 来部署,容灾、弹性伸缩等能力,可以借助 Kubernetes 自带的能力来实现。
接下来的三讲,我们先来看下传统的部署方式,也就是如何基于虚拟机来部署 IAM 应用。今天我主要讲跟 IAM 部署相关的两个组件,Nginx + Keepalived 的相关功能。
部署方案
先来整体看下我们的部署方案。
这里,我采用 Nginx + Keepalived 来部署一个高可用的架构,同时将组件都部署在内网,来保证服务的安全和性能。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
本文详细介绍了如何利用Nginx + Keepalived实现高可用架构,并提供了具体的安装和配置步骤。文章首先介绍了IAM应用的部署需求,然后详细介绍了采用Nginx + Keepalived部署高可用架构的方案。作者分别在两台服务器上执行了Keepalived的安装步骤,并解析了Keepalived的默认配置文件。此外,文章还介绍了如何配置`vrrp_script`脚本来实现对Nginx运行状况的监控,以及如何通过Nginx的反向代理功能和负载均衡功能实现后端服务的高可用。总的来说,通过本文,读者可以了解到如何利用Nginx + Keepalived实现高可用架构,以及具体的安装和配置步骤。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《Go 语言项目开发实战》,新⼈⾸单¥68
《Go 语言项目开发实战》,新⼈⾸单¥68
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(11)
- 最新
- 精选
- Realm1 可以把交换机搞成堆叠模式,服务器分别接在两个不同的交换机上,可以减少单点故障。可以看看这篇文章https://blog.51cto.com/netlt/2589364 2 有状态一般是cookie或者session,负载均衡支持基于cookie的会话保持,开启后,相同cookie的http请求,始终打到某一个服务端. 请老师指点!
作者回复: 高抬不通交换机的机器,一台出故障,另一台可以手动切换
2021-08-264 - daz2yyNginx 确保服务的高可用; Keepalived 确保 Nginx 的高可用; 谁来保证 Keepalived 的高可用呢?感觉如果能确保 Keepalived 的高可用,那么去掉这一层,把保证 Keepalived 高可用的方式应用到保证 Nginx 的高可用上不是简单一些吗?
作者回复: Nginx不带VIP的能力。Keepalived的高可用通过VRRP技术来实现的
2021-08-272 - 张翀请问老师两台机器的NGINX和keepalive配置是基本一致的,对吗
作者回复: 是一致的
2022-11-01归属地:广东 - 张靖iam-pump 个人理解,还没有看服务相关源码,如果是有状态的比如session,可以通过session同步或异步复制。 或者通过一致性hash 在固定节点处理 鸡蛋篮子理论,高可用一般都是多副本的,采用Quorum 机制 控制多副本数据一致性,保证半数写入
作者回复: 6666
2022-02-11 - 阿甘老师你好,使用Keepalived做VIP failover要求VIP和后端RIPs必须在同一个网段,但是有时候MASTER和BACKUP可能就不在一个网段,比如出于容灾的需要,MASTER和BACKUP位于不同的机架,这时候他们就不会处于同一个子网中。那么这种情况下,怎样使用Keepalived做VIP failover呢?
作者回复: 这个是keepalived的限制,暂时应该没法避免吧。 可以这么来,同机架使用keepalived做热备。不同机架手动切(冷备)
2021-11-30 - 授人以🐟,不如授人以渔「客户端只能通过VIP:443端口访问 Nginx 服务」是否可修改为:「客户端只能通过公网IP:443端口访问 Nginx 服务」?
作者回复: 这里的VIP还不一定是公网,也有可能是内网。
2021-10-19 - 随风而过多台交换机做备用,监测交换机状态
作者回复: 是个方案
2021-09-09 - kkgo怎么做nginx负载均衡?
作者回复: 老哥,请看下一讲
2021-08-27 - XI老师,单台gin框架应该起多少goroutine性能才是最优的啊,100 个1000个?,单台服务器起能抗住多少的并发啊?
作者回复: 具体要看机器配置了。你可以参考2C8G的并发
2021-08-26 - 那时刻对于如果交换机故障,如何实现整个系统的高可用? 其一采用备份交换机,当云解析到主交换机不同之后,把请求路由到备份交换机上,主交换机和备份交换机都指向同一后台服务器 其二可以采用备份服务器集群,与主服务器集群一致,备灾使用
作者回复: 对的,只能采用冷备了。
2021-08-26
收起评论