首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏一页一技术分享

    RocketMQ源码(二)消息消费的模式到底是Push还是Pull

    RocketMQ源码(二)消息消费的模式到底是Push还是Pull? RocketMQ为开发者提供了两种消息的消费模式,分别是PullPush,对应的实现是DefaultMQPullConsumer和DefaultMQPushConsumer; 接下来我将带大家通过以下几个方面了解这两种模式PullPush的使用示例跟踪源码分析两种模式的实现原理RocketMQ到底是Push还是Pull呢? 模式 这个模式解决了Pull模式请求时间间隔的痛点,从直观上看来就是Broker主动推送消息,这样消息消费也比较及时。 Message Service Run Method exception", e); } } }}/* 同Pull模式QClientAPIImpl().pullMessage

    1.4K11编辑于 2023-11-29
  • 来自专栏夏之以寒-kafka专栏

    【夏之以寒-Kafka专栏 01】Kafka的消息是采用Pull模式还是Push模式

    Kafka的消息传递机制主要采用Pull(拉取)模式,但也融合了Push(推送)模式的某些特点。 以下是对这两种模式在Kafka中的运用的详细描述:1.Pull模式Pull模式中,消费者(Consumer)主动从Broker拉取消息。 2.Push模式尽管Kafka主要采用Pull模式,但它也融合了Push模式的某些特点,尤其是在消费者组(Consumer Group)的变更和消息传递方面:消息推送:在消费者组中,当有新的消费者加入或现有消费者离开时 消费者可以视为在Push模式下接收消息,因为它们不需要主动拉取,消息会按照顺序自动到达。 这种结合了PullPush特点的消息传递机制,使得Kafka能够适应不同的使用场景和需求。

    89710编辑于 2024-05-28
  • 来自专栏爱撸猫的杰

    微博feed系统的推(push)模式和拉(pull)模式和时间分区拉模式架构探讨

    获取微博通过 pull 方式还是 push 方式 sns系统,微博系统都应用到了feed(每条微博或者sns里的新鲜事等我们称作feed)系统,不管是twitter.com或者国内的新浪微博,人人网等, 下面我们就微博的feed推拉(push,pull)模式做一下探讨,并提出新的时间分区拉模式。        图三:微博整体结构        图中展示了微博的整体数据流程,先了解下整体的数据结构,没有涉及到followers等的推拉模式处理。下面我们再看下推模式push): ?            试想,一个大量用户的微薄系统通过使用推模式,是不是会产生非常惊人的数据呢?     下面看下拉模式pull) ?              图五:拉模式(pull)-改进(时间分区拉模式)            拉模式的改进主要是在feeds的存储上,使用按照时间进行分区存储。分为最近时间段(比如最近一个小时),近期的,比较长时期等等。

    2.2K30发布于 2019-10-24
  • 来自专栏Java课堂

    Nacos配置中心交互模型是 push 还是 pull ?你应该这么回答

    比如我们今天要讨论的话题,Nacos在做配置中心的时候,配置数据的交互模式是服务端推过来还是客户端主动拉的? [20210604073705295.png] 这里我先抛出答案:客户端主动拉的! [配置中心] 推与拉模型 客户端与配置中心的数据交互方式其实无非就两种,要么推push,要么拉pull。 还会造成推送数据的延迟,比如:每10s请求一次配置,如果在第11s时配置更新了,那么推送将会延迟9s,等待下一次请求。 **注意:** 运行时遇到个小坑,由于Nacos默认是以cluster集群的方式启动,而本地搭建通常是单机模式standalone,这里需手动改一下启动脚本startup.X中的启动模式模式做出了服务端实时推送的效果。

    1.6K40发布于 2021-07-05
  • 来自专栏JAVA乐园

    Sentinel规则Pull模式持久化

    前一篇【使用Nacos存储Sentinel的限流规则】讲了基于Nacos的Push模式持久化,这里讲下基于本地文件的Pull模式持久化。 模式 有如下一张图,总觉得例子欠缺些什么?? 琢磨一下,发现原来无论官方的例子,还是网友的例子都没有结合Sentinel讲解规则的Pull模式操作类 package com.sentinel.olive.file; import java.io.FileNotFoundException; import java.text.SimpleDateFormat olive-pull-sentinel-datasource检测到流控规则的变化并产生flowRule.json文件 ? 修改流控规则文件json ?

    1.2K50发布于 2020-07-30
  • 来自专栏大猫的Java笔记

    9.设计模式--策略模式(Strategy模式)

    1.定义 策略模式是一种行为型模型,三国演义中有这样一个桥段,刘备被周瑜设计引到江东,周瑜想让刘备入赘,然后威胁关张赵以及诸葛让出荆州,不料诸葛孔明早有准备,准备了三个锦囊给赵云在需要时候以此打开锦囊 3.策略模式实现 InterfaceStrategy接口定义锦囊的行为,其中operate方法就是每个锦囊都应该具备的方法,即对应的妙计。 策略模式优缺点 优点: 1、策略模式符合开闭原则。 2、避免使用多重条件转移语句,如if...else...语句、switch 语句 3、使用策略模式可以提高算法的保密性和安全性。 参考文献《设计模式之禅》

    39910发布于 2021-11-01
  • 来自专栏Lvshen的技术小屋

    设计模式9之命令模式

    命令模式就是为了解决这个问题而出现的。 什么是命令模式 “命令模式是一个高内聚的模式,其定义为:Encapsulate a request as an object,thereby letting you parameterize clients ” 下面为命令模式的通用类图: 命令模式 命令模式主要由3个要素组成: Receive接收者:接收命令 Command命令角色:封装要执行的命令 Invoker调用者:执行命令 代码实现 首先创建一个抽象接收者 关于命令模式的思考 调用者不直接调用接收者的方法,而是去调用Command的execute()。对于调用者来说,它不需要知道接收者是谁。 一般来说,命令模式结合其他设计模式,会有更好的效果。 但是命令模式中Command也不能无限扩展,如果有N个命令,那就会有N个Command子类,这样也不是很好。

    29710编辑于 2022-05-05
  • 来自专栏技术客栈

    Java设计模式9)享元模式

    前言 在软件开发的世界里,设计模式如同一本精妙的编码诗集,已经成为一种标准的编程实践。在Java编程中,设计模式很重要。 本人将制作一个关于Java设计模式的系列文章,总共23种设计模式将以一篇一篇文章讲解,代码笔记已开源:Gitee点击跳转。在上一篇《Java设计模式(8)外观模式》文章中,我们介绍了外观模式。 本文是这个系列的第九篇章,我们将讲解一下享元模式的实现方式、应用场景以及它的用途。 享元模式 享元模式是一种结构型设计模式,是通过共享对象来减少内存使用和提高性能。 使用场景 当一个应用程序使用大量相似对象时,享元模式可以帮助减少内存消耗。 当对象的大部分状态可以外部化并且可以在多个对象中共享时,可以考虑使用享元模式。 结语 其实享元模式还有很多其他的应用场景,比如: 在文本编辑器中,字符对象可以使用享元模式来共享相同的字符,节省内存空间。

    26610编辑于 2024-04-18
  • 来自专栏Ethereum

    《纸上谈兵·solidity》第 16 课:Pull over Push 支付模式与 Check-Effects-Interactions 原则

    本课将带你深入理解两种支付模式Push(主动转账):合约把钱直接推给用户Pull(用户主动领取):用户自己来提款同时,我们会结合 Solidity 的经典安全设计原则 —— Check-Effects-Interactions Push 支付模式的隐患在 Push 模式下,合约直接在逻辑中调用 transfer 或 call 将资金打到用户地址:// ❌ 不安全的 Push 模式function distribute(address Pull 支付模式的优势Pull 模式中,合约不再主动转账,而是记录用户的可提余额,让用户自己来领取:// ✅ 安全的 Pull 模式mapping(address => uint256) public Foundry 实战示例我们用 Foundry 编写一个小测试来对比 Push vs Pull 的风险。 模式下,攻击者可以多次重入提款在 Pull 模式下,提款流程安全,不受攻击影响总结Push 模式 = 高风险:转账时可能失败、被攻击或阻塞Pull 模式 = 推荐:用户主动提取,安全性和灵活性更好Check-Effects-Interactions

    29600编辑于 2025-08-19
  • 来自专栏∑小熊猫的博客

    Java 设计模式系列(9) —— 代理模式

    代理模式 代理模式的定义: 代理模式为其他对象提供一种代理以控制这个对象的访问、 代理模式的三个主要角色: Subject 抽象主题角色:抽象主题类的主要职责是声明真实主题与代理的共同接口方法,该类可以是接口也可以是抽象类 ProxySubject 代理主题角色: 该角色主要负责引用和控制真实主题,负责在需要的时候创建或删除真实主题对象 RealSubject 真实主题角色: 该类是代理标识的真实对象,是业务逻辑的具体执行者 代理模式的种类 代理模式的简单示例 ? Exception"); return; }else { subject.businessLogic(); } this.followUpDealing(); } } 代理模式的优点 但是由于真实主题和代理主题都实现了抽象主题接口或集成了真实主题与抽象主题的抽象类,因此代理主题可以在不做任何修改的情况下代理各种真实主题的角色 智能化:代理主题可以按照运行时的需求去代理真实主题 代理模式的扩展

    42710发布于 2021-01-07
  • 来自专栏爱敲代码的猫

    java设计模式(9)-桥接模式

    这篇推文分享一下桥接模式,JDBC原理也是运用了桥接模式,先设置驱动名称,链接,来获得数据库链接,降低耦合,减少维护 桥接模式: 把事物和其具体实现分开,使他们可以各自独立的变化。

    48580发布于 2019-10-17
  • 来自专栏Python机器学习算法说书人

    Python设计模式9):桥接模式

    这种情况可以使用桥接模式(Bridge Pattern),其意图是将一个软件的抽象部分与实现部分分离,使它们都可以独立的变化。 桥接模式是指将抽象部分与它的实现部分分离。使它们可以独立地变化。桥接模式的设计类图如图所示。 ? 桥接模式的各组成部分即含义说明如下。 当要避免抽象部分和实现部分的永久绑定,例如实现部分必须在运行时被选择的时候,使用桥接模式。 需要注意的是,抽象部分和实现部分都应该被子类继承。 这样,桥接模式可以使用户结合不同的抽象对象与实现对象,并且独立地扩展抽象部分与实现部分。 桥接模式强调对象有两个以上维度的变化,简化多级继承关系,但同时增加了聚合对象的内部方法,因为它不得不多写方法以便包含它的类调用。

    75930发布于 2019-07-26
  • 来自专栏AlbertYang的编程之路

    设计模式(9)-JavaScript设计模式之如何实现桥接模式???

    1 什么是桥接模式 Bridge模式允许两个组件,即客户端和服务一起工作,每个组件都有自己的接口。Bridge是一种高级架构模式,它的主要目标是通过两级抽象来编写更好的代码。 它有利于对象之间非常松散的耦合,有时也被称为双适配器模式。 桥接模式的作用在于将实现部分和抽象部分分离, 以便两者可以独立的变化。 这种类型的设计模式属于结构型模式,它通过提供抽象化和实现化之间的桥接结构,来实现二者的解耦。 Bridge模式是一个很好的驱动开发模式,但在JavaScript中很少见到。 2 参与者 ? 它们两个互相独立,不会影响到对方, 对于两个独立变化的维度,使用桥接模式再适合不过了。 1.桥接模式可以将抽象和其实现分离,方便他们独立变化, 而且实现细节对客户透明。

    1.3K31发布于 2020-09-08
  • 来自专栏C/C++基础

    设计模式 (9)——外观模式(Facade Pattern,结构型)

    1.概述 使用设计模式可以提高代码的可复用性、可扩充性和可维护性。外观模式(Facade Pattern)属于结构型模式,提供了一个统一的接口(具体类),用来访问子系统的一群接口(具体类)。 要想使用外观模式,我们需要创建一个函数接口简化而统一的类,用来包装子系统中一个或多个复杂的类。外观模式类结构清晰,容易理解,允许我们让客户和子系统之间避免紧耦合。 最少知道原则在中介者模式中也有应用。 2.外观模式的简单应用 本文我们举武侠的例子,我们把《倚天屠龙记》张无忌当作一个系统,他作为一个武侠,本身分为三个子系统,分别是招式、内功和经脉。 缺点: 在不引入抽象外观类的情况下,增加新的子系统可能需要修改外观类或客户端的源代码,违背了“开放关闭原则” 4.小结 (1)外观模式属于结构型模式,提供了一个统一的类接口,用来访问子系统的一群类接口 ---- 参考文献 [1]最少知道原则.百度百科 [2]设计模式读书笔记—–外观模式 [3]设计模式(八)外观模式

    51320发布于 2018-08-03
  • 来自专栏EdisonTalk

    设计模式的征途—9.组合(Composite)模式

    树形结构在软件中随处可见,比如操作系统中的目录结构,公司组织结构等等,如何运用面向对象的方式来处理这种树形结构是组合模式需要解决的问题。 组合模式通过一种巧妙的设计方案来使得用户可以一致性地处理整个树形结构或者树形结构的一部分,也可以一致地处理树形结构中的叶子节点(不包含子节点的节点)和容器节点(包含子节点的节点),本次我们就将学习一下用来处理树形结构的组合模式 二、组合模式简介 2.1 模式概述 组合(Composite)模式:组合多个对象形成树形结构以表示具有“整体-部分”关系的层次结构。 组合模式对单个对象(即叶子对象)和组合对象(即容器对象)的使用具有一致性,组合模式又可以称为“部分-整体”(Part-Whole)模式,它是一种对象结构型模式。   2.2 结构图   在组合模式中引入了抽象构件类Component,它是所有容器类和叶子类的公共父类,客户端针对Component进行编程。组合模式结构如下图所示: ?   

    66640发布于 2018-08-21
  • 来自专栏技术杂货店

    设计模式9】-- 外观模式?没那么高大上

    外观模式是什么 外观模式,其实是用来隐藏系统的复杂性的,屏蔽掉了背后复杂的逻辑,向用户提供简单的可以访问系统的接口,也是属于结构型模式的一种 。 [006APoFYly8gwdwan760qg30b404tan8.gif] 外观模式的角色 外观模式主要包括几个角色: 外观角色:糅合多个子系统功能,对外提供一个共同的接口 子系统的角色:实现系统的部分功能 最后简单小结一下,外观模式,可以成为门面模式,也就是屏蔽掉内部细节,只对外提供接口,实现所需的功能,内部功能可能很复杂,以上我们模拟的只是简单操作。学会了么?

    36840编辑于 2022-01-07
  • 来自专栏技术杂货店

    设计模式9】-- 外观模式?没那么高大上!

    编程知识库:https://github.com/Damaer/Coding 文档地址:https://damaer.github.io/Coding/#/ 1 开局一张图,剩下全靠写... 1外观模式是什么 外观模式,其实是用来隐藏系统的复杂性的,屏蔽掉了背后复杂的逻辑,向用户提供简单的可以访问系统的接口,也是属于结构型模式的一种 。 外观模式的角色 外观模式主要包括几个角色: 外观角色:糅合多个子系统功能,对外提供一个共同的接口 子系统的角色:实现系统的部分功能 客户角色:通过外观角色访问各个子系统的功能 优点与缺点 优点: 减少系统依赖 最后简单小结一下,外观模式,可以成为门面模式,也就是屏蔽掉内部细节,只对外提供接口,实现所需的功能,内部功能可能很复杂,以上我们模拟的只是简单操作。学会了么?

    20620编辑于 2022-02-15
  • 来自专栏学习笔记ol

    小谈设计模式9)—工厂方法模式

    小谈设计模式9)—工厂方法模式 专栏介绍 主要对目前市面上常见的23种设计模式进行逐一分析和总结,希望有兴趣的小伙伴们可以看一下,会持续更新的。 工厂方法模式 工厂方法模式是一种创建型设计模式,它定义了一个创建对象的接口,但由子类决定要实例化的类是哪一个。工厂方法模式将对象的实例化推迟到子类中进行。 分析 通过工厂方法模式,客户端代码只需要与抽象产品和抽象工厂进行交互,而无需关心具体产品的创建过程。 可以通过配置文件等方式动态指定具体工厂类 工厂方法模式可以通过配置文件、反射等方式动态指定具体工厂类,从而实现更加灵活的对象创建方式。 如果系统中只有少量的产品,使用工厂方法模式可能会显得过于复杂,不利于维护和理解。 增加了代码的数量 工厂方法模式需要定义抽象产品、具体产品、抽象工厂、具体工厂等多个类,这增加了代码的数量。

    27320编辑于 2023-10-11
  • 来自专栏狮乐园

    高级 Vue 组件模式 (9)

    你可以通过下面的链接来看看这个组件的实现代码以及演示: sandbox: 在线演示 github: part-9 总结 关于函数式组件,我是在 React 中第一次接触,其形式和它的名字一样,就是一个函数 这是不妨换一个角度从渲染机制本身将组件重构为更小的颗粒,并用一个函数式组件动态的代理它们,可能会得到更好的效果,举一个比较常见的例子,比如表单系统中的表单项,一般都具有多种渲染状态,如编辑状态、浏览状态、禁用状态等等,这时利用该模式来抽离不同状态的渲染逻辑就非常不错

    77310发布于 2020-01-21
  • 来自专栏CSDN搜“看,未来”

    我用过的设计模式9)-- 备忘录模式

    不过栈嘛,好用是固然的,但它和我们今天要讲的“备忘录模式”并不相冲,反而,还是相辅相成的呢。 这里我们需要学习一下”备忘录模式“的整体思路: [在这里插入图片描述]Originator(发起人):负责创建一个备忘录Memento,用以记录当前时刻它的内部状态,并可以使用备忘录恢复内部状态。

    36830发布于 2021-03-01
领券