正向代理与反向代理
正向代理
客户端想要直接与目标服务器连接,但是无法直接进行连接,就需要先去访问中间的代理服务器,让代理服务器代替客户端去访问目标服务器
反向代理
屏蔽掉服务器的信息,经常用在多台服务器的分布式部署上,像一些大型网站,由于访问人数很多,就需要多台服务器来解决,由一个反向代理服务器来代理,客户端发来请求,先由反向代理服务器,按一定的规则分发到明确的服务器,但客户端不知道是哪台服务器,常用Nginx做反向代理
什么是负载均衡
将工作任务或者访问请求进行平衡,然后分摊到多个单元、服务器或者组件上执行,解决高并发,高可用(单点故障)、扩展性(水平伸缩)的最高解决方案
代码仓库定义
开发人员分别将前段和后端代码都存入自己的代码仓库,由分支进行分类(分支、主分支、分分支)分类储存后,打包上传服务器
后端打包工具Maven(打包为War、jar包)
前段打包工具Npm、nodejs
一般前端打包后会放入/usr/local/nginx/html目录当中(nginx配置)
后端的打包回放入在Tomcat服务里的Webapps中
私有仓库 gitlab
公有仓库 github
分流策略
Nginx负载均衡模式(rr负载均衡模式)
每个请求按时间顺序逐一分配到不同的后端服务器,如果超过了最大失败次数后(max_fails)默认为1,在失效时间内(fail_timeout)默认为10秒,该节点失效权重变为0,超过失效时间后,则恢复正常,或者全部节点都为down后,那么将所有节点都恢复为有效,继续探测,一般来说rr可以根据权重进行均匀分配
四层代理和七层代理之间的区别:
七层代理:走都是用户态,需要对http的请求进行处理和解析,解析过程中,可以根据请求头和请求体的内容进行流量控制,内容过滤。但是提供的功能更高级,客户的体验更好。
四层代理:基于IP地址和端口号,只负责ip和端口转发后端服务器,不对请求做任何处理。只负责转发,四层走的是内核,四层速度较快。四层代理无法提供更加高级的功能,只能转发。
2、选择场景:
七层代理:需要对http请求进行和处理,只能选择七层代理(常见的处理方式)
四层代理: 只需要转发tcp/udp数据包,可以选择四层,也可以选择七层。
七层可以对ip和端口进行转发,也可以对域名进行代理
四层只能是ip和端口
负载均衡算法:有些是无法在四层代理使用。
3、模块
七层代理的模块:
只能写在http模块的全局配置当中。
upstream: 用于处理http请求,支持反向代理,负载均衡,缓存功能
在upstream模块中可以配置对个服务器
四层代理的模块 :
stream只能写在全局模块当中的单独配置。stream代理无谓协议,只管流量。
七层代理:
http全局配置下
upstream liu {
server 192.168.10.30;
server 192.168.10.20;
}
location {
proxy_pass http://test;
}
1、轮询
rr (round robin)负载均衡最简单的算法,轮询。请求轮流分配到后端服务器.
默认算法,可以不加。
默认算法,每发起一次都是新的请求,服务器上没有缓存。
处理器理解能力相近,而且对访问量比较小的网站使用。2、加权轮询
weight 建立在默认轮询基础上。为后端服务器分配不同的权重,处理能力强的可以分配的权重值要高一些。
轮询次数基本上按照权重进行分配。服务器上也没有缓存。
中大型网站可以使用加权轮询。
权重高的服务会被频繁的请求响应。权重低的可能闲置。会和另外一种算法配合使用:最少连接算法。
3、最少连接算法
最少连接算法:会把请求放送到连接数量比较少的服务器。
最少连接数算法可以单独使用,但是一般都是结合加权轮询一块使用,避免所有的请求都发送到处理能力强的服务器,提高整个集群的稳定性。
中大型网站,可以满足日常访问
4、ip_hash
ip_hash: iphash会根据客户端ip地址解析出一个hash值,然后将请求放到对应的后端服务器,下一次用户访问时,同一客户的请求将会被分配到同一台服务器。
ip_hash第一次 200 访问之后,后续访问都是缓存。第二次访问会304 加载缓存
注:如果后端服务器的数量发生变化,可能会进行重新分配ip_hash适用于高并发,请求不会跳转,请求的是缓存。
5、url_hashurl_hash 根据请求的url地址计算hash值,然后将请求发送到相应的后端服务器,相同的url地址请求分配到同一台的服务器
usl_hash和ip_hash一般是结合一起使用,可以适用于并发较高的场员,只要是ip_hash和url hash
基于域名的反向代理:
在/usr/local/nginx/conf/nginx.conf下
upstream ky32 (
server www.kgc.com;
server www.benet.com;
}
location {
proxy_pass http://ky32
proxy_set_header HoST $host
#把请求的主机名发送给后端
proxy_set header X-Real-IP $remote_addr;
#后端服务器获取客户端的真实ip地址。
}
四层反向代理
不能用 hash,只可以使用weight 和 least_conn。
因为:四层不能对请求处理,只是转发数据包。
http七层代理:可以处理请求地址和请求的url。
不能处理,只是转发数据流量
相关文章:

