Proxy 代理模式

kube-proxy的三种代理模式 前言 Service是k8s中资源的一种,也是k8s能够实现减少运维工作量,甚至免运维的关键点,我们公司的运维都要把服务搭在我们集群里,接触过的人应该都能体会到其方便之处。Service能将pod的变化屏蔽在集群内部,同时提供负载均衡的能力,自动将请求流量分布到后端的pod,这一功能的实现靠的就是kube-proxy的流量代理,一共有三种模式,userspace、iptables以及ipvs。 ... 阅读详情

模式定义

当客户类因为不适合、性能限制或者权限问题而无法(或性能较差)访问一种对象的时候,提供一种代理的机制,由代理来完成客户类的一系列请求。改代理能比较好地直接访问该对象。

使用方法


Proxy替Client来完成对RealSubject的直接访问。

使用范围

代理使用的范围比较多,如:

  • 远程代理,适合远距离的对象传输或不在同一个地址空间内而比较耗时的对象访问
  • 虚拟代理,当创建一个开销很大的对象时,可以使用该代理模式,使其只有当需要被创建或访问的时候才创建
  • 保护代理,适合权限对某对象实施保护而客户类需要能访问其的时候

举例说明

此处,我们只举例虚拟代理的方式。假设需要在本地加载并显示一个图片,该图片十分庞大比较耗内存,那么可以短暂地先使改图片的占位符能显示在屏幕上,同时,启用另一个线程加载该图片:

public interface Image {
    public void displayImage();
}

--------
public class RealImage implements Image{
	private String filename;
	public void displayImage() {
		System.out.println("Display Real Image: " + filename);
	}
	public RealImage(String filename){
		this.filename = filename;
		loadImageFromDisk();
	}
	private void loadImageFromDisk(){
		System.out.println("Loading Real Image: " + filename);
	}

}

--------
public class DummyImage implements Image{
	private String filename;
	public void displayImage() {
		System.out.println("Display Dummy Image: " + filename);
	}
	public DummyImage(String filename){
		this.filename = filename;
		loadDummyImage();
	}
	private void loadDummyImage(){
		System.out.println("Prepare Dummy Image: " + filename);
	}

}

观察如上列出的两个实现Image的类。RealImage是实际加载图片的类,而DummyImage是实现占位功能的类,用来显示类似一个空白图片。

接下来需要创建Image的代理类。该类必须有如下功能:在RealImage还没有全部加载之前,启用DummyImage并返还给客户类,显示DummyImage。而当RealImage加载完成之后,则实际返回该类。

public class ProxyDisplay implements Image {
	private String filename;
	private Image img;
	private Image realImg;
	public ProxyDisplay(String filename){
		this.filename = filename;
	}
	public void displayImage(){
		if (img == null){
			img = new DummyImage(filename);
			realImg = new RealImage(filename); //注
		}else if (img instanceof  DummyImage){
			img = realImg;
		}
		img.displayImage();
	}

}

注意如上代码的注处:最好的实现方式是启用一个线程,同步加载。

最后客户类调用Proxy来加载图片。

public class ProxyClient {
	public static void main(String args[]){
		ProxyDisplay pimg = new ProxyDisplay("hello.gif");
		pimg.displayImage();
		pimg.displayImage();
	}
}

下载示例

代理模式(proxy) 代理模式(proxy) 代理模式:为其他对象提供一种代理以控制对这个对象的访问。 代理模式的应用 一、远程代理,也就是为了一个对象在不同的地址空间提供局部代表,这样可以隐藏一个对象存在于不同地址空间的事实。 二、虚拟代理,是根据需要创建开销很大的对象。通过它来存放实例化需要很长时间的真实对象。这样可以达到性能最优化。 三、安全代理,用来控制真实对象访问时的权限。 四、智能指引,是指... 阅读详情

相关推荐

http代理

NULL 博文链接:https://angrycoder.iteye.com/blog/1682007

设计模式之代理模式(Proxy)

