RocketMQ系列(一)基本概念】的更多相关文章

RocketMQ是阿里出品的一款开源的消息中间件,让其声名大噪的就是它的事务消息的功能.在企业中,消息中间件选择使用RocketMQ的还是挺多的,这一系列的文章都是针对RocketMQ的,咱们先从RocketMQ的一些基本概念和环境的搭建开始聊起. RocketMQ由4部分组成,分别是:名称服务(Name Server).消息队列(Brokers).生产者(producer)和消费者(consumer).这4部分都可以进行水平扩展,从而避免单点故障,如下图, 这是RocketMQ官网上的一张图,…
RxJava系列1(简介) RxJava系列2(基本概念及使用介绍) RxJava系列3(转换操作符) RxJava系列4(过滤操作符) RxJava系列5(组合操作符) RxJava系列6(从微观角度解读RxJava源码) RxJava系列7(最佳实践) 前言 上一篇的示例代码中大家一定发现了Observable这个类.从纯Java的观点看,Observable类源自于经典的观察者模式.RxJava的异步实现正是基于观察者模式来实现的,而且是一种扩展的观察者模式. 观察者模式 观察者模式基于S…
ElasticSearch 2 (28) - 信息聚合系列之高层概念 摘要 和查询表达式(query DSL)一样,聚合也有一种可编辑的语法:可以根据我们的需要混合以及匹配使用独立的功能单元.这也就是说我们只要学习很少的基本概念,就能将它们进行无限组合,从而实现不同的功能. 要掌握聚合,只需要理解下面两个主要概念: 桶(Buckets) 满足某个条件的文档集合 度量(Metrics) 对于某个桶的文档计算出的统计信息 就这么多!每个聚合不过是一个或多个桶以及零个或多个度量的组合.粗暴的翻译成 S…
上个月离职了,这几天整理了一些常见的面试题,整理成一个系列给大家分享一下,机会是给有准备的人,面试造火箭,工作拧螺丝,不慌,共勉. 1.net必问的面试题系列之基本概念和语法 2.net必问的面试题系列之面向对象 3.net必问的面试题系列之设计模式 4.net必问的面试题系列之集合.异常.泛型 5.net必问的面试题系列之简单算法 6.net必问的面试题系列之数据库 7.net必问的面试题系列之web前端 1. 字符串中string str=null和string str=""的区别…
.NET面试题系列目录 这篇文章主要是各个百科中的一些摘抄,简述了进程和线程的来源,为什么出现了进程和线程. 操作系统层面中进程和线程的实现 操作系统发展史 直到20世纪50年代中期,还没出现操作系统,计算机工作采用手工操作方式.程序员将对应于程序和数据的已穿孔未的纸带(或卡片)装入输入机,然后启动输入机把程序和数据输入计算机内存,接着通过控制台开关启动程序针对数据运行:计算完毕,打印机输出计算结果:用户取走结果并卸下纸带(或卡片)后,才让下一个用户上机. 手工操作方式的两个特点: (1)用户独…
这是.NET技术面试题系列第一篇,今天主要分享基础概念. 1.简述 private. protected. public.internal 修饰符的访问权限 private : 私有成员, 在类的内部才可以访问. protected : 保护成员,该类内部和继承类中可以访问. public : 公共成员,完全公开,没有访问限制. internal: 当前程序集内可以访问. 2.CTS.CLS.CLR分别作何解释 CTS:Common Type System 通用类型系统.Int32.Int16→…
不多说,直接上干货! 以下都是非常重要的storm概念知识. (Tuple元组数据载体 .Spout数据源.Blot消息处理者.Stream消息流 和 Stream Grouping 消息流组.Worker工作者进程.Task是最终运行spout或bolt中代码的执行单元.executor是worker进程启动的一个单独线程) 见博客 Storm概念学习系列之storm核心组件 Storm概念学习系列之Task任务 Storm概念学习系列之Tuple元组 Storm概念学习系列之Blot消息处理…
RocketMQ的基本概念在上一篇中给大家介绍了,这一节将给大家介绍环境搭建.RocketMQ中最基础的就是NameServer,我们先来看看它是怎么搭建的. NameServer RocketMQ要求的环境是JDK8以上,我们先检查一下环境, [root@centOS-1 ~]# java -version openjdk version "11.0.3" 2019-04-16 LTS OpenJDK Runtime Environment 18.9 (build 11.0.3+7-…
折腾了好长时间才写这篇文章,顺序消费,看上去挺好理解的,就是消费的时候按照队列中的顺序一个一个消费:而并发消费,则是消费者同时从队列中取消息,同时消费,没有先后顺序.RocketMQ也有这两种方式的实现,但是在实践的过程中,就是不能顺序消费,好不容易能够实现顺序消费了,发现采用并发消费的方式,消费的结果也是顺序的,顿时就蒙圈了,到底怎么回事?哪里出了问题?百思不得其解. 经过多次调试,查看资料,debug跟踪程序,最后终于搞清楚了,但是又不知道怎么去写这篇文章,是按部就班的讲原理,讲如何配置到最…
今天要给大家介绍RocketMQ中的两个功能,一个是"广播",这个功能是比较基础的,几乎所有的mq产品都是支持这个功能的:另外一个是"延迟消费",这个应该算是RocketMQ的特色功能之一了吧.接下来,我们就分别看一下这两个功能. 广播 广播是把消息发送给订阅了这个主题的所有消费者.这个定义很清楚,但是这里边的知识点你都掌握了吗?咱们接着说"广播"的机会,把消费者这端的内容好好和大家说说. 首先,消费者端的概念中,最大的应该是消费者组,一个消费者…
今天我们再来看看RocketMQ的另外两个小功能,消息的批量发送和过滤.这两个小功能提升了我们使用RocketMQ的效率. 批量发送 以前我们发送消息的时候,都是一个一个的发送,这样效率比较低下.能不能一次发送多个消息呢?当然是可以的,RocketMQ为我们提供了这样的功能.但是它也有一些使用的条件: 同一批发送的消息的Topic必须相同: 同一批消息的waitStoreMsgOK 必须相同: 批量发送的消息不支持延迟,就是上一节说的延迟消息: 同一批次的消息,大小不能超过1MiB: 好了,只要…
终于到了今天了,终于要讲RocketMQ最牛X的功能了,那就是事务消息.为什么事务消息被吹的比较热呢?近几年微服务大行其道,整个系统被切成了多个服务,每个服务掌管着一个数据库.那么多个数据库之间的数据一致性就成了问题,虽然有像XA这种强一致性事务的支持,但是这种强一致性在互联网的应用中并不适合,人们还是更倾向于使用最终一致性的解决方案,在最终一致性的解决方案中,使用MQ保证各个系统之间的数据一致性又是首选. RocketMQ为我们提供了事务消息的功能,它使得我们投放消息和其他的一些操作保持一个整…
前段时间研究了Window Azure ServiceBus Messaging消息队列技术,搞了很多技术研究和代码验证,最近准备总结一下,分享给大家. 首先,Windows Azure提供了两种类型的消息队列机制:Azure Queues和ServiceBus Queues. 其中,Azure Queues,作为Azure Storage基础设施的一部分,提供了一套简单的基于Rest的Interface,面向不同的服务间提供可靠的.持久化的消息队列. ServiceBus Queues作为Az…
在.NET平台用C#这么久,自然会发现其版本很多,相应的概念也会很多,常常都是萌萌哒.而在实际工作中经常会遇到需要配置dll版本号,公钥token等场景,因而对C#.NET.CLR.框架类型等基础概念有个大略的了解有很大必要性.当涉及到程序集版本时,注意查看全局程序集缓存GAC(Global Assembly Cache),路径为c:\windows\assembly,还有几个相似的.net framework路径,同时可以使用IL Disassembler (x64)查看DLL中所引用的外部库…
转眼微软的WCF已走过十个年头,它是微软通信框架的集大成者,将之前微软所有的通信框架进行了整合,提供了统一的应用方式.记得从自己最开始做MFC时,就使用过Named Pipe命名管道,之后做Winform时,使用过Remoting,再之后做B/S架构时,就会经常使用.NET平台下的Web Service,直到使用上WCF.看上去有了一些WCF的使用经验,实则不然,比如对安全.分布式事务.可靠会话等主题仍然接触甚少,因而决定重新回顾学习一下相关知识,尤其是对WCF框架的理解(已于2015年开源,可…
作为一名程序员,对于SQL的使用算是基础中的基础,虽然也写了很多年的SQL,但常常还是记不清一些常见的命令,故而通过一篇博文巩固相关的记忆,并把T-SQL本身的一些新特性再进行一次学习. 首先回顾基础的概念,这部分可以跳过哈,比较枯燥.结构化查询语言SQL是基于集合理论和谓词逻辑的,大学课程中数字逻辑和离散数学主要会涉及这部分的内容. 集合理论是数学家Georg Cantor创建,是基于关系模型的数学分支.集合的定义为,任意集合体是我们感知或者想到的,能够确定的.互异对象m的整体. 谓词逻辑的渊…
Solr是基于Lucene的采用Java5开发的一个高性能全文搜索服务器.源于lucene,却更比Lucene更为丰富更为强大的查询语言.同时实现了可配置.可扩展并对查询性能进行了优化,并且提供了一个完善的功能管理界面,是一款非常优秀的全文搜索引擎. 对于初学者可能对其不是很了解,下面将详细的介绍其结构. 先看下一本书的结构图 solr就好似一本书,索引结构如下图 solr创建索引的过程如下: (1).建立索引器IndexWriter,这相当于一本书的框架 (2).建立文档对象Document,…
线程概念 线程和进程的区别 进程是应用程序的一个实例要使用的资源的一个集合.进程通过虚拟内存地址空间进行隔离,确保各个进程之间不会相互影响.同一个进程中的各个线程之间共享进程拥有的所有资源. 线程是系统调度的基本单位.时间片和线程相关,和进程无关. 一个进程至少要拥有一个前台线程. 线程开销 当我们创建了一个线程后,线程里面主要包括线程内核对象.线程环境块.1M大小的用户模式栈和内核模式栈. 线程内核对象:如果是内核模式构造的线程,则存在一个线程内核对象,包含一组对线程进行描述的属性,以及线程上…
一.概念原理 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口.—— 百度百科 之前一直有一个误区,老听人说 Docker 是一个容器,应用程序打包好镜像,然后在这个容器中运行,以此达到 "一次封装,处处运行"(Build,Ship and Run Any App,Anywhere)的目的.其实不然,Docker 只是一个应用程序引擎(…
什么是变化检测? 变化检测的基本功能就是获取应用程序的内部状态(state),并且是将这种状态对用户界面保持可见.状态可以是javascript中的任何的数据结构,比如对象,数组,(数字,布尔,字符串等基础数据类型).这种状态最终可能成为用户界面中的段落,表单,链接或按钮,在web浏览器中我们们称之为文档对象模型(dom).将数据结构作为输入生成dom作为输出并展示给用户,我们称这个过程为渲染. 但是,在运行时发生更改时会变得更加棘手.一段时间后,DOM已经被渲染.我们如何弄清楚模型中发生了哪些…
RocketMQ实战(一)RocketMQ实战(二)RocketMQ实战(三):分布式事务RocketMQ实战(四)…
前段时间研究了Window Azure ServiceBus Messaging消息队列技术,搞了很多技术研究和代码验证,最近准备总结一下,分享给大家. 首先,Windows Azure提供了两种类型的消息队列机制:Azure Queues和ServiceBus Queues. 其中,Azure Queues,作为Azure Storage基础设施的一部分,提供了一套简单的基于Rest的Interface,面向不同的服务间提供可靠的.持久化的消息队列. ServiceBus Queues作为Az…
1 引言 并发.并行.串行.同步.异步.阻塞.非阻塞.进程.线程.协程是并发编程中的常见概念,相似却也有却不尽相同,令人头痛,这一篇博文中我们来区分一下这些概念. 2 并发与并行 在解释并发与并行之前,我们必须先明确:单个处理器(一个单核CPU)在某一个时刻只能处理一个线程. 并发是指在同一个处理器上通过时间片轮转的方式在多个线程之间频繁切换,由于切换速度极快,所以看似多个线程似乎被同时执行,但实际上每一个时刻都只有一个线程被执行,其他的线程出于阻塞状态. 并行是指多个处理器在同一时刻同时处理了…
1. Lucence基本概念 Lucence是一个java编写的全文检索类库,使用它可以为一个应用或者站点增加检索功能. 它通过增加内容到一个全文索引来完成检索功能.然后允许你基于这个索引去查询,返回结果,结果要么根据查询的相关度来排序要么根据任意字段如文档最后修改日期来排序. 增加到Lucence的内容可以来自多种数据源,如SQL/NOSQL 数据库,文件系统,甚至从站点上. 1.1 检索与索引 Lucence能快速的完成查询结果,是因为它不是直接搜索的文本,而是搜索一个索引.这类似于通过查询…
JavaScript的核心语言特性在ECMA-262中是以名为ECMAScript(ECMA, EuropeanComputer Manufacturers Association )的伪语言的形式来定义的.ECMA, 该协会指定 39 号技术委员会(TC39, Technical Committee #39)负 责 “ 标 准 化 一 种 通 用 . 跨 平 台 . 供 应 商 中 立 的 脚 本 语 言 的 语 法 和 语 义 ” .虽然 JavaScript 和 ECMAScript 通常…
触发器 概念 "监控项"仅负责收集数据,而通常收集数据的目的还包括在某指标对应的数据超出合理范围时给相关人员发送警告信息,"触发器"正式英语为监控项所收集的数据定义阈值 每一个触发器仅能关联一个监控项,但是一个监控项可以使用多个触发器.(多个不同阈值的触发器,可以实现不同级别的报警功能) 一个触发器由一个表达式构成,它定义了监控项所采取的数据的阈值 一旦某次采集的数据超出了此触发器定义的阈值,触发器状态会转换为"problem":而当采集的数据再…
基本概念 视频讲解:https://www.bilibili.com/video/av78731069/ 关注公众号,坚持每天3分钟视频学习…
@ 目录 一.OAuth2.0是什么? 1.1 OAuth2.0简介 1.2 OAuth2.0官方文档 二.OAuth2.0原理 2.1 OAuth2.0流程图 三. OAuth2.0的角色 四.OAuth2.0授权模式 4.1 授权码模式(authorization code) 4.2 简化模式(implicit grant type) 4.3 密码模式(resource owner password credentials) 4.4 客户端模式(client credentials) 五.优…
前面的章节,我们已经把RocketMQ的环境搭建起来了,是一个两主两从的异步集群.接下来,我们就看看怎么去使用RocketMQ,在使用之前,先要在NameServer中创建Topic,我们知道RocketMQ是基于Topic的消息队列,在生产者发送消息的时候,要指定消息的Topic,这个Topic的路由规则是怎样的,这些都要在NameServer中去创建. Topic的创建 我们先看看Topic的命令是如何使用的,如下: ./bin/mqadmin updateTopic -h usage: m…
搭建好了RocketMQ的console之后,直接在浏览器打开http://{你的ip}:8080 默认会进入到驾驶舱(dashboard). 总览 整体横向菜单分为八个部分: 运维:主要是设置nameserver和配置vipchannel 驾驶舱:控制台的dashboard,可以分别按broker和主题来查看消息的数量和趋势. 集群:整个RocketMq的集群情况,包括分片,编号,地址,版本,消息生产和消息消费的TPS等,这个在做性能测试的时候可以作为数据指标. 主题:即topic,可以新增/…