网络服务请求流程简单理解

网络流程:

DNS负责将域名解析为IP地址,ALB可以在多个服务实例之间分配流量,APISIX作为API网关处理更细粒度的流量管理,Service在Kubernetes中为Pod提供稳定的访问入口,而Kubernetes则负责整个应用的部署、扩展和运维。通过这些技术的协同工作,可以实现高效、可扩展和高可用的云原生应用。

前置知识点:


CDN:

  • 作用:(缓存)就近获取缓存资源
  • 具体概念:在多个地理位置部署服务器节点,将内容缓存到离用户更近的服务器上,从而加快内容的加载速度和提高可用性。
  • 缓存资源类型:CDN通常用于加速静态资源的分发,如图片、视频和JavaScript文件等

DNS服务器:(区别CDN)

  • 作用:将域名解析为IP地址
  • 具体概念:负责将域名解析为IP地址,以便用户可以通过易于记忆的域名访问网站。DNS服务器会缓存域名解析结果,以提高解析效率和减少延迟。
  • 实际上:域名与IP地址映射关系

ALB:

  • 作用:负载均衡,转发,安全防护
  • 具体概念:应用程序层面工作的负载均衡器,它可以在多个目标(如EC2实例、容器和IP地址)之间自动分配传入的流量。ALB会监控已注册目标的健康状况,并仅将流量传输到运行状况良好的目标。它可以根据传入流量随时间的变化对负载均衡器进行扩展,并支持将请求根据URL路径、主机头等条件路由至不同的目标组
  • 安全防护:1.网络访问控制
  1. 设置 IP 白名单和黑名单

    • 通过配置 ALB 的访问控制列表(ACL),明确指定允许或拒绝访问的 IP 地址范围。你可以将已知的可信来源 IP 地址添加到白名单中,阻止来自特定恶意 IP 地址的访问请求。
    • 定期更新黑名单,以应对不断变化的网络威胁。可以使用网络安全情报服务来获取最新的恶意 IP 地址列表。
  2. 限制访问来源

    • 对于特定的应用场景,可以限制 ALB 只接受来自特定网络区域或云服务提供商内部网络的流量。例如,如果你的应用只面向企业内部用户,可以限制访问来源为企业内部 IP 地址范围。
    • 考虑使用虚拟私有云(VPC)来进一步隔离和控制网络访问。确保 ALB 部署在 VPC 中,并配置适当的网络访问策略。



2.加密与认证

  1. 启用 SSL/TLS 加密:

    • 强制所有传入和传出的流量通过 SSL/TLS 进行加密,以保护数据在传输过程中的安全性。ALB 支持多种 SSL/TLS 证书类型,包括自签名证书、由证书颁发机构(CA)颁发的证书等。
    • 定期更新 SSL/TLS 证书,确保证书的有效性和安全性。同时,配置证书的自动更新机制,以减少证书过期带来的风险。
  2. 实施客户端认证:

    • 除了服务器端的认证,还可以考虑实施客户端认证。这要求客户端提供有效的数字证书或其他认证凭证,以验证其身份。通过客户端认证,可以进一步增强应用的安全性,防止未经授权的访问。

APISIX:

  • 作用:网关,路由转发
  • APISIX是一个动态、实时、高性能的API网关,提供丰富的流量管理功能,如负载均衡、动态上游、灰度发布、服务熔断、身份认证等。它可以处理南北向流量和东西向流量,并可以作为Kubernetes Ingress Controller使用。APISIX支持多协议、全动态能力、精细化路由、安全防护和运维友好的特性。
  • 特点:
  1. 丰富的流量管理功能:        
    1. 负载均衡有效分配请求流量到多个后端服务实例,提高系统的可用性和可靠性。通过智能的负载均衡算法,可以根据不同的指标进行请求分发,确保每个实例都能得到合理的负载。
    2. 动态上游:能够动态地调整上游服务的配置,适应不断变化的业务需求。当后端服务发生变化时,APISIX 可以快速响应并更新路由规则,保证请求的正确转发
    3. 灰度发布:支持渐进式的发布策略,允许在不影响整体系统的情况下,逐步将新功能或更新推送给用户。通过控制流量的比例,可以对新版本进行测试和验证,降低发布风险。
    4. 服务熔断:当后端服务出现故障时,能够快速熔断连接,避免故障扩散。APISIX 可以监测后端服务的健康状况,并在出现问题时自动中断请求,保护系统的稳定性。
    5. 身份认证提供多种身份认证方式,确保只有授权用户能够访问 API。这有助于保护系统的安全性,防止未经授权的访问和数据泄露。
  2. 高性能:APISIX 作为一个动态、实时的 API 网关,具备出色的性能表现。它能够快速处理大量的 API 请求,确保系统的响应速度和吞吐量,满足高并发业务场景的需求。
  3. 精细化路由:能够根据不同的请求参数、头部信息等进行精细化的路由转发。这有助于实现复杂的业务逻辑,提高系统的可扩展性和灵活性。
  4. 安全防护:提供多种安全防护机制,如访问控制、加密传输、防止 SQL 注入和 XSS 攻击等。这有助于保护系统的安全性,防止恶意攻击和数据泄露。

