专注徐州网站开发廊坊排名推广

bicheng/2026/1/15 18:15:06/文章来源:
专注徐州网站开发,廊坊排名推广,上海建筑公司排名,网站百度不收录了在一般的互联网应用中限流是一个比较常见的场景#xff0c;也有很多常见的方式可以实现对应用的限流比如通过令牌桶通过滑动窗口等等方式都可以实现#xff0c;也可以在整个请求流程中进行限流比如客户端限流就是在客户端通过随机数直接返回成功失败来决定是否发起请求。也可…   在一般的互联网应用中限流是一个比较常见的场景也有很多常见的方式可以实现对应用的限流比如通过令牌桶通过滑动窗口等等方式都可以实现也可以在整个请求流程中进行限流比如客户端限流就是在客户端通过随机数直接返回成功失败来决定是否发起请求。也可以在网关层直接根据一定策略丢弃一部分流量达到限流的目的亦可请求到业务端后由业务端判断是否进行限流。而一般的service mesh框架会在代理的sidecar部分完成限流的工作。今天就讲讲dapr是如何通过简易的配置来实现一个限流的。目录一、通过Dapr实现一个简单的基于.net的微服务电商系统二、通过Dapr实现一个简单的基于.net的微服务电商系统(二)——通讯框架讲解三、通过Dapr实现一个简单的基于.net的微服务电商系统(三)——一步一步教你如何撸Dapr四、通过Dapr实现一个简单的基于.net的微服务电商系统(四)——一步一步教你如何撸Dapr之订阅发布通过Dapr实现一个简单的基于.net的微服务电商系统(五)——一步一步教你如何撸Dapr之状态管理通过Dapr实现一个简单的基于.net的微服务电商系统(六)——一步一步教你如何撸Dapr之Actor服务附录(如果你觉得对你有用请给个star)一、电商Demo地址https://github.com/sd797994/Oxygen-Dapr.EshopSample二、通讯框架地址https://github.com/sd797994/Oxygen-Dapr  Dapr限流包含两种模式一种是客户端限流一种是服务端限流。  客户端限流简单来讲就是对下游服务的一种限流保护举个例子比如我的网关要保护后面的所有服务我可以配置一个ratelimit的component下游限流注入到网关的sidecar中Dapr会为流经该网关实例的流量的下游服务根据远程IP和路径进行限流确保单位时间内最大请求数被限制在规定范围之内。   下面我们就来模拟这种限流模式首先我们创建一个类型为middleware.http.ratelimit的Component其metadata可以设置一个maxRequestsPerSecond参数代表每秒流经该sidecar的请求最大能通过多少前往下游服务。如果超出这个请求则sidecar会直接返回一个429响应码提示客户端请求过多apiVersion: dapr.io/v1alpha1 kind: Component metadata:name: ratelimit spec:type: middleware.http.ratelimitversion: v1metadata:- name: maxRequestsPerSecondvalue: 1  接着我们配置一个Configuration并注入到clientsample的deployment中(注意红字部分)apiVersion: dapr.io/v1alpha1 kind: Configuration metadata:name: appconfig spec:httpPipeline:handlers:- name: ratelimittype: middleware.http.ratelimitapiVersion: apps/v1 kind: Deployment metadata:name: clientsamplelabels:app: clientsample spec: replicas: 1selector:matchLabels:app: clientsampletemplate: metadata:labels: app: clientsampleannotations:dapr.io/enabled: truedapr.io/app-id: clientsampledapr.io/app-port: 80dapr.io/config: appconfigspec:containers:- name: webimage: clientsample:releaseimagePullPolicy: Neverports:- containerPort: 80  现在我们在代码中让clientsample通过多现成同时发起10个下游请求 public async Taskdynamic Call(){var result1 new OutDto();var remoteService serviceProxyFactory.CreateProxyIHelloService();var tasks new TaskOutDto[10];for (int i 0; i 10; i){tasks[i] remoteService.HelloWorldByName(new InputDto() { Name xiaoming });}await Task.WhenAll(tasks);foreach (var item in tasks){Console.WriteLine($result is :{(item.GetAwaiter().GetResult().Word ?? noresult)});}return 操作完成;}  可以看到并发访问10条task只有1条返回了result其余的请求发送到自己的sidecar后就直接返回429然后被通讯框架捕获429后抛到日志中。  接下来我们看看服务端模式服务端模式顾名思义就是保护自己确保所有流向自己的请求会以一个限定频率被处理,有点类似于C#的semaphore通过信号量来阻塞线程并发访问数。注意该模式并不是通过限制每秒流量来实现的而是指同时只能有多个请求被处理。  接着我们看看yaml需要调整的部分通过dapr.io/app-max-concurrency参数即可实现并发数控制apiVersion: apps/v1 kind: Deployment metadata:name: servicesamplelabels:app: servicesample spec: replicas: 1selector:matchLabels:app: servicesampletemplate: metadata:labels: app: servicesampleannotations:dapr.io/enabled: truedapr.io/app-id: servicesampledapr.io/app-port: 80dapr.io/app-max-concurrency: 1spec:containers:- name: webimage: servicesample:releaseimagePullPolicy: Neverports:- containerPort: 80  clientsample不用修改我们在servicesample的方法中增加以下模拟耗时操作  重新生成后注意需要删除之前配置在clientsample上的dapr.io/config我们通过postman模拟发起请求  可以看到请求全部都执行成功并获取回调了但是整个请求耗时是10秒恰好就是一次处理1个请求单个请求耗时1秒得到的结果我们可以再次验证一下将app-max-concurrency设置为2应该会5秒请求完毕  可以看到信号量每次放入了两个线程同步处理我们的请求确实被压缩到了5秒处理完毕。  整个限流其实分为下游限流并发控制两种方式其实都是为了保护自己/下游服务。另外大家注意一下如果你的请求并不是通过sidecar进入到服务的比如直接暴露服务端口到network或通过ingressservice的方式访问应用也就是说流量不走sidecar则无法通过dapr进行限流关于限流今天就到这下次分享一下如何做链路监控~相关文章Dapr能否引领云原生中间件的未来云原生 | 阿里巴巴的Dapr实践与探索Dapr | 云原生的抽象与实现Dapr 可视化指南Dapr 知多少 | 分布式应用运行时Dapr 正式发布 1.0Dapr 交通流量控制示例Dapr是如何简化微服务的开发和部署微软开源微服务运行时Dapr赋能云原生应用开发YARP实现Dapr服务调用的反向代理Dapr微服务应用开发系列0概述Dapr微服务应用开发系列1环境配置Dapr微服务应用开发系列2Hello World与SDK初接触Dapr微服务应用开发系列3服务调用构件块Dapr微服务应用开发系列4状态管理构件块Dapr微服务应用开发系列5发布订阅构建块Windows环境下Dapr入门云原生 | .NET 5 with Dapr 初体验通过Dapr实现一个简单的基于.net的微服务电商系统通过Dapr实现一个简单的基于.net的微服务电商系统(二)——通讯框架讲解通过Dapr实现一个简单的基于.net的微服务电商系统(三)——一步一步教你如何撸Dapr通过Dapr实现一个简单的基于.net的微服务电商系统(四)——一步一步教你如何撸Dapr之订阅发布通过Dapr实现一个简单的基于.net的微服务电商系统(五)——一步一步教你如何撸Dapr之状态管理通过Dapr实现一个简单的基于.net的微服务电商系统(六)——一步一步教你如何撸Dapr之Actor服务

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

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

