【架构】分布式服务架构与微服务架构(一)——网关层
文章目录
最好结合《【架构】分布式服务架构与微服务架构》阅读。
1)网关1.1 什么是网关?
从广义上讲,只要是某个网络的“入口”,就可以称为网关,即只要连接两个不同的网络,就可以称为网关。
p>
*注意区分网关和网桥
1.2 为什么需要网关?
随着单体应用架构向分布式架构/微服务等架构演进,对网关的需求逐渐出现:
微服务架构
微服务架构主要是中间层分解,将系统分成很多小应用(微服务)。微服务可以部署在不同的服务器上服务器负载不兼容,也可以部署在同一台服务器和不同的容器上。
API 外观:
例如:
API很好的解决了微服务下的调用和统一访问的问题,如下图所示:
因此,只要涉及到对系统的请求,并且可以从业务中提取出来,就可以在网关上实现。
*代理和网关的区别
1.3 个通用网关
根据使用次数、成熟度等,主流的开源网关有4种:
详细介绍可以移步《【网关层】理解软件架构中的网关层》。
2)相关技术栈2.1 负载均衡(Load, LB) 硬件负载均衡方案是在服务器和外网之间直接安装负载均衡设备,通常称为负载均衡器,由专门的设备执行专门的任务,独立于操作系统,整体性能大大提高。为什么需要负载均衡?大型网站要面临巨大的用户量、高并发、海量数据的挑战。为了提高系统的整体性能,可以采用纵向扩展和横向扩展。常见负载均衡:反向代理负载均衡:数据链路层负载均衡:
数据链路层负载均衡是指在通信协议的数据链路层修改mac地址进行负载均衡。
开源 LVS 版本有 3 种工作模式:DR 模式、NAT 模式和模式。 LVS的工作流程 用户访问时,用户数据经过层层网络,最后通过交换机进入LVS服务器网卡,进入内核网络层。进入后,经过路由搜索,确定访问的目的VIP是本地IP地址,所以数据包进入INPUT链。 IPVS 在 INPUT 链上工作。它会根据访问的vip+port判断请求是否为IPVS服务。如果是,则调用注册的IPVS HOOK函数执行IPVS相关的主流程,强制修改数据包的相关数据,将数据包上链。收到数据包后,最终根据目标IP地址(后端服务器)通过路由将数据包发送到后端服务器。
2.2 CDN 为什么需要 CDN?
随着互联网的爆炸式发展,用户越来越多,宽带接入网的出现,内容源服务器和骨干网的压力越来越大,无法及时响应用户的接入需求。网络拥塞越来越严重,将成为互联网发展的最大障碍。
CDN 的工作原理:
CDN的基本原理是广泛使用各种缓存服务器(CDN边缘节点),并将这些缓存服务器分布到用户访问相对集中的区域或网络中。指向最近的工作缓存服务器,缓存服务器直接响应用户请求。
当用户点击APP上的内容时,APP会根据URL地址到本地DNS(域名解析系统)进行IP地址解析。本地DNS系统会将域名的解析权交给CDN专用DNS服务器。 CDN 特定的 DNS 服务器将 CDN 的 Load (GSLB) IP 地址返回给用户。用户向 CDN 的负载均衡设备发起内容 URL 访问请求。 CDN负载均衡设备根据用户的IP地址和用户请求的内容URL,在用户所在区域选择缓存服务器。负载均衡设备告诉用户缓存服务器的IP地址服务器负载不兼容,并允许用户向选定的缓存服务器发起请求。用户向缓存服务器发起请求,缓存服务器响应用户请求,将用户需要的内容传送给用户终端。如果缓存服务器上没有用户想要的内容,那么缓存服务器将向网站的源服务器请求内容。源站将内容返回给缓存服务器,缓存服务器将其发送给用户,根据用户自定义的缓存策略,决定是否将内容缓存到缓存服务器上。
CDN关键技术: 内容路由:是一种整体网络负载均衡技术。通过内容路由器中的重定向(DNS)机制,将用户的请求均衡到多个远程 POP 上,使用户请求能够获得最新的内容源。的回应。内容存储:内容存储需要考虑两个方面,一是内容源的存储,二是内容在Cache节点中的存储。内容管理:通过内部和外部监控系统获取网络组件的状态信息,测量端到端的性能(如丢包、延迟、平均带宽、启动时间、帧率等)运行状态。
2.3个常用服务:用dubbo
[部分内容引用自]