正向代理与反向代理
正向代理 客户端想要直接与目标服务器连接,但是无法直接进行连接,就需要先去访问中间的代理服务器,让代理服务器代替客户端去访问目标服务器 反向代理 屏蔽掉服务器的信息,经常用在多台服务器的分布式部署上,像一些大型…...

idea热加载,JRebel 插件是目前最好用的热加载插件,它支持 IDEA Ultimate 旗舰版、Community 社区版
1.如何安装 ① 点击 https://plugins.jetbrains.com/plugin/4441-jrebel-and-xrebel/versions 地址,下载 2022.4.1 版本。如下图所示: ② 打开 [Preference -> Plugins] 菜单,点击「Install Plugin from Disk…」按钮,选择刚下…...

0基础学习PyFlink——Map和Reduce函数处理单词统计
在很多讲解大数据的案例中,往往都会以一个单词统计例子来抛砖引玉。本文也不免俗,例子来源于PyFlink的《Table API Tutorial》,我们会通过几种方式统计不同的单词出现的个数,从而达到循序渐进的学习效果。 常规方法 # input.py …...

在 Ubuntu 22.04安装配置 Ansible
一、按官网指引安装 我使用的ubuntu22.04版本,使用apt安装。官网指引如下: $ sudo apt-get install software-properties-common $ sudo apt-add-repository ppa:ansible/ansible $ sudo apt-get update $ sudo apt-get install ansible 由于内部网络…...

【大数据 - Doris 实践】数据表的基本使用(三):数据模型
数据表的基本使用(三):数据模型 1.Aggregate 模型1.1 例一:导入数据聚合1.2 例二:保留明细数据1.3 例三:导入数据与已有数据聚合 2.Uniq 模型3.Duplicate 模型4.数据模型的选择建议5.聚合模型的局限性 Dori…...

PMP和CSPM证书,怎么选?
最近有宝子们在问,从事项目管理行业到底建议考什么证书?是不是CSPM证书一出来,PMP证书就没用了?其实不是。今天胖圆给大家解释一下二者都适合什么人群考~ PMP证书是什么? PMP项目管理专业人士资格认证,由…...

企业宣传为何要重视领军人物包装?领军人物对企业营销的价值和作用分析
在企业的完整形象中,产品、品牌、高管是最重要的组成部分。而大部分企业会把品牌形象放在首位,将公司所有的推广资源都倾斜在这一块,但其实,企业高管形象的塑造和传播也非常重要。小马识途建议中小企业在成长过程中提早对高管形象…...

什么是内存泄漏?JavaScript 垃圾回收机制原理及方式有哪些?哪些操作会造成内存泄漏?
1、什么是内存泄漏? 内存泄漏是前端开发中的一个常见问题,可能导致项目变得缓慢、不稳定甚至崩溃。内存泄漏是指不再用到的内存没有及时被释放,从而造成内存上的浪费。 2、 JavaScript 垃圾回收机制 1) 原理: JavaS…...

