没用过微服务?别慌,丐版架构图,让你轻松拿捏面试官

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

没用过微服务?别慌,丐版架构图,让你轻松拿捏面试官

文章插图
由此可见,Spring Cloud微服务架构是由多个组件一起组成的,各个组件的交互流程如下 。
  •  浏览器通过查询DNS服务器 , 获取可用的服务实例的网络位置信息,从而实现服务的自动发现和动态更新 。
  • 通过CDN获取静态资源,提高访问速度,解决跨地域请求速度慢的问题 。
  • 通过LVS负载均衡器,实现负载均衡和网络协议 。
  • 通过Nginx反向代理服务器,将请求转发到gateway做路由转发和安全验证 。
  • 访问注册中心和配置中心Nacos,获取后端服务和配置项 。
  • 通过Sentinel进行限流 。
  • 通过redis进行缓存服务、会话管理、分布式锁控制 。
  • 通过Elasticsearch进行全文搜索,存储日志,配合Kibana , 对ES中的数据进行实时的可视化分析 。
一、域名系统DNS在微服务中,域名系统DNS的作用主要是进行服务发现和负载均衡 。
  • 每个微服务实例在启动时,将自己的IP地址和端口号等信息注册到DNS服务器,浏览器通过查询DNS服务器,获取可用的服务实例的网络位置信息 , 从而实现服务的自动发现和动态更新 。
  • DNS服务器可以根据一定的策略,比如轮询、随机等,将请求分发到不同的负载均衡器LVS上,提高系统的并发处理能力和容错性 。
二、LVS(linux Virtual Server),Linux虚拟服务器LVS是一个开源的负载均衡软件,基于Linux操作系统实现 。它在Linux内核中实现负载均衡的功能,通过运行在用户空间的用户进程实现负载均衡的策略 。
  • LVS支持多种负载均衡算法,例如轮询、随机、加权轮询、加权随机等 。
  • LVS支持多种网络协议,例如TCP、HTTP、HTTPS,可以满足不同应用的需求 。
  • LVS具有高可用和可扩展性 。它支持主从备份和冗余配置,当主服务器出现故障时,备份服务器可以自动接管负载,确保服务的连续性 。此外,LVS还支持动态添加和删除服务器节点,方便管理员进行扩容和缩容的操作 。
三、CDN静态资源CDN静态资源图片、视频、JAVAScript文件、css文件、静态html文件等 。这些静态资源的特点是读请求量极大,对访问速度的要求很高,并占据了很高的宽带 。如果处理不当 , 可能导致访问速度慢,宽带被占满,进而影响动态请求的处理 。
CDN的作用是将这些静态资源分发到多个地理位置的机房的服务器上 。让用户就近选择访问,提高访问速度,解决跨地域请求速度慢的问题 。
四、Nginx反向代理服务器1、Nginx的主要作用体现在以下几个方面:
  • 反向代理,Nginx可以作为反向代理服务器,接收来自客户端的请求,然后将请求转发到后端的微服务实例 。
  • 负载均衡,Nginx可以根据配置 , 将请求分发到微服务不同的实例上,实现负载均衡 。
  • 服务路由,Nginx可以根据不同的路径规则 , 将请求路由到不同的微服务上 。
  • 静态资源服务,Nginx可以提供静态资源服务,如图片、视频、JavaScript文件、CSS文件、HTML静态文件等,减轻后端服务的压力,提高系统的响应速度和性能 。
2、Nginx静态资源服务和CDN静态资源服务,如何选择?在选择Nginx静态资源服务和CDN静态资源服务时,可以根据以下几个因素进行权衡和选择: