SpringCloud学习笔记003---服务提供者和服务消费者补充:反向代理
作者:车小胖
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
技术交流qq群,交流起来方便一些:170933152
很久以前,老王去饭店吃饭,需要先到饭店,七荤八素点好菜,坐等饭菜上桌,然后大快朵颐,不亦乐乎。
有了第三方订餐外卖平台(代理),老王懒得动身前往饭店,老王打个电话或用APP,先选好某个饭店,再点好菜,外卖小哥会送上门来。
由于某个品牌的饭店口碑特别好,食客络绎不绝涌入,第三方订餐电话也不绝于耳,但是限于饭店接待能力有限,无法提供及时服务,很多食客等得不耐烦了,纷纷铩羽而归,饭店老总看着煮熟的鸭子飞走了,心疼不已。
痛定思痛,老总又成立了几个连锁饭店,形成一个集群,对外提供统一标准的菜品服务,电话订餐电话400-xxx-7777,当食客涌入饭店总台,总台将食客用大巴运到各个连锁店,这样食客既不需要排队,各连锁店都能高速运转起来,一举两得,老总乐开了花,并为此种运作模式起名为“反向代理”(Reverse Proxy)。
反向代理
在计算机世界里,由于单个服务器的处理客户端(用户)请求能力有一个极限,当用户的接入请求蜂拥而入时,会造成服务器忙不过来的局面,可以使用多个服务器来共同分担成千上万的用户请求,这些服务器提供相同的服务,对于用户来说,根本感觉不到任何差别。
反向代理的实现
1)需要有一个负载均衡设备来分发用户请求,将用户请求分发到空闲的服务器上
2)服务器返回自己的服务到负载均衡设备
3)负载均衡将服务器的服务返回用户
以上的潜台词是:用户和负载均衡设备直接通信,也意味着用户做服务器域名解析时,解析得到的IP其实是负载均衡的IP,而不是服务器的IP,这样有一个好处是,当新加入/移走服务器时,仅仅需要修改负载均衡的服务器列表,而不会影响现有的服务。
谈完反向代理服务,再来谈谈终端用户常用的代理服务。
代理
1)用户希望代理服务器帮助自己,和要访问服务器通信,为了实现此目标,需要以下工作:
a) 用户IP报文的目的IP = 代理服务器IP
b) 用户报文端口号 = 代理服务器监听端口号
c) HTTP 消息里的URL要提供服务器的链接
2)代理服务器可以根据c)里的链接与服务器直接通信
3)服务器返回网页
4)代理服务器打包3)中的网页,返回用户。
代理服务器应用场景
场景一
如果不采用代理,用户的IP、端口号直接暴露在Internet(尽管地址转换NAT),外部主机依然可以根据IP、端口号来开采主机安全漏洞,所以在企业网,一般都是采用代理服务器访问互联网。
那有同学会有疑问,那代理服务器就没有安全漏洞吗?
相比千千万万的用户主机,代理服务器数量有限,修补安全漏洞更方便快捷。
场景二
在一个家庭局域网,家长觉得外部的世界是洪水猛兽,为了不让小盆友们学坏,决定不让小盆友们访问一些网站,可小盆友们有强烈的逆反心理,侬越是不让我看,我越是想看,于是小盆友们使用了代理服务器,这些代理服务器将禁止访问的网页打包好,然后再转交给小盆友,仅此而已。
当然关键的关键是代理服务器不在禁止名单当中!
正向代理代理客户端,反向代理代理服务器
SpringCloud学习笔记003---服务提供者和服务消费者补充:反向代理相关推荐
- SpringCloud学习笔记(五)服务发现Discovery
对于注册进Eureka里的微服务,可以通过服务发现来获得该服务的信息 以下代码以payment8001模块为例 修改COntroller 通过调用DiscoveryClient的getServices ...
- SpringCloud学习笔记02-服务提供者与服务消费者
文章目录 前言 一.SpringCloud简介? 二.SpringCloud特点 三.实战前提 1. 技术储备 2. 开发工具 四.编写服务消费者和提供者 1. 编写服务提供者 1. 构建项目 2. ...
- SpringCloud学习笔记003---服务提供者和服务消费者
============================================================= 服务提供者与服务消费者 技术交流群:170933152 ========== ...
- SpringCloud学习笔记(1)- Spring Cloud Netflix
文章目录 SpringCloud学习笔记(1)- Spring Cloud Netflix 单体应用存在的问题 Spring Cloud Eureka Eureka Server代码实现 Eureka ...
- SpringCloud学习笔记(6)----Spring Cloud Netflix之负载均衡-Ribbon的使用
1. 什么是负载均衡? 负载均衡,就是分发请求流量到不同的服务器. 负载均衡一般分为两种 1. 服务器端负载均衡(nginx) 2. 客户端负载均衡(Ribbon) 2. 服务提供者(spring-c ...
- 分布式系统服务注册与发现原理 SpringCloud 学习笔记
分布式系统服务注册与发现原理 & SpringCloud 学习笔记 分布式系统服务注册与发现原理 引入服务注册与发现组件的原因 单体架构 应用与数据分离 集群部署 微服务架构 架构演进总结 服 ...
- SpringCloud 学习笔记(1 / 3)
Spring Cloud 学习笔记(2 / 3) Spring Cloud 学习笔记(3 / 3) 文章目录 01\_前言闲聊和课程说明 02\_零基础微服务架构理论入门 03\_第二季Boot和Cl ...
- SpringCloud(第 003 篇)服务发现服务端EurekaServer微服务
SpringCloud(第 003 篇)服务发现服务端EurekaServer微服务 - 一.大致介绍 1.众所周知,在现在互联网开发中,访问地址的IP和端口号是动态的,一个服务停掉再重新启用后IP和 ...
- SpringCloud学习笔记(1)- Spring Cloud Alibaba
文章目录 SpringCloud学习笔记(1)- Spring Cloud Alibaba 服务治理 Nacos 服务注册 Nacos 服务发现与调用 Ribbon 负载均衡 Sentinel 服务限 ...
最新文章
- C++成员对象和封闭类
- 关于NHibernate
- 前后台传参类型、格式不同,解决思路
- 投资银行对Java进行的二十大核心面试问答
- linux gcc 简单使用记录01
- matlab画线不同颜色_怎样画线框图才有意义
- 命令端口C++检测本地网络端口占用
- 【数字信号】基于matlab GUI DTMF双音多频手机拨号仿真系统【含Matlab源码 1085期】
- 移动硬盘连接计算机接口类型,移动硬盘数据线接口类型有哪几种-单usb接口
- 根据录入的计算公式计算_增值税含税怎么计算?
- Mac CAD2018 安装完成后,打开注册机时出现 应用程序“02_注册机”不能打开。
- Ubuntu 22.4网易云音乐启动失败处理方法
- java 访问 domino_java程序远程访问Domino数据库简例
- 阶层是一条漫长的阶梯,你能爬到第几层?
- 仿qq聊天程序设计之借鉴
- 无lnternet_无internet访问,详细教您怎么解决无internet访问
- 交换机端口的PVID
- luogu P1332 血色先锋队
- 2020软件测试行业趋势
- docker login登录阿里云
热门文章
- 网络分裂(network partition)
- Spring IOC学习心得之源码级分析ContextLoaderListener的作用(IOC容器初始化入口)
- [2019.3.25]多项式求逆
- 5月8日——iOS中的3D Touch效果
- Android基础巩固进阶
- 移动国家号(MCC)
- Java 学习笔记之 线程安全
- 一个核物理学霸为何两次收到BlackHat的邀请
- Linux 删除mysql数据库失败的解决方法
- ASP.NET MVC View使用Conditional compilation symbols