服务svc:

  • svc:路由,具体的请求服务
  • 含义:服务(svc)在Kubernetes中是指一种抽象,它定义了一种访问Pod的方式。Service为一组Pod提供一个单一的入口地址,并且可以在Pod之间分配请求。Service可以通过Label Selector来选择特定的Pod,并且可以与Ingress、LoadBalancer等资源配合使用,以实现外部访问和负载均衡。

Kubernetes(K8S):

  • 作用:集群,容器,监控pod如果挂了,可以及时提起来
  • 含义:是一个开源的容器编排平台,用于自动化部署、扩展和管理容器化应用程序。它提供了服务发现、负载均衡、存储编排、自动扩展和自动愈合等功能。在Kubernetes中,Service是连接外部请求与Pod的重要组件,它允许访问者通过一个固定的地址访问后端的Pod,而不管Pod的数量如何变化或Pod的IP地址如何改变

流程:

  1. 用户发起请求:用户通过浏览器或客户端应用发起对某个服务的请求。

  2. DNS域名解析:用户的请求首先需要通过DNS系统解析成服务器的IP地址。

    • 如果请求的是静态资源,可能会直接被CDN缓存并提供服务。
  3. ALB负载均衡:对于动态内容的请求,会经过应用负载均衡器(ALB),它负责将流量分配到不同的服务实例上,以保证服务的高可用和扩展性。

  4. APISIX网关:请求到达APISIX网关,它负责更细粒度的流量管理,如路由、过滤、认证等。

  5. 服务svc:在Kubernetes中,服务(svc)作为微服务的抽象,它定义了如何访问背后的Pod。服务会将请求代理到后端的Pod。

  6. K8S管理服务部署和扩展:Kubernetes负责管理Pod的生命周期,包括服务的部署、扩展和自动愈合。

  7. 返回响应给用户:处理完请求后,结果会返回给用户,完成整个流程。

总结:

DNS负责将域名解析为IP地址,ALB可以在多个服务实例之间分配流量,APISIX作为API网关处理更细粒度的流量管理,Service在Kubernetes中为Pod提供稳定的访问入口,而Kubernetes则负责整个应用的部署、扩展和运维。通过这些技术的协同工作,可以实现高效、可扩展和高可用的云原生应用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/57198.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java项目-基于springboot框架的逍遥大药房管理系统项目实战(附源码+文档)

作者:计算机学长阿伟 开发技术:SpringBoot、SSM、Vue、MySQL、ElementUI等,“文末源码”。 开发运行环境 开发语言:Java数据库:MySQL技术:SpringBoot、Vue、Mybaits Plus、ELementUI工具:IDEA/…

【UML】一个UML学习的还不错的几个帖子

https://segmentfault.com/a/1190000042775634 寂然解读设计模式 - UML类图&类的六大关系-阿里云开发者社区

最佳简历--JAVA程序员的项目经验如何写

小熊学Java全能学习+面试指南:https://www.javaxiaobear.cn 首先你要明确,你能干什么,包括你自己编写的专业技能,到底会不会,怎么运用到技术上的? 1、你能干什么? 你能干什么,其实就展现你的能力,这是简历中最重要的部分,你需要证明前面说的你会的东东; 这就有点…

【前端】如何制作一个自己的网页(14)

当我们还需要对网页中的内容进行局部样式的修改。这时候,就需要用到HTML中的重要元素:span。 span是一个行内元素,可以对HTML文档中的内容进行局部布局。 如图,我们给标题和段落元素的部分内容设置了各种样式。 接下来&#xff0…

rk3588 opencv 的使用

-------------------------------------------------------------------------------------------------------- 目前是 3588 上无法 直接编译出 C程序。 报错如下: -----------------------------------------------------------------------------------------…

LeetCode 精选 75 回顾

