很多人都说现在是云原生、大模型的时代,微服务已经过时了,但现实的是,很多人开发多年,都没有在实际的开发中用过微服务,更别提搭建微服务框架和技术选型了 。
面试的时候都会问,怎么办?
今天分享一张微服务的丐版架构图,让你可以和面试官掰扯掰扯~
脑中有图,口若悬河 , 一套组合拳下来,面试官只能拍案叫好,大呼快哉,HR更是惊呼,我勒个乖乖,完全听不懂 。
话不多说 , 直接上图 。

文章插图
由此可见,Spring Cloud微服务架构是由多个组件一起组成的,各个组件的交互流程如下 。
- 浏览器通过查询DNS服务器 , 获取可用的服务实例的网络位置信息,从而实现服务的自动发现和动态更新 。
- 通过CDN获取静态资源,提高访问速度,解决跨地域请求速度慢的问题 。
- 通过LVS负载均衡器,实现负载均衡和网络协议 。
- 通过Nginx反向代理服务器,将请求转发到gateway做路由转发和安全验证 。
- 访问注册中心和配置中心Nacos,获取后端服务和配置项 。
- 通过Sentinel进行限流 。
- 通过redis进行缓存服务、会话管理、分布式锁控制 。
- 通过Elasticsearch进行全文搜索,存储日志,配合Kibana , 对ES中的数据进行实时的可视化分析 。
- 每个微服务实例在启动时,将自己的IP地址和端口号等信息注册到DNS服务器,浏览器通过查询DNS服务器,获取可用的服务实例的网络位置信息 , 从而实现服务的自动发现和动态更新 。
- DNS服务器可以根据一定的策略,比如轮询、随机等,将请求分发到不同的负载均衡器LVS上,提高系统的并发处理能力和容错性 。
- LVS支持多种负载均衡算法,例如轮询、随机、加权轮询、加权随机等 。
- LVS支持多种网络协议,例如TCP、HTTP、HTTPS,可以满足不同应用的需求 。
- LVS具有高可用和可扩展性 。它支持主从备份和冗余配置,当主服务器出现故障时,备份服务器可以自动接管负载,确保服务的连续性 。此外,LVS还支持动态添加和删除服务器节点,方便管理员进行扩容和缩容的操作 。
CDN的作用是将这些静态资源分发到多个地理位置的机房的服务器上 。让用户就近选择访问,提高访问速度,解决跨地域请求速度慢的问题 。
四、Nginx反向代理服务器1、Nginx的主要作用体现在以下几个方面:
- 反向代理,Nginx可以作为反向代理服务器,接收来自客户端的请求,然后将请求转发到后端的微服务实例 。
- 负载均衡,Nginx可以根据配置 , 将请求分发到微服务不同的实例上,实现负载均衡 。
- 服务路由,Nginx可以根据不同的路径规则 , 将请求路由到不同的微服务上 。
- 静态资源服务,Nginx可以提供静态资源服务,如图片、视频、JavaScript文件、CSS文件、HTML静态文件等,减轻后端服务的压力,提高系统的响应速度和性能 。
- 性能和速度:CDN静态资源服务通常具有更广泛的分布式节点和缓存机制 , 可以更快地响应用户的请求,并减少传输距离和网络拥塞 。如果静态资源的加载速度和性能是首要考虑因素,CDN可能是更好的选择 。
推荐阅读
- 千年手游《千年微变》全网超详细新手攻略!
- java中如何实现本地缓存?
- 微信怎么注销 微信怎么注销账号永久注销
- 电脑版微信怎么删除聊天备份文件
- 微信怎么加群 微信怎么加群号码查询
- 不花钱怎么找回删除的微信好友 怎么找回删除的微信好友
- 芒果tv会员怎么取消自动续费 芒果tv会员怎么取消自动续费微信
- 2021最红微信名女 2021最红微信名
- 怎么申请微信公众号 怎么申请微信公众号写文章
- 在微信中如何确定对方是不是好友
