IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> 一张图带你了解前后端数据流向全过程 -> 正文阅读

[系统运维]一张图带你了解前后端数据流向全过程

mark

1. 外部建立连接过程

①外网客户端访问 http://www.baidu.com/ -> 地址解析

DNS 解析顺序:本地内存缓存 -> /etc/hosts -> /etc/resolv.conf -> 网卡文件 -> DNS 服务器(迭代,递归两种方式获取 IP 和域名,DNS 协议既有 TCP 又有 UDP,53 端口)

②客户端和服务端建立连接

HTTP1.1建立长连接(请求头、请求行、请求体,方式(GET、POST)

③TCP三次握手过程

TCP 建立连接的过程称为三次握手,为了确认双方收发数据的能力

1.发送方向接收方发送SYN请求

⒉接收方接收到此请求后会主动回复一个ACK,并且同时也发送一个SYN请求

3.发送方接收到接收方发来的SYN请求后,给出一个ACK确认

2. 企业内部数据交互

①防火墙(软硬件)

通过流量过滤、ACL 访问控制、黑白名单、安全组、规则过滤、SNAT、DNAT 等方式控制连接请求并交给负载均衡器

②负载均衡器

LVS+Keepalived、Haproxy、SLB、硬件负载均衡器 …

负载均衡器将流量分发给对应的业务模块( NG+Keepalived 或 apache+Keepalived

  • harpoxy 的服务端中会有 socket 连接,haproxy 的进程监听、接收然后遍历配置文件,找到转发的配置(nginx/apache 的 keepalived VIP 地址),然后对数据报文进行封装和转发,最终转发到 NG/apache 的 VIP。

③流量分发

流量发送到 NG/apache 的 80 端口,会被监听 80 端口的后台进程捕捉到 -> 接待请求然后遍历对应的配置文件。( socket 连接被 NG/apache 对应的后台进程捕捉到然后交给服务程序处理)

  • 第一条路径

nginx+keepalived 中的 nginx.conf 匹配 location(location 最少有三种,location /,location /static,location (.+) .jsp ) , 匹 配 到 之 后 l o c a t i o n / 处 理 静 态 请 求 , 直 接 获 取 静 态 文 件 资 源 所 在 的 目 录 中 的 文 件 , 然 后 返 回 官 网 , 如 果 要 加 载 一 些 静 态 请 求 l o c a t i o n / s t a t i c / ( p n g ∣ j e p g ∣ . . . ) 。 反 向 代 理 l o c a t i o n ( . + ) . j s p ),匹配到之后 location /处理静态请求,直接获取静态文件资源所在的目录中的文件,然后返回官网,如果要加载一些静态请求 location /static/ (png|jepg|...)。反向代理 location (.+) .jsp location/location/static/(pngjepg...)location(.+).jsp () 匹配到 proxy_pass http://tomcat_server -> upstream tomcat_server 地址池后( server tomcat1_ip:port weight 2 | server tomcat2_ip:port weight 1 )-> 跳转 -> 默认会重新封装数据包 -> 将源 IP 封装为本地 IP(Nginx IP),目标 IP 封装为 tomcat_ip 执行转发(根据服务本身的路由表条目)-> tomcat

  • 第二条路径

apache 通过加载 PHP 模块进行交互,对接 PHP(共享内存)

④tomcat/php收到请求

tomcat 接收到来自 nginx_vip:80 端口的请求,会有监听在 8080 的 connector 连接器(java)捕捉到 java 进程 -> engine引擎 -> 对应的容器处理(web、jsp、serverlet)-> 遍历 web.xml、server.xml、serverlet.xml,在 serverlet.xml 主配置文件中遍历到 <Host(项目)> 项目相关的配置 -> 例如支付宝项目的位置(API),支付宝的代码会需要使用后端存储一些用户数据(新的需求)-> 通过线程池的方式 -> 获取数据。数据的来源分两种

(1) 需要通过 redis,需要发送到 redis 的 6379 端口,redis 中主要通过 内存/缓存 的方式存储一些高热数据,通过缓存命中的方式读取高热数据,如果命中了可以直接返回,不会经过 mysql。( redis 通过监听 6379 端口获取请求)

(2) 不需要经过 redis 发送给 mysql 的 3306 端口 -> 进程接待 -> 线程处理(sock 通讯文件)-> 进入到数据内部 -> 执行 SQL 语句

数据库 select 查询时的顺序:先查询索引目录 -> 有的话直接定位具体的 库.表,获取数据,没有的话遍历 库.表 中的数据,获取后返回

php 接收请求,遍历配置文件,加载对应的项目,然后也需要获取后端存储的数据库 sock 通讯文件。
共享存储 NFS 可以通过提供网络存储的方式分别为导诊平台业务和门户网站的业务提供共享存储。(可以先使用磁盘挂载 /test1 /test2 两个目录,然后通过 NFS exporter 配置文件,提供共享存储)
  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-11-17 13:09:07  更:2021-11-17 13:09:26 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 1:37:48-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码