相关文章

新农村建设管理网站深圳模板建站代理

目录 1. 软件包管理器yum 1.1 概念介绍 1.2 更换镜像源(可选) 1.3 工具的搜索/查看/安装/卸载 1.4 优势 2. vim编辑器 2.1 vi和vim 2.2 三种常用模式和操作 2.3 配置vim 3. Linux编译器-gcc/g 4. Linux调试器-gdb 5. make和Makefile 6.…

深圳网站建设服务商万创网两新支部网站建设

目录 前言一、安装1.安装K3S2.提前导入redis、PG镜像3.安装AWX4.启动web页面5.卸载干净 二、使用1.登陆密码2.中英文切换3.查看当前版本 三、总结 前言 我们都听过Ansible,它本质上是一个进行了封装的Shell,优点在于它是去中心化的工具,可以…

个人网站做哪种能赚钱德阳网站建设优化

写在前面: 本文默认已经创建了项目,如果不知道如何创建一个空项目的,请参看以下两篇博文 PyQt5将项目搬到一个新的虚拟环境中 https://blog.csdn.net/m0_37967652/article/details/122625280 python_PyQt5开发工具结构基础 https://blog.cs…

3d建模在线制作网站大学生网络推广实训报告

在构建和管理爬虫系统时,使用Docker和Kubernetes可以带来诸多好处,如方便的部署、弹性伸缩和高可靠性。然而,正确的部署和运维实践对于确保系统稳定运行至关重要。在本文中,我将分享爬虫系统在Docker和Kubernetes上的最佳部署和运…

用户后台网站取消wordpress激活邮件

chatglm2部署在本地时,需要从huggingface上下载模型的权重文件(需要科学上网)。下载后权重文件会自动保存在本地用户的文件夹上。但这样不利于分享,下面介绍如何将chatglm2模型打包部署。 一、克隆chatglm2部署 这个项目是chatgl…

郑州网站快速制作网站建设的专业术语

解题思路: 小习惯 本题先看看源码或者检查一下,可能这是俺的一个小习惯。 源码里面都看到了php的代码 php代码解析: $cat$_GET[cat]; echo $cat; if($catdog){ echo Syc{cat_cat_cat_cat}; } 1.$ca…