C++项目实战——基于多设计模式下的同步异步日志系统-⑫-日志宏全局接口设计(代理模式)
文章目录 专栏导读日志宏&全局接口设计全局接口测试项目目录结构整理示例代码拓展示例代码 专栏导读 🌸作者简介:花想云 ,在读本科生一枚,C/C领域新星创作者,新星计划导师,阿里云专家博主,C…...

京东数据接口:京东数据分析怎么做?
电商运营中数据分析的重要性不言而喻,而想要做数据分析,就要先找到数据,利用数据接口我们能够更轻松的获得比较全面的数据。因此,目前不少品牌商家都选择使用一些数据接口来获取相关电商数据、以更好地做好数据分析。 鲸参谋电商…...

使用Git在本地创建一个仓库并将其推送到GitHub
前记: git svn sourcetree gitee github gitlab gitblit gitbucket gitolite gogs 版本控制 | 仓库管理 ---- 系列工程笔记. Platform:Windows 10 Git version:git version 2.32.0.windows.1 Function: 使用Git在本地创建一个…...

5.覆盖增强技术——PUCCHPUSCH
PUSCH增强方案的标准化工作 1.PUSCH重复传输类型A增强,包括两种增强机制:增加最大重复传输次数,以及基于可用上行时隙的重复传输次数技术方式。 2.基于频域的解决方案,包括时隙间/时隙内跳频的增强 3.支持跨多个时隙的传输块&…...

徐建鸿:深耕中医康养的“托钵行者”
为什么是“庄人堂”?杭州“庄人堂”医药科技公司董事长徐建鸿很乐意和别人分享这个名称的由来,一方面是庄子首先提出“养生”这个概念,接近上工治未病的上医,取名“庄人堂”代表庄子门生,向古哲先贤致敬!另…...

基于svg+js实现简单动态时钟
实现思路 创建SVG容器:首先,创建一个SVG容器元素,用于容纳时钟的各个部分。指定SVG的宽度、高度以及命名空间。 <svg width"200" height"200" xmlns"http://www.w3.org/2000/svg"><!-- 在此添加时钟…...