代理模式(Proxy):为其他对象提供一种代理以控制这个对象的访问. 使用环境:1.远程代理,也就是为一个对象在不同的地址空间提供局部代表,这样额可以隐藏一个对象存在于不同的地址空间的事实2.虚拟代理,根据需要创建开销很大的对象。通过它来存放实例化需要很长时间的真实对象。3.安全代理,用来控制真实对象访问时的权限。4.智能指引,是指当调用真实的对象时,代理处理另外一些事 Subject.cs:

wendy_soft的专栏 508

代理Proxy

博客里面写了一篇介绍Proxy的文章,这里面是几个案例和源码,有需要的下载

代理(Proxy)

在 Spring 框架中,生成代理类的主要目的是为了实现 AOP(面向切面编程)和其他增强功能。Spring 启动时生成代理类的原因在于,某些功能无法直接通过目标对象本身实现,而需要通过代理机制来动态地为目标对象添加额外的行为。

一个public的class的博客 1725

Genesis物理引擎实战指南:轻量级确定性刚体仿真核心

刚体物理仿真作为机器人控制、嵌入式运动学验证和确定性游戏开发的基础技术,其核心在于数值稳定性、跨平台可复现性与约束求解精度。本文围绕线性互补问题(LCP)求解、半隐式欧拉积分和零依赖C++实现三大关键技术展开,解析如何在无GUI、低算力环境下构建可单步调试、帧级可控的确定性仿真系统。重点覆盖碰撞检测数学建模、关节局部坐标系绑定、质量-惯性张量一致性校验等工程落地关键点,适用于STM32、树莓派及教育实验场景。内容深度结合Genesis Physics Engine的源码实践,直击‘穿模’‘NaN’‘关节发软

ciya3282的博客 1592

Gromacs实战:从蛋白质-小分子对接到分子动力学模拟全流程解析

本文详细解析了使用Gromacs进行蛋白质-小分子对接和分子动力学模拟的全流程,包括文件准备、拓扑生成、复合物构建、溶剂化处理、能量最小化及平衡模拟等关键步骤。通过实战案例,帮助研究者验证药物分子与靶标蛋白的结合稳定性,提升分子动力学模拟的效率和准确性。

weixin_29216353的博客 386

网络代理详解

代理是一种通过中间服务器来帮助客户端访问目标服务器的技术。代理服务器位于客户端与服务器之间,充当两者的中介,从而实现客户端和服务器之间的隔离。用户的所有请求经过代理后,再发往目标服务器,而目标服务器的响应则返回代理,再由代理传递给用户。

yymagicer的博客 1万+

CST新手必看:共面波导色散曲线绘制全流程(附参数设置详解)

本文为CST新手提供了绘制共面波导色散曲线的完整流程与参数设置详解。从模型搭建、周期性边界条件设置,到本征模求解器配置和参数扫描技巧,逐步解析关键步骤,并分享后处理与结果验证方法,帮助用户高效完成仿真任务。

j0k1l2m3n的博客 425

代理是什么及如何使用

代理是什么及如何使用

Whoo_的博客 3005

STM32 超声波模块输入捕获测距(标准库)

通道2设置为下降沿触发,触发瞬间会将CNT的记录到CCR2中,由于上升沿触发时已经将CNT置零所以此时的CNT的值就是高电平的持续时间。通道1设置为上升沿触发,触发的瞬间会将CNT的值记录到CCR1里面,同时设置通道1触发带有从模式,并把从模式设置为置零CNT。超声波传感器模块上面通常有两个超声波元器件,一个用于发射,一个用于接收。电路板上有四个引脚:VCC、GND、Trig(触发)、Echo(回应)。输入捕获原理可以看看这位大佬,感觉写的很清楚,工作电压与电流:5V,15mA。感测角度:不小于15度。

qq_62425900的博客 2083

使用 MATLAB/Simulink + Simscape Electrical + SimPowerSystems + Stateflow,构建一个多能互补微电网系统的动态响应仿真模型