800多块做网站dw做简易表格网站

不同于上篇文章只用代码控制,这次我们要再加上独立按键一同控制LED灯 目录 独立按键控制LED亮灭:代码实现: 独立按键控制LED状态:代码实现: 独立按键实现二进制LED显示:代码实现: 独立按键控制…

房产中介网站seo推广公司网站模板

附录 A、算法分析 原文:Appendix A Analysis of algorithms 译者:飞龙 协议:CC BY-NC-SA 4.0 自豪地采用谷歌翻译 部分参考了《Think Python 2e 中译本 第二十一章:算法分析》 算法分析 (Analysis of algorithms) 是计算机科学的一…

WordPress网站接入公众号哈尔滨设计优化公司

文章目录 过程对比1.通过构造参数向vector中插入对象(emplace_back更高效)2.通过插入实例对象(调用copy函数)3.通过插入临时对象(调用move函数) 效率对比emplace_back 的缺点 我们以STL中的vector容器为例。…

cms网站开发php海阳市最新新闻热点

1 例子 假设:原始数据为8位,纠错码为6位,原始信息由原始数据纠错码。 在传输过程中,由于信息干扰等原因,导致原始信息被污染,被污染后有两位数据被修改。 说明编码原始信息001010011011100被污染后的信息…

自己做的网站怎么传到服务器wordpress内容分享微信

文章目录 1. 前言2. 工作原理和主要作用3. 基础控件3.1 重要参数及文本和按钮3.1.1 GUI 共同点3.1.2 文本控件3.1.3 按钮控件 3.2 多选框和单选框3.2.1 多选框3.2.2 单选框3.2.3 输入框3.2.4 拖动条 3.3 图片绘制和框3.3.1 图片3.3.2 框绘制 4 工具栏和选择网格4.1 工具栏4.2 选…

网站上线 文案互联网平台怎么建立

简介:本系列博客为C深度解剖系列内容,以某个点为中心进行相关详细拓展 适宜人群:已大体了解C语法同学 作者留言:本博客相关内容如需转载请注明出处,本人学疏才浅,难免存在些许错误,望留言指正 作…

设计服务网站wordpress 如何安装教程

208. 实现 Trie (前缀树) - 力扣(LeetCode) 总结: Trie,又称前缀树或字典树,是一棵有根树,其每个节点包含以下字段: 指向子节点的指针数组 children。对于本题而言,数组长度为 26…

儋州市住房和城乡建设局官方网站免费行情软件app网站mnu

2014年微软组织并成立.NET基金会,微软在成为主要的开源参与者的道路上又前进了一步。2014年以来已经有众多知名公司加入.NET基金会,Google,微软,AWS三大云厂商已经齐聚.NET基金会,在平台项目中,.NET平台上有…

广州网站营销python适合网站开发吗

文 | 大东出品 | OSC开源社区(ID:oschina2013)2002 年,莫斯科当地时间 4 月 25 日 9 时 26 分,满载着补给和 3 名宇航员的“联盟-TM 号”航天飞船在“联盟 U”火箭的推进下飞往国际空间站。同行的三人中,年…

兰州哪里做网站wordpress网页教程

7.1 视图容器组件 7.1.2 scroll-view组件 scroll-view组件时是滚动的视图容器,可在竖直方向或水平方向上滚动,展示超出屏幕高度或宽度的内容。 使用竖直方向滚动时,需要通过wxss的height样式给scroll-view设置一个固定高度,超出…

wordpress 获取首页地址百度快照优化推广

不知不觉服务器存储空间被Docker掏空了… 查看Docker空间占用情况 使用docker system df命令,可以加 -v 查看详情 清理Docker不需要的内容 使用docker system prune -a命令清理Docker 所有停止的容器所有没有被使用的networks所有没容器的镜像所有build cache …

免费 网站模板杭州市城乡规划局建设局官方网站

一、设计模式概念及设计原则 记得刚开始学编程的时候就看过设计模式相关的书籍,虽然当时有很多地方都不理解,但是建立了早期对架构设计的意识,让后面的学习和工作中受益匪浅,最近两年也一直在做架构设计方面的工作,解开…

百度移动端网站网站 head关键字 密度 多少字

进行现货黄金理财,除了需要投资者对黄金投资有热情之外,有方法也是很重要的,光有热情而没有技术,我们的资金很可能会成为其他人的囊中之物。但如果有了现货黄金理财的技术,情况就可能扭转过来。下面我们就从买入的角度…

微信小程序制作网站wordpress域名修改数据库

一、无人机模型介绍 单个无人机三维路径规划问题及其建模_无人机路径规划场景建模-CSDN博客 参考文献: [1]胡观凯,钟建华,李永正,黎万洪.基于IPSO-GA算法的无人机三维路径规划[J].现代电子技术,2023,46(07):115-120 二、人工原生动物优化算法APO求解无人机路径规…