首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏陈猿解码

    RabbitMQ——

    在rabbitmq的实现中,为了防止消息发送速度过快,最终因大量消息的堆积导致异常,内部基于credit算法实现了一套机制。 来看一个实际的例子,下面两幅图分别为出现时网络接收进程与通道进程对应进程字典的信息。 ---- 【消费者的】 对于生产者的消息发送流程,我们看到了进程间的消息。 而对于消费者的消费流程,实际上也有一个进程间的消息,在这些进程之间也使用到了信用机制,避免因网络发送慢,消息都堆积在网络发送进程中从而出现内存溢出等异常问题。 ---- 【总结】 本文讲述了基于信用的机制的相关原理,以及rabbitmq内部逻辑在生产、消费过程中的处理机制。

    1.3K20编辑于 2023-02-28
  • 来自专栏陈猿解码

    【RabbitMQ——再谈

    【前言】 最近又被问题缠住了,不懂其中原理的总会以界面上显示为flow来说事。那界面上连接、通道的flow状态的显示到底是怎么回事?显示为flow是否就是影响或阻塞生产者的消息发送了? 连接、通道(其实还包括队列)的flow状态主要由credit_flow算法决定(详细请戳《RabbitMQ——》)。 另外,有些文章中会提到,rabbitmq节点的内存到达一定水位,或者磁盘空间的使用到达一定程度也会导致连接的

    1.2K20编辑于 2023-02-28
  • 来自专栏陶然同学博客

    【Sentinel】模式

    :流量控制 降级:降级熔断 热点:热点参数限流,是限流的一种 授权:请求的权限控制   2.快速入门 2.1.示例 点击资源/order/{orderId}后面的按钮 2.2.练习 需求:给 /order/{orderId}这个资源设置规则,QPS不能超过 5,然后测试。 结果: 可以看到,成功的请求每次只有5个   3.模式 在添加限流规则时,点击高级选项,可以选择三种模式: 直接:统计当前资源的请求,触发阈值时对当前资源直接限流,也是默认的模式 关联 我们是对订单查询/order/query限流,因此点击它 后面的按钮: 在表单中填写规则: 4)在Jmeter测试 选择《模式-关联》: 可以看到1000个用户,100秒,因此QPS为10 点击goods资源后面的按钮,在弹出的表单中填写下面信息:  只统计从/order/query进入/goods的资源,QPS阈值为2,超出则被限流。

    1.1K20编辑于 2023-02-24
  • 来自专栏问天丶天问

    服务(Sentinel)

    ; return "被了!!!!"; } catch (Exception e) { // 若需要配置降级规则。 FlowRule(); // 设置的资源名称 helloFlowRule.setResource(RESOURCE_NAME); // 设置规则 "); return new User(id, "被了!!!") // 规则列表 List<FlowRule> flowRuleList = new ArrayList<>(); // 规则 FlowRule ); // 设置规则 QPS userFlowRule.setGrade(RuleConstant.FLOW_GRADE_QPS); // 设置的阈值

    34510编辑于 2024-02-17
  • 来自专栏运维开发故事

    Sentinel 原理

    后续的所有内容均基于该版本进行 @ResoureSetinel 工作原理 配置规则我们最简单的方式就是通过 @ResoureSetinel 的方式来管理,该注解可以直接定义规则、降级规则。 如果触发规则首先处理异常 BlockException 然后在判断是否有服务降级的处理,如果有就调用 fallback 方法。 责任链模式处理 通过上面的梳理,我们知道对于的过程,核心处理方法就是 SphU.entry 。在这个方法中其实主要就是初始化 Solt 和执行 Solt. FlowSolt 通过 NodeSelectorSolt、CusterBuilderSolt、StatisicSlot 等一系列的请求数据处理,在 FlowSolt 会进入流规则,所有的 Solt Sentinel 通过 Web 拦截器 Sentinel 在默认情况下, 不使用 @ResourceSentinel 注解实现的时候, Sentinel 通过拦截器进行实现的。

    1.6K10发布于 2021-06-24
  • 来自专栏全栈程序员必看

    Flow Control(

    就像小学做的那道数学题:一个水池,有一个进水管和一个出水管。如果进水管水流更大,过一段时间水池就会满(溢出)。这就是没有Flow Control导致的结果。

    1.1K10编辑于 2022-09-06
  • 来自专栏SDNLAB

    解析技术演进

    作者简介:盛科网络 王俊杰 01 技术概要 1.1 技术与RDMA 随着数据中心网络技术和带宽不断发展,技术在网络中发挥着越来越重要的作用,但一直未曾有过很大变革。 直到无损网络的出现,技术出现新突破。作为以太网的基本功能之一,技术用于可以防止拥塞的情况下出现丢包,还能配合发送端合理的调整发送速率,从整体上保障网络带宽的最高效率。 基于TCP的RDMA,本质上是将“无损”寄托在TCP的可靠性上,而基于RoCEv2的无损网络则是将“无损”放在了机制。本文所提及的技术,主要是指基于RoCEv2的技术。 总结来说,RDMA网络实现“低时延”,“无丢包”,“高吞吐”的关键是技术。 02 技术原理 2.1 PFC ? HPCC借助更细粒度链路负载信息并重新设计了拥塞控制算法,能够在大规模网络下快速收敛、降低对大Buffer的依赖、保证数据的公平性。 2.8 技术对比 ? 03 技术方向与生态 ?

    3.6K10发布于 2019-12-19
  • 来自专栏全栈程序员必看

    RabbitMQ-FLow Control

    的Connection可以在rabbitmqctl、管理UI和HTTP API响应中显示flow状态。 一般来说,处于中的Connection与正常运行的Connection无任何区别;flow状态的作用是通知系统管理员(消息)发布速率受到限制,但是从客户端的角度来看,服务器的网络带宽应该比实际带宽低 除了Connection之外,其他组件也可以处于状态。Channel、Queue和系统的其他部分可以应用,最终还是体现在Connection 发布消息(生产者阻塞)。

    1.1K40编辑于 2022-09-01
  • 来自专栏全栈程序员必看

    switch(flow control)

    1.pause帧 2.非对称 3.pause时间 交换机在进行内部数据转发的时,内部需要一个package buff进行数据缓存,在多个端口同时向buff缓存数据时,在buff溢出后,最后缓存数据的端口回向连接端口发送 配置IEEE802.3X控制 ,控制在直连的以太端口上启用,在拥塞期间允许另一端拥塞的节点暂停链路运作来控制流量速率。

    1.6K10编辑于 2022-09-06
  • 来自专栏TopCoder

    sentinel 集群原理

    为什么需要集群呢? 集群中共有两种身份: Token Client:集群客户端,用于向所属 Token Server 通信请求 token。集群限流服务端会返回给客户端结果,决定是否限流。 clusterMode在方法FlowRuleChecker.canPassCheck中会用到进行判断是否是集群,false表示单机;true表示集群,会调用方法passClusterCheck 与集群server端通信判断是否触发了,此时异常降级策略为本地(fallbackToLocalOrPass方法,fallbackToLocalWhenFail属性为true时执行本地,否则直接返回 ture不走检查)。

    1.9K20发布于 2019-11-06
  • 来自专栏阿dai_linux

    tc--

    Linux 高级流量控制 本篇主要讲用 TC 对 Linux 进行高级流量控制 通过大量实践结合 TC HOWTO 文档整理而得 如果你对 Linux 感兴趣,如果你需要搭建高性能的 Linux 本文参考文档: Tc HOWTO 文档 http://www.tldp.org/HOWTO/html_single/Traffic-Control-HOWTO/ Linux TC 流量控制工具 http Linux 简介 Linux 的意义 : 有效的控制 Linux 网卡进出流量 , 了解网卡工作原理 , 搭建高性能的 Linux 网关 , 对 Linux 高级系统有进一步的认识。 Linux 流量控制方法 : 发不收 , 所以只能对产生瓶颈网卡处的发包速率进行控制 , 而网络瓶颈分析亦为 Linux 网络的第一步 . 以下文章将以二种算法的不同分别介绍: 1. 无类算法 SFQ a.

    4K41发布于 2019-04-03
  • 来自专栏问天丶天问

    Sentinel -关联模式

    关联模式 A关联B, 当B后,A 的规则也生效了 条件 A 设置高级规则,关联 B资源 B 设置普通流规则(独立规则) 实例 接口编写 package com.learning.springcloud.order.controller "/B") public Object B() { return "hi, B;"; } } 设置规则 /guanlian/A /guanlian/B 效果 B接口正常时, A也正常 B通过postman循环访问,造成B接口被 关联模式:A关联B, 当B后,A 的规则也生效了

    28110编辑于 2024-02-17
  • 来自专栏问天丶天问

    热点参数(Sentinel)

    热点参数 热点 资源必须使用注解 @SentinelResource 编写接口 以及 热点参数处理器 /** * 热点 必须使用注解 @SentinelResource * @param public Object getById(@PathVariable("id") Integer id) { return "hi, order " + id; } /** * 热点参数处理器 public Object hotParamHandler(@PathVariable("id") Integer id, BlockException be){ return id + " -> 热点了 "; } 设置热点规则 热点规则 是针对 QPS 进行的 设置入口 设置热点规则 设置第几个参数,从0开始 以及 QPS的阈值 普通值阈值为10 设置参数 编辑热点规则 -> 高级选项; 设置参数 id=2 的 阈值为2 访问效果 其他参数 10 次 之后才进行, id=2 两次之后就

    30710编辑于 2024-02-25
  • 来自专栏问天丶天问

    Sentinel -链路模式

    链路模式 A B C 三个服务 A 调用 C B 调用 C C 设置 ->链路模式 -> 入口资源是 A A、B 服务 package com.learning.springcloud.order.controller org.springframework.web.bind.annotation.RestController; /** * 链路模式: * 条件: * - A —> C; B -> C * - C 设置规则 sentinel: transport: dashboard: 127.0.0.1:8080 web-context-unify: false # 默认请求链路进行收敛 设置规则 链路 入口 A 访问 问题:为啥没有处理的消息而是访问报错??? "查询C"; } public String blockHandlerForQueryC(BlockException be) { return "queryC 被

    44710编辑于 2024-02-17
  • 来自专栏快乐阿超

    sentinel降级与熔断

    AjaxJson.success().put("data", word); } 访问控制台localhost:9000(上面配置的9000端口) 输入默认用户名密码sentinel 然后找到我们需要限流的接口点击 entry = SphU.entry("{资源名}")){}catch(BlockException e){} 后即可把这段代码作为一个受保护的资源 我们可以在catch中编写我们的降级方法 然后我们需要在规则中新建 然后可以看到我们成功实现我们的受保护资源

    84810编辑于 2022-08-16
  • 来自专栏瓜农老梁

    Sentinle集群【源码笔记】

    前言 本文从集群概览入手,按照概览的步骤逐步分析各个步骤的源码实现过程。 一、集群概览 1.集群入口 FlowSlot#checkFlow入口,由FlowRule.clusterMode来设置是否为集群,默认false。 ? 2.集群流程 ? 在没有找到TokenService时,降级为单机由ClusterFlowConfig参数fallbackToLocalWhenFail决定,默认true @3 规则ID,全局唯一标识 @4 client client向server请求token,server端处理client请求,使用netty通信 @5 处理返回结果TokenResult @6 集群失败,默认降级为单机 类图 ? @1 集群为嵌入模式,默认将appName加入namespace @2 将过期失效的namespace规则移除 @3 构建namespace、flowId、FlowRule、flowIdSet在缓存中的关系以及为每个

    1.8K10发布于 2020-10-26
  • 来自专栏运维开发故事

    Sentinel 和常用算法

    然后结合我对 Sentinel 1.8.0 的理解,给大家分享 Sentinel 在源码中如何使用这些算法进行判断。由于本人理解有限,如果有不正确的地方,希望大家能够留言讨论???。

    1.7K10发布于 2021-06-24
  • 来自专栏小康的自留地

    优雅解决LeanCloud问题

    前言 最近好多人遇到了"因原因,通过定时任务唤醒体验版实例失败,建议升级至标准版云引擎实例避免休眠"。我也遇到了这种问题,太难受了。难道白嫖结束了,羊被薅死了? 我便调整时间尝试了几天,第一天还好,但以后便又出现了导致的失败。 因此,调整时间避免的方案治标不治本。还需另寻他法。 目前方案 修改定时任务的唤醒时间 这个方案在上边我已经介绍过了,治标不治本。

    3K40发布于 2020-05-16
  • 来自专栏瓜农老梁

    Sentinel日志与索引

    前言 Sentinel是如何记录日志的,以及日志和索引的格式是怎么样的。本文将对此做个梳理。 一、日志记录 1.日志频率 日志每秒记录一次。 .2020-08-25.5.idx 二、日志检索 API说明 List<MetricNode> find(long beginTimeMs, int recommendLines) 根据开始时间,检索日志 recommendLines findByTimeAndResource(long beginTimeMs, long endTimeMs, String identity) 根据开始时间和结束时间检索日志

    3.2K10发布于 2020-09-17
  • 来自专栏小工匠聊架构

    SpringBoot - 优雅的实现【

    限流 简言之就是当请求达到一定的并发数或速率,就对服务进行等待、排队、降级、拒绝服务等操作。

    1.8K31编辑于 2022-03-01
领券