本文详细介绍了使用MATLAB/Simulink构建多能互补微电网动态响应仿真模型的方法。文章从系统架构设计入手,包含光伏、风电、柴油发电机、锂电池储能等多种组件,重点讲解了建模过程、控制策略(下垂控制、PLL、SOC管理)和模式切换逻辑(Stateflow)。通过四种典型场景(负荷突增、光伏出力骤降、并网/孤岛切换、电动机启动)的仿真分析,验证了微电网在动态响应中的关键性能指标,并提出了高可靠性设计建议。该模型为微电网的稳定性分析和优化设计提供了有效工具,特别强调了储能系统在快速功率支撑中的重要作用。

amy_mhd的博客 160

Proxy代理模式

[list] [*] [/list][code="java"] Proxy代理模式是一种结构型设计模式,主要解决的问题是:在直接访问对象时带来的问题,比如说:要访问的对象在远程的机器上。在面向对象系统中,有些对象由于某些原因(比如对象创建开销很大,或者某些操作需要安全控制,或者需要进程外的访问),直接访问会给使用者或者系统结构带来很多麻烦,我们可以在访问此对象时加上一个对此对象的访问层。如下...

大米文子 8043

库存优化技术提升电商效率

第一部分:库存优化技术基础 第1章:库存优化的基本概念 库存优化是现代电商运营中至关重要的一个环节。简单来说,库存优化指的是通过一系列的策略和技术手段,使得库存管理更加高效、准确,从而降低运营成本,提高销售额。 1.1 库存优化的定义与重要性

AI天才研究院 1248

代理模式(Proxy)

设计模式系列 Proxy代理模式——对象结构模式 1.意图 为其他对象提供一种代理以控制对这个对象的访问。 2.适用性 在需要用比较通用和复杂的对象指针代替简单的指针的时候,使用Proxy模式。 1)远程代理(Remote Proxy)为一个对象在不同的地址空间提供局部代表。 2)虚代理(Virtual Proxy)根据需要创建开销很大的对象。 3)保护代理(Protecti...

行走 897

AEJoy —— 最受欢迎的 5 个 Ae 表达方式

NOTE] 原文作者我意识到表达式可能令人生畏,有些人宁愿复制粘贴有用的代码,而不愿学习这门语言。对此我完全理解。因此,我想与您分享我的。这些是我几乎在每个项目中都会使用的表达式,我认为它们极大地提升了工作流程。

ShaderJoy 的兴趣技术杂货铺 366

PMP–一、二、三模–分类–13.干系人管理

A:确认是否已制定沟通管理计划,使业务干系人认识到项目的成功之处。B:让业务干系人参加冲刺回顾会议。C:与发起人和关键干系人一起确定产品待办事项列表中的优先要务,以便交付商业利益。D:为关键干系人开展收尾调研。C。

stqer的博客 1418

kube-proxy代理模式详解

kube-proxy代理模式详解kube-proxy当前支持以下几种代理模式:1、userspace:最早的负载均衡方案,它在用户空间监听一个端口,所有服务通过iptables转发到这个端口,然后在其内部负载均衡到实际的Pod。该方式最主要的问题是效率低,有明显的性能瓶颈,不再推荐使用。比如说创建一个service,对应的IP:1.2.3.4,port:8888,kube-proxy随机选择的端口是32890,则会在iptables中追加。

nings666的博客 1124

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

转 ——Proxy代理模式

Proxy代理模式是一种结构型设计模式,主要解决的问题是:在直接访问对象时带来的问题,比如说:要访问的对象在远程的机器上。在面向对象系统中,有些对象由于某些原因(比如对象创建开销很大,或者某些操作需要安全控制,或者需要进程外的访问),直接访问会给使用者或者系统结构带来很多麻烦,我们可以在访问此对象时加上一个对此对象的访问层。如下图: 比如说C和A不在一个服务器上,A要频...

weixin_30294709的博客 139

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

查看k8s集群kube-proxy的代理模式

查看k8s集群中kube-proxy的代理模式

weixin_47729423的博客 5935

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

Java —— Proxy 代理模式

Java —— 代理模式

Genius only means hard-working all one's life. 535

代理模式Proxy

public class MainActivity extends AppCompatActivity { TextView textView; Button button; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstan...

96
上一篇: Facade 外观模式
下一篇: Interpreter 解释器模式
zigzagsoft
博客等级 码龄19年 34粉丝 50原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值