端到端测试(End-to-end tests)重试策略
作者|Giuseppe Donati,Trivago公司Web测试自动化工程师 整理|TesterHome 失败后重试,是好是坏? 为什么要在失败时重试所有测试?为什么不? 作为Trivago(德国酒店搜索服务平台&…...

三相交错LLC软启动控制驱动波形分析--死区时间与占空比关系
三相交错LLC软启动控制驱动波形分析 文章目录 三相交错LLC软启动控制驱动波形分析一、电路原理二、时序分析三、环路分析四、控制策略1.软启动驱动波形趋势2.软启动驱动波形占空图3.软启动驱动波形详细图4.软启动代码分析5.Debug调试界面5.死区时间与实际输出5.1 死区时间50--对…...

数据结构详细笔记——栈与队列
文章目录 栈的三要素逻辑结构(定义)数据的运算(基本操作)存储结构(物理结构)顺序栈(顺序存储)链栈(链式存储) 队列的三要素逻辑结构(定义…...

JVM调试命令与调试工具
目录 一、JDK自带命令 1、jps 2、jstat(FullGC频繁解决方案) 3、jmap 4、jhat 5、jstack(cpu占用高解决方案) 6、jinfo 二、JDK的可视化工具JConsole 1、JConsole 2、VisualVM 一、JDK自带命令 Sun JDK监控和故障处理命令如: 1、jps JVM Proc…...

《软件方法》第1章2023版连载(07)UML的历史和现状
DDD领域驱动设计批评文集 做强化自测题获得“软件方法建模师”称号 《软件方法》各章合集 1.3 统一建模语言UML 1.3.1 UML的历史和现状 上一节阐述了A→B→C→D的推导是不可避免的,但具体如何推导,有各种不同的做法,这些做法可以称为“方…...

chromium 54 chrome 各个版本发布功能列表(109-119)
chromium Features 109-119 From https://chromestatus.com/features chromium109 Features:12 Auto range support for font descriptors inside font-face rule Auto range support for variable fonts in ‘font-weight’, ‘font-style’ and ‘font-stretch’ descrip…...

Linux实现原理 — I/O 处理流程与优化手段
Linux I/O 接口 Linux I/O 接口可以分为以下几种类型: 文件 I/O 接口:用于对文件进行读写操作的接口,包括 open()、read()、write()、close()、lseek() 等。 网络 I/O 接口:用于网络通信的接口,包括 socket()、conne…...

第 367 场 LeetCode 周赛题解
A 找出满足差值条件的下标 I 模拟 class Solution { public:vector<int> findIndices(vector<int> &nums, int indexDifference, int valueDifference) {int n nums.size();for (int i 0; i < n; i)for (int j 0; j < i; j)if (i - j > indexDiffe…...

最新百度统计配置图文教程,获取siteId、百度统计AccessToken、百度统计代码教程
一、前言 很多网友开发者都不知道百度统计siteId、百度统计token怎么获取,在网上找的教程都是几年前老的教程,因此给大家出一期详细百度统计siteId、百度统计token、百度统计代码获取详细步骤教程。 二、登录到百度统计 1.1 登录到百度统计官网 使用…...

【C++ 学习 ㉘】- 详解 C++11 的列表初始化
目录 一、C11 简介 二、列表初始化 2.1 - 统一初始化 2.2 - 列表初始化的使用细节 2.2.1 - 聚合类型的定义 2.2.2 - 注意事项 2.3 - initializer_list 2.3.1 - 基本使用 2.3.2 - 源码剖析 一、C11 简介 1998 年,C 标准委员会发布了第一版 C 标准࿰…...

OpenCV12-图像卷积
OpenCV12-图像卷积 图像卷积 图像卷积 OpenCV中提供了filt2D()函数用于实现图像和卷积模板之间的卷积运算: void filter2D(InputArray src, // 输入图像OutputArray dst, // 输出图像int ddepth, // 输出图像数据类型(深度)ÿ…...

MVCC与BufferPool缓存机制
MVCC多版本并发控制机制 Mysql在可重复读隔离级别下如何保证事务较高的隔离性,我们上节课给大家演示过,同样的sql查询语句在一个事务里多次执行查询结果相同,就算其它事务对数据有修改也不会影响当前事务sql语句的查询结果。 这个隔离性就是…...

POI、Easy Excel操作Excel
文章目录 1.常用的场景2.基本功能3.Excel在Java中是一个对象4. 简单的写(07版本(.xlsx)Excel)大文件写HSSF大文件写XSSF大文件写SXSSF 5. Excel读5.1 读取遇到类型转化问题该怎么解决5.2 遇到Excel公式怎么办 6. Easy Excel6.1简单…...

网络安全(黑客)自学方向
每年报考网络安全专业的人数很多,但不少同学听说千万别学网络安全,害怕网络安全专业很难就业。下面就带大家深入了解一下网络安全专业毕业后可以干什么,包括网络安全专业的就业前景和方向等。 随着信息化时代的到来,网络安全行业…...

react写一个简单的3d滚轮picker组件
1. TreeDPicker.tsx文件 原理就不想赘述了, 想了解的话, 网址在: 使用vue写一个picker插件,使用3d滚轮的原理_vue3中支持3d picker选择器插件-CSDN博客 import React, { useEffect, useRef, Ref, useState } from "react"; import Animate from "../utils/an…...

Compose竖向列表LazyColumn
基础列表一 LazyColumn组件中用items加载数据,rememberLazyListState()结合rememberCoroutineScope()实现返回顶部。 /*** 基础列表一*/ Composable fun Items() {Box(modifier Modifier.fillMaxSize()) {val context LocalContext.currentval dataList arrayLi…...