CN106407026A - 一种在流式计算中消息id的生成方法 - Google Patents
一种在流式计算中消息id的生成方法 Download PDFInfo
- Publication number
- CN106407026A CN106407026A CN201610831613.9A CN201610831613A CN106407026A CN 106407026 A CN106407026 A CN 106407026A CN 201610831613 A CN201610831613 A CN 201610831613A CN 106407026 A CN106407026 A CN 106407026A
- Authority
- CN
- China
- Prior art keywords
- message
- topic
- calculating
- cluster
- streaming
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本申请公开一种在流式计算中消息ID的生成方法,其能够确保消息ID的唯一性,消息ID可以重复生成且重复生成后消息ID没有任何变化。这种在流式计算中消息ID的生成方法,该方法通过kafka集群进行消息的发布与订阅;使用kafka集群中的一个topic来标识一个消息的来源,以便唯一标识消息的来源;使用每个topic的分区的编号partitionid;使用每个分区中的消息的偏移量offset来标识每条消息;topic、paritionid以及offset这三个变量组成的三元组,唯一确定每条消息,并且实现无限次地重复生成。
Description
技术领域
本发明涉及大数据处理的技术领域,尤其涉及一种在流式计算中消息ID的生成方法。
背景技术
在加工处理流式输入的消息数据时,往往会面临流式消息的标识问题,流式消息的标识的目的是表达消息的唯一性,并且在消息重复消费时消息ID需要保持前后一致。
现有的技术方案如下:
方法一:logid的生成方法,使用13位时间戳拼接上随机生成的随机数字。
根据当前系统时间可以取出一个13位的整型时间戳,在一毫秒内可能要同时生成多个logid,需要再加上一个使用random(随机)方式使用的一个定长的随机数。
存在问题:
1、ID生成与时间相关,消息ID不可重复生成,会导致同一条消息在重复消费后所产生的消息ID不是相同的。
2、流式计算一般是在一个集群中所进行中,在这样的一个分布式系统中,各服务器在同时运算的情况下ID生成的唯一性无法保证,导致ID不可用。
方法二:由独立服务器来统一控制消息id的生成。
部署一个独立的服务器,向外提供接口,每调用一次接口,服务器会通过自增的方式来生成一个唯一的新消息ID,通过接口返回给调用方。
存在的问题:
1、消息ID虽然保证了唯一性,但是在流量计算的海量数据处理的场景下,ID生成服务压力非常大,生成代价非常高。
2、消息在重复消费的情况下,消息ID会重新生成,不能保证消息重复消费情境下的一致性。
发明内容
为克服现有技术的缺陷,本发明要解决的技术问题是提供了一种在流式计算中消息ID的生成方法,其能够确保消息ID的唯一性,消息ID可以重复生成且重复生成后消息ID没有任何变化。
本发明的技术方案是:这种在流式计算中消息ID的生成方法,该方法通过kafka集群进行消息的发布与订阅;
使用kafka集群中的一个topic来标识一个消息的来源,以便唯一标
识消息的来源;
使用每个topic的分区的编号partitionid;
使用每个分区中的消息的偏移量offset来标识每条消息;
topic、paritionid以及offset这三个变量组成的三元组,唯一确定
每条消息,并且实现无限次地重复生成。
本发明通过topic、paritionid以及offset这三个变量组成的三元组,便可以确定每条消息的唯一性,并且可以无限次地重复生成,从而能够确保消息ID的唯一性,消息ID可以重复生成且重复生成后消息ID没有任何变化。
附图说明
图1所示为根据本发明的在流式计算中消息ID的生成方法的流程图。
具体实施方式
如图1所示,这种在流式计算中消息ID的生成方法,该方法通过kafka集群进行消息的发布与订阅;
使用kafka集群中的一个topic来标识一个消息的来源,以便唯一标识消息的来源;
使用每个topic的分区的编号partitionid;
使用每个分区中的消息的偏移量offset来标识每条消息;
topic、paritionid以及offset这三个变量组成的三元组,唯一确定每条消息,并且实现无限次地重复生成。
本发明通过topic、paritionid以及offset这三个变量组成的三元组,便可以确定每条消息的唯一性,并且可以无限次地重复生成,从而能够确保消息ID的唯一性,消息ID可以重复生成且重复生成后消息ID没有任何变化。
另外,该方法部署到storm集群中,由storm中的topology来负责组织消息ID的生成并落地到Hadoop分布式文件系统hdfs。
另外,该方法应用到Map Reduce程序中,提交到hadoop集群执行,由Map Reduce来生成消息ID并落地到hdfs。
本发明的有益效果如下:
1.消息ID没有重复,重复概率为0,确保了唯一性;
2.本消息ID可以重复生成,重复生成之后,消息ID没有任何变化。
以上所述,仅是本发明的较佳实施例,并非对本发明作任何形式上的限制,凡是依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均仍属本发明技术方案的保护范围。
Claims (3)
1.一种在流式计算中消息ID的生成方法,其特征在于:该方法通过
kafka集群进行消息的发布与订阅;
使用kafka集群中的一个topic来标识一个消息的来源,以便唯一标识消息的来源;
使用每个topic的分区的编号partitionid;
使用每个分区中的消息的偏移量offset来标识每条消息;
topic、paritionid以及offset这三个变量组成的三元组,唯一确定每条消息,并且实现无限次地重复生成。
2.根据权利要求1所述的在流式计算中消息ID的生成方法,其特征在于:该方法部署到storm集群中,由storm中的topology来负责组织消息ID的生成并落地到Hadoop分布式文件系统hdfs。
3.根据权利要求1所述的在流式计算中消息ID的生成方法,其特征在于:该方法应用到Map Reduce程序中,提交到hadoop集群执行,由Map Reduce来生成消息ID并落地到hdfs。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610831613.9A CN106407026A (zh) | 2016-09-19 | 2016-09-19 | 一种在流式计算中消息id的生成方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610831613.9A CN106407026A (zh) | 2016-09-19 | 2016-09-19 | 一种在流式计算中消息id的生成方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106407026A true CN106407026A (zh) | 2017-02-15 |
Family
ID=57996888
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610831613.9A Pending CN106407026A (zh) | 2016-09-19 | 2016-09-19 | 一种在流式计算中消息id的生成方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106407026A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109002484A (zh) * | 2018-06-25 | 2018-12-14 | 北京明朝万达科技股份有限公司 | 一种用于顺序消费数据的方法及系统 |
CN112925662A (zh) * | 2021-03-25 | 2021-06-08 | 支付宝(杭州)信息技术有限公司 | 标识生成方法和装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105681303A (zh) * | 2016-01-15 | 2016-06-15 | 中国科学院计算机网络信息中心 | 一种大数据驱动的网络安全态势监测及可视化方法 |
CN105791431A (zh) * | 2016-04-26 | 2016-07-20 | 北京邮电大学 | 一种在线分布式监控视频处理任务调度方法及装置 |
-
2016
- 2016-09-19 CN CN201610831613.9A patent/CN106407026A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105681303A (zh) * | 2016-01-15 | 2016-06-15 | 中国科学院计算机网络信息中心 | 一种大数据驱动的网络安全态势监测及可视化方法 |
CN105791431A (zh) * | 2016-04-26 | 2016-07-20 | 北京邮电大学 | 一种在线分布式监控视频处理任务调度方法及装置 |
Non-Patent Citations (1)
Title |
---|
于金良 等: ""一种分布式消息队列研究与测试"", 《物联网技术》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109002484A (zh) * | 2018-06-25 | 2018-12-14 | 北京明朝万达科技股份有限公司 | 一种用于顺序消费数据的方法及系统 |
CN109002484B (zh) * | 2018-06-25 | 2020-08-07 | 北京明朝万达科技股份有限公司 | 一种用于顺序消费数据的方法及系统 |
CN112925662A (zh) * | 2021-03-25 | 2021-06-08 | 支付宝(杭州)信息技术有限公司 | 标识生成方法和装置 |
CN112925662B (zh) * | 2021-03-25 | 2024-02-27 | 支付宝(杭州)信息技术有限公司 | 标识生成方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
HRP20201936T1 (hr) | Postupci i uređaj za distribuiranu bazu podataka unutar mreže | |
CN109688199B (zh) | 一种多域分层物联网联盟链平台及其分片方法、计算机 | |
EP4235514A3 (en) | Methods, systems, articles of manufacture and apparatus to map workloads | |
CN104113435B (zh) | 生成标识的方法及装置 | |
MY190598A (en) | Blockchain data processing method and apparatus | |
WO2019101242A3 (en) | System and method for ending view change protocol | |
SG11201807494UA (en) | Optimization method, evaluation method and processing method and apparatuses for data migration | |
CN103699618B (zh) | 数据报表的生成方法和系统 | |
US20200396281A1 (en) | System architecture and method of processing data therein | |
CN106407026A (zh) | 一种在流式计算中消息id的生成方法 | |
CN111064776B (zh) | 区块链中区块的生成方法、记账节点及存储介质 | |
CN106162365A (zh) | 基于时间轮盘和弹幕行为的活跃用户集维护方法及系统 | |
CN107977310B (zh) | 一种遍历测试命令生成方法及装置 | |
AU2021290402A1 (en) | Method for identifying a device using attributes and location signatures from the device | |
CN105511956A (zh) | 一种基于共享调度信息的任务调度方法和系统 | |
EP3352418B1 (en) | Data processing status monitoring method and device | |
CN104965840B (zh) | 一种数据节点的随机分配方法及系统 | |
CN104239204A (zh) | 一种最小测试用例集的生成方法 | |
WO2015165112A1 (en) | Validating analytics results | |
CN106294457A (zh) | 网络信息推送方法及装置 | |
CN106446308A (zh) | 基于稀疏贝叶斯的故障定位方法及系统 | |
CN102487334B (zh) | 关联告警信息的确定方法及装置 | |
CN106484787A (zh) | 一种在Map Reduce分布式运算中UUID的计算方法 | |
US20130283293A1 (en) | System and method for Intelligently distributing a plurality of transactions for parallel processing | |
CN104933058A (zh) | 一种监测网络访问活动的方法和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170215 |