Apache RocketMQ

基于Docker安装RocketMQ

左心房为你撑大大i 提交于 2020-11-01 21:17:05
基于Docker安装Rocket MQ 至少需要2GB的内存,不然启动会报错 docker-compose.yml文件 version: '3.5' services: rmqnamesrv: image: foxiswho/rocketmq:server container_name: rmqnamesrv ports: - 9876:9876 volumes: - ./data/logs:/opt/logs - ./data/store:/opt/store networks: rmq: aliases: - rmqnamesrv rmqbroker: image: foxiswho/rocketmq:broker container_name: rmqbroker ports: - 10909:10909 - 10911:10911 volumes: - ./data/logs:/opt/logs - ./data/store:/opt/store - ./data/brokerconf/broker.conf:/etc/rocketmq/broker.conf environment: NAMESRV_ADDR: "rmqnamesrv:9876" JAVA_OPTS: " -Duser.home=/opt" JAVA_OPT_EXT: "-server -Xms128m

一刻钟学会Python3

徘徊边缘 提交于 2020-10-30 18:36:53
微信公众号: IT一刻钟 大型现实非严肃主义现场 一刻钟与你分享优质技术架构与见闻,做一个有剧情的程序员 关注可第一时间了解更多精彩内容,定期有福利相送哟。 Python 是由吉多·范罗苏姆(Guido Van Rossum)在 90 年代早期设计。 它是如今最常用的编程语言之一。它的语法简洁且优美,几乎就是可执行的伪代码。同时它具有大量丰富的科学计算扩展库,是做数据挖掘与分析的居家必备之物。 有编程经验的小伙伴,朗诵以下代码块,完成Python3快速入门。 (手机端不宜观摩,建议收藏后电脑端观摩) # 用井字符开头的是单行注释 """ 多行字符串用三个引号 包裹,也常被用来做多 行注释 """ #################################################### ## 1. 原始数据类型和运算符 #################################################### # 整数 3 # => 3 # 算术没有什么出乎意料的 1 + 1 # => 2 8 - 1 # => 7 10 * 2 # => 20 # 但是除法例外,会自动转换成浮点数 35 / 5 # => 7.0 5 / 3 # => 1.6666666666666667 # 整数除法的结果都是向下取整 5 // 3 # => 1 5.0 // 3.0

追源码的平凡之路

时光总嘲笑我的痴心妄想 提交于 2020-10-28 13:55:20
在斯坦福大学, 乔布斯做了一场我认为他最精彩的演讲之一 (另一场可能是iphone的问世发布会)。他讲了第一个故事 "connecting the dots" 你不可能充满预见地将生命的点滴串联起来;只有在你回头看的时候,你才发现这些点点滴滴之间的联系。所以,你要坚信,你现在所经历的将在你未来的生命中串联起来。你不得不相信某些东西,你的直觉、命运、生活、因缘际会……正是这种信仰让我不会失去希望,它让我的人生变得与众不同。 什么是连接生命中的点滴呢?我的理解:当一个人的能力还在上升期, 格局和视野还不够广阔的时候,他需要专注当前的事情,并且把每件事情做到他当时的能力所能做到的极限,也许当时没有那么大的成就感,但"蓦然回首,那人却在灯火阑珊处"。 十年前刚进入IT这个行业的时候,我是一个很普通的工程师,脑袋也不灵光,工作老是得不到要领,我的同学智商很高,他看一次代码基本就会写了,我得花很长时间去消化吸收,我对自己能不能在这一行生存下去都产生了质疑。 没有办法,只能勤能补拙,笨鸟先飞, 当遇到问题的时候, 我都抱着死咬不放的心态去寻找最佳解决方案, 洗澡的时候,睡觉的时候,吃饭的时候,甚至上厕所的时候都会去思考。很自然的,"追"源码也成为我程序生命中的一部分。 阅读过很多源码,和大家分享几个对我的职业影响比较大的追源码的经历。 正文 1 Druid 连接池 这是在2013年

RocketMQ(1):单机部署4.2.0版本