目录 一、数组 / 字符串 1.交替合并字符串 (简单) 2.字符串的最大公因子 (简单) 3.拥有最多糖果的孩子(简单) 4.种花问题(简单) 5.反转字符串中的元音字母(简单&a…

[ComfyUI]Flux:爆火禅语小和尚素材!禅意人生,享受自在

在快节奏的现代生活中,人们越来越渴望一种宁静和放松的状态。而禅意小和尚素材正是这样一种能够带给我们内心宁静和智慧的存在。ComfyUI的Flux框架结合了禅意小和尚素材,为我们提供了一个探索禅意人生的独特方式。 禅意小和尚素材源于佛教文化&#xff…

AJAX—— jQuery 发送 AJAX 请求

1、get 请求 $.get(url,[ data ] , [ callback ] , [ type ]) url :请求的 URL 地址 data :请求携带的参数 callback :载入成功时回调函数 type :设置返回内容格式(xml&#xf…

UniHttp 框架,请求http接口

项目案例下载地址: https://download.csdn.net/download/jinhuding/89902024 1.快速开始 2.1引入依赖 <dependency><groupId>io.github.burukeyou</groupId><artifactId>uniapi-http

leetcode动态规划(十一)-分割等和子集

题目 416.分割等和子集 给你一个 只包含正整数 的 非空 数组 nums 。请你判断是否可以将这个数组分割成两个子集&#xff0c;使得两个子集的元素和相等。 示例 1&#xff1a; 输入&#xff1a;nums [1,5,11,5] 输出&#xff1a;true 解释&#xff1a;数组可以分割成 [1, 5,…

如何进行数据库缩容 | OceanBase应用实践

作者&#xff1a;关炳文&#xff0c;爱可生 DBA 团队成员&#xff0c;负责数据库相关技术支持。 本文详细介绍了OceanBase V3.2版的集群中&#xff0c;面对数据文件缩容的场景的一套缩容方案&#xff0c;作为大家的参考。 缩容场景 某银行运行的一套采用1-1-1架构的OceanBase…

自动驾驶---基于dds/ros的通信中间件

1 背景 DDS&#xff08;数据分发服务&#xff0c;Data Distribution Service&#xff09;和ROS&#xff08;机器人操作系统&#xff0c;Robot Operating System&#xff09;是两种在各自领域内具有重要影响的技术。它们是两种不同的中间件&#xff0c;并且在分布式系统、尤其是…

源代码加密技术的一大新方向!

在当今这个信息爆炸的时代&#xff0c;企业所面临的数据安全挑战日益严峻。传统的文档加密方法已经无法满足日益复杂的安全需求。幸运的是&#xff0c;SDC沙盒加密系统以其革命性的安全理念和先进技术&#xff0c;为企业提供了一个更可靠、更高效的数据保护方案。 传统加密方案…

MySQL-16.DQL-分页查询

一.DQL-分页查询 -- 分页查询 -- 1. 从 起始索引0 开始查询员工数据&#xff0c;每页展示5条记录 select * from tb_emp limit 0,5; -- 2.查询 第1页 员工数据&#xff0c;每页展示5条记录 select * from tb_emp limit 0,5; -- 3.查询 第2页 员工数据&#xff0c;每页展示5条记…

【Kenel】基于 QEMU 的 Linux 内核编译和安装

文章目录 安装虚拟机系统共享目录编译内核卸载内核参考资料 本文主要记录个人做存储系统研究时&#xff0c;在 QEMU 环境下编译和安装 Linux 内核的过程 安装虚拟机系统 之前在 利用 RocksDB ZenFS 测试 ZNS 的环境搭建和使用 给出过借助 VNC 进行图形化安装的步骤&#xff…

利用Pix4D和ArcGIS计算植被盖度

除了水文分析和沟道形态分析之外&#xff0c;在实际工作中还要计算植被盖度&#xff01; 植被盖度&#xff0c;也称为植被覆盖率或植物覆盖度&#xff0c;是指某一地表面积上植物冠层垂直投影面积占该地表面积的比例。它通常以百分比的形式表示&#xff0c;是描述地表植被状况的…

mapbox没有token/token失效,地图闪烁后变空白,报错Error: A valid Mapbox access token is required to use Mapbox GL JS.

目录 mapbox没有token/token失效&#xff0c;地图闪烁后空白&#xff0c;报错Error: A valid Mapbox access token is required to use Mapbox GL JS. 一、问题描述 二、mapbox去除token验证 1、找到mapbox-gl文件夹 2、找到mapbox-gl.js文件 3、找到对应位置并修改 4、清…

uploads-labs靶场刷题记录

Pass-01 尝试上传一句话木马 1.php: <?php eval($_POST[cmd]);?>发现设置了白名单且抓包没有记录&#xff0c;说明在前端进行的拦截&#xff08;可以禁用前端的JS从而绕过拦截&#xff0c;达到直接上传木马的目的&#xff09;。 将一句话木马文件加上.jpg后缀1.php.jp…

nodejs 实现docker 精简可视化控制

地址 https://github.com/xiaobaidadada/filecat 说明 使用react 和nodejs 实现的非常轻量的服务docker管理。

ArchLinux VSCode 1.94.2无法安装or更新解决办法

此方法参考了这篇博客https://www.debugpoint.com/failed-connect-raw-githubusercontent-com-port-443/#google_vignette 某一次paru后&#xff0c;一直报错503什么的&#xff0c;在archlinux官网看到pacman安装的是个Open VSX版本的&#xff0c;是Arch官方的版本&#xff0c;…