梦想与她 提交于 2020-10-28 13:05:32
最近用了用kafka,踩了各种各样的坑(一口老血)。其中最让人头疼的是消费失败后的重发问题,目前我自己的解决办法是消费该分区的某批数据时,如果该批数据有消费失败的,就不提交该批数据的偏移量,从而让生产者重发数据。然而只有在重启生产者时,消费失败的数据才能重新消费,非常谜,打算以后抽出时间看看这是为啥(如果有解决办法请 大力评论 。。我的kafka版本是0.10你懂的)。 然后我在找kafka相关解决办法的时候,发现rocketmq的重发机制十分好,于是决定再踩踩rocketmq的坑。 单机部署 单机部署rocketmq4.2.0尝尝鲜(三口老血),到rocketmq的官网里找到quick start(我现在理解的quick大约得有一百万年的时间),有个单机部署教程(http://rocketmq.apache.org/docs/quick-start/),然而里面的坑很多。所以在此记录一下我的安装历程: 1.安装环境要遵循官方的建议(环境的安装在此不赘述) 64bit OS, Linux/Unix/Mac is recommended; 64bit JDK 1.8+; Maven 3.2.x Git 2.下载安装包,并解压: unzip rocketmq-all-4.2.0-source-release.zip 3.进入解压后的文件的根目录,编译: mvn -Prelease

消息队列及常见消息队列介绍

非 Y 不嫁゛ 提交于 2020-10-28 12:31:50
一、消息队列(MQ)概述 消息队列(Message Queue),是分布式系统中重要的组件,其通用的使用场景可以简单地描述为: 当不需要立即获得结果,但是并发量又需要进行控制的时候,差不多就是需要使用消息队列的时候。 消息队列主要解决了应用耦合、异步处理、流量削锋等问题。 当前使用较多的消息队列有RabbitMQ、RocketMQ、ActiveMQ、Kafka、ZeroMQ、MetaMq等,而部分数据库如Redis、Mysql以及phxsql也可实现消息队列的功能。 二、消息队列使用场景 消息队列在实际应用中包括如下四个场景: 应用耦合:多应用间通过消息队列对同一消息进行处理,避免调用接口失败导致整个过程失败; 异步处理:多应用对消息队列中同一消息进行处理,应用间并发处理消息,相比串行处理,减少处理时间; 限流削峰:广泛应用于秒杀或抢购活动中,避免流量过大导致应用系统挂掉的情况; 消息驱动的系统:系统分为消息队列、消息生产者、消息消费者,生产者负责产生消息,消费者(可能有多个)负责对消息进行处理; 下面详细介绍上述四个场景以及消息队列如何在上述四个场景中使用: 2.1 异步处理 具体场景:用户为了使用某个应用,进行注册,系统需要发送注册邮件并验证短信。对这两个操作的处理方式有两种:串行及并行。 (1)串行方式:新注册信息生成后,先发送注册邮件,再发送验证短信; 在这种方式下

消息队列之事务消息,RocketMQ 和 Kafka是如何做的?

≯℡__Kan透↙ 提交于 2020-10-28 05:00:45
每个时代,都不会亏待会学习的人。 大家好,我是 yes。 今天我们来谈一谈消息队列的事务消息,一说起事务相信大家都不陌生,脑海里蹦出来的就是 ACID。 通常我们理解的事务就是为了一些更新操作要么都成功,要么都失败,不会有中间状态的产生,而 ACID 是一个严格的事务实现的定义,不过在单体系统时候一般都不会严格的遵循 ACID 的约束来实现事务,更别说分布式系统了。 分布式系统往往只能妥协到最终一致性 ,保证数据最终的完整性和一致性,主要原因就是实力不允许...因为可用性为王。 而且要保证完全版的事务实现代价很大,你想想要维护这么多系统的数据,不允许有中间状态数据可以被读取,所有的操作必须不可分割,这意味着一个事务的执行是阻塞的,资源是被长时间锁定的。 在高并发情况下资源被长时间的占用,就是致命的伤害,举一个有味道的例子,如厕高峰期,好了懂得都懂。 对了, ACID 是什么还不太清楚的同学,赶紧去查一查,这里我就不展开说了。 分布式事务 那说到分布式事务,常见的有 2PC、TCC 和事务消息,这篇文章重点就是事务消息,不过 2PC 和 TCC 我稍微提一下。 2PC 2PC 就是二阶段提交,分别有协调者和参与者两个角色,二阶段分别是准备阶段和提交阶段。 准备阶段就是协调者向各参与者发送准备命令,这个阶段参与者除了事务的提交啥都做了,而提交阶段就是协调者看看各个参与者准备阶段都 o

消息队列之事务消息,RocketMQ 和 Kafka是如何做的?

风格不统一 提交于 2020-10-28 04:32:35
一说起事务相信大家都不陌生,脑海里蹦出来的就是 ACID。 通常我们理解的事务就是为了一些更新操作要么都成功,要么都失败,不会有中间状态的产生,而 ACID 是一个严格的事务实现的定义,不过在单体系统时候一般都不会严格的遵循 ACID 的约束来实现事务,更别说分布式系统了。 分布式系统往往只能妥协到最终一致性 ,保证数据最终的完整性和一致性,主要原因就是实力不允许...因为可用性为王。 而且要保证完全版的事务实现代价很大,你想想要维护这么多系统的数据,不允许有中间状态数据可以被读取,所有的操作必须不可分割,这意味着一个事务的执行是阻塞的,资源是被长时间锁定的。 在高并发情况下资源被长时间的占用,就是致命的伤害,举一个有味道的例子,如厕高峰期,好了懂得都懂。 对了, ACID 是什么还不太清楚的同学,赶紧去查一查,这里我就不展开说了。 分布式事务 那说到分布式事务,常见的有 2PC、TCC 和事务消息,这篇文章重点就是事务消息,不过 2PC 和 TCC 我稍微提一下。 2PC 2PC 就是二阶段提交,分别有协调者和参与者两个角色,二阶段分别是准备阶段和提交阶段。 准备阶段就是协调者向各参与者发送准备命令,这个阶段参与者除了事务的提交啥都做了,而提交阶段就是协调者看看各个参与者准备阶段都 o 不 ok,如果有 ok 那么就向各个参与者发送提交命令,如果有一个不 ok 那么就发送回滚命令

RocketMQ 应用迁移云 RocketMQ

跟風遠走 提交于 2020-10-28 00:18:28
云栖号最佳实践:【 点击查看更多上云最佳实践 】 这里有丰富的企业上云最佳实践,从典型场景入门,提供一系列项目实践方案,降低企业上云门槛的同时满足您的需求! 场景描述 本文档适用于企业自建 RocketMQ 应用迁移到阿里云消息队列 RocketMQ 版,迁移后将利用云 RocketMQ 高可用、高弹性、低延时的能力提高应用系统的可靠性、稳定性和性能。迁移过程不停机,同时考虑消息幂等问题,尽量减少对在线应用的影响。 解决问题 自建 RocketMQ 消息集群迁移到云 RocketMQ。 迁移中实现应用不停机的切换过程,处理消息幂等问题。 产品列表 消息队列 RocketMQ 版 云数据库 Redis 版 云服务器 ECS 专有网络 VPC 直达最佳实践 》》 来源: oschina 链接: https://my.oschina.net/u/4348626/blog/4332402

总结:RocketMQ

不问归期 提交于 2020-10-25 11:13:06
一、RocketMQ 特点 灵活可扩展性 RocketMQ 天然支持集群,其核心四组件(Name Server、Broker、Producer、Consumer)每一个都可以在没有单点故障的情况下进行水平扩展。 海量消息堆积能力 RocketMQ 采用零拷贝原理实现超大的消息的堆积能力,据说单机已可以支持亿级消息堆积,而且在堆积了这么多消息后依然保持写入低延迟。 支持顺序消息 可以保证消息消费者按照消息发送的顺序对消息进行消费。顺序消息分为全局有序和局部有序,一般推荐使用局部有序, 即生产者通过将某一类消息按顺序发送至同一个队列来,然后消费者需要按顺序消费,即依赖MessageListenerOrderly类而不是MessageListenerConcurrently 。 多种消息过滤方式 消息过滤分为在服务器端过滤和在消费端过滤。服务器端过滤时可以按照消息消费者的要求做过滤,优点是减少不必要消息传输,缺点是增加了消息服务器的负担,实现相对复杂。消费端过滤则完全由具体应用自定义实现,这种方式更加灵活,缺点是很多无用的消息会传输给消息消费者。 支持事务消息 RocketMQ 除了支持普通消息,顺序消息之外还支持事务消息,这个特性对于分布式事务来说提供了又一种解决思路。 回溯消费 回溯消费是指消费者已经消费成功的消息,由于业务上需求需要重新消费,RocketMQ 支持按照时间回溯消费

估值百亿独角兽爱学习教育集团:通过云原生实践与时间赛跑

穿精又带淫゛_ 提交于 2020-10-25 04:10:13
简介: iiMedia Research(艾媒咨询)数据显示,在线教育市场规模保持逐年增长的态势,2019年在线教育市场规模已突破4000亿元。在疫情的助推下,在线教育加速渗透,市场空间有望进一步打开,预计2020年中国在线教育市场规模将达到4538亿元。 作者:山猎 爱学习教育集团的前身为高思教育,成立于2009年,以中小学课外培训起家,曾经的定位是K12培训机构;2014年,爱学习教育集团发力B端市场,目前在2B领域获得了全国各地办学机构的广泛认可,由K12培训机构升级为K12教育供给平台。 2019年4月份,爱学习教育集团完成由华平投资领投的1.4亿美元D轮融资。2014年以前,作为一家“教育产品研发”企业,爱学习教育集团为3-18岁年龄层的孩子提供个性化的教育产品方案及所有与教育相关的服务,旗下拥有“思泉语文”、“高思数学”、“高思VIP一对一”、“中学理科”等互联网教育产品:“乐乐课堂”、“爱学习”、“爱上古诗”“爱尖子”、“爱提分”等多个全国著名的学习子品牌,这些产品目前已经被大量的中小学辅导机构及公立学校引进,普遍提升了孩子的学习体验和学习效果。 2014年,在不断发展进化当中,爱学习教育集团(当时还叫高思教育)毅然决然的转型2B领域。据了解,到2029年,爱学习教育集团希望服务全球1亿学生和500万老师,助力50万所学校