分布式消息系统Jafka入门指南

简介: 分布式消息系统Jafka入门指南 一、JafkaMQ简介 JafkaMQ是一个分布式的发布/订阅消息系统,它是Apache Kafka的Java移植版。 2013年11月28日,JafkaMQ发布了1.2.3版。
分布式消息系统Jafka入门指南

一、JafkaMQ简介

JafkaMQ是一个分布式的发布/订阅消息系统,它是Apache Kafka的Java移植版。


2013年11月28日,JafkaMQ发布了1.2.3版。

JafkaMQ的特征如下:

1)消息持久化到磁盘的算法时间复杂度为O(1),即使是TB级的消息存储,也能保证常量时间的执行性能。
2)高吞吐量:即使是低配制的硬件条件,单个Broker也能支持每秒数十万的消息吞吐。
3)明确支持Broker服务器的消息分区
4)消息格式简单,支持多语言客户端
5)纯Java
6)分布式消息系统(生产者Producer/代理者Broker/消费者Consumer)
7)自动负载均衡

说明,Apache Kafka基于Scala语言,如果对Scala感兴趣,可以改用Kafka。

Jafka以及提交到Maven中央仓库,下载地址见:
http://repo1.maven.org/maven2/com/sohu/jafka/jafka/1.2.3/

最新的Jafka 1.2.3版仅有310KB。

https://github.com/adyliu/jafka
https://googledrive.com/host/0B4VObojKr49KeVNaTnc3bDlKNXM/

二、JafkaMQ的安装

1、下载JafkaMQ

https://googledrive.com/host/0B4VObojKr49KeVNaTnc3bDlKNXM/jafka-1.2.3.tgz

2、解压
$ tar zvxf jafka-1.2.3.tgz
$ mv jafka-1.2.3 jafka
$ cd jafka

3、运行Jafka
运行JafkaMQ很简单,执行命令:
$ bin/server.sh conf/server.properties
2014-04-28 07:14:07.527 INFO  Server - Starting Jafka server 1.2.3
2014-04-28 07:14:08.210 INFO  LogManager - starting log cleaner every 60000 ms
2014-04-28 07:14:08.231 INFO  SocketServer - start 8 Processor threads
2014-04-28 07:14:08.383 INFO  Acceptor - Awaiting connection on port 9092
2014-04-28 07:14:08.385 INFO  LogManager - Starting log flusher every 1000 ms with the following overrides {}
2014-04-28 07:14:08.386 INFO  Server - Server started.
2014-04-28 07:15:15.403 INFO  Log - loadSegments files from [/home/chuser/jafka/data/demo-0]: 0
2014-04-28 07:15:15.431 INFO  Log - Loading the last segment /home/chuser/jafka/data/demo-0/00000000000000000000.jafka in mutable mode, recovery false
2014-04-28 07:15:15.440 INFO  LogManager - Created log for [demo-0], now create other logs if necessary

注意:conf/server.properties是Jafka的配置文件。
或者执行命令:
$ bin/run.sh console

4、测试Jafka
在Bash环境执行命令:
$ bin/producer-console.sh --broker-list 0:localhost:9092 --topic demo
> Welcome to jafka
> Hello world
> 中文测试

在另一个Bash环境下执行命令:
$ .bin/simple-consumer-console.sh --topic demo --server jafka://localhost:9092
[1] 26: Welcome to jafka
[2] 47: Hello world
[3] 77: 锟斤拷锟侥诧拷锟斤拷

可见,消息的发送和接收都成功了。当然,接收到的中文消息在Bash下显示为乱码,不过没关系,我们随后解决。
目录
相关文章
|
22天前
|
机器学习/深度学习 存储 运维
分布式机器学习系统:设计原理、优化策略与实践经验
本文详细探讨了分布式机器学习系统的发展现状与挑战,重点分析了数据并行、模型并行等核心训练范式,以及参数服务器、优化器等关键组件的设计与实现。文章还深入讨论了混合精度训练、梯度累积、ZeRO优化器等高级特性,旨在提供一套全面的技术解决方案,以应对超大规模模型训练中的计算、存储及通信挑战。
55 4
|
1月前
|
存储 运维 负载均衡
构建高可用性GraphRAG系统:分布式部署与容错机制
【10月更文挑战第28天】作为一名数据科学家和系统架构师,我在构建和维护大规模分布式系统方面有着丰富的经验。最近,我负责了一个基于GraphRAG(Graph Retrieval-Augmented Generation)模型的项目,该模型用于构建一个高可用性的问答系统。在这个过程中,我深刻体会到分布式部署和容错机制的重要性。本文将详细介绍如何在生产环境中构建一个高可用性的GraphRAG系统,包括分布式部署方案、负载均衡、故障检测与恢复机制等方面的内容。
116 4
构建高可用性GraphRAG系统:分布式部署与容错机制
|
28天前
|
机器学习/深度学习 人工智能 分布式计算
【AI系统】分布式通信与 NVLink
进入大模型时代后,AI的核心转向大模型发展,训练这类模型需克服大量GPU资源及长时间的需求。面对单个GPU内存限制,跨多个GPU的分布式训练成为必要,这涉及到分布式通信和NVLink技术的应用。分布式通信允许多个节点协作完成任务,而NVLink则是一种高速、低延迟的通信技术,用于连接GPU或GPU与其它设备,以实现高性能计算。随着大模型的参数、数据规模扩大及算力需求增长,分布式并行策略,如数据并行和模型并行,变得至关重要。这些策略通过将模型或数据分割在多个GPU上处理,提高了训练效率。此外,NVLink和NVSwitch技术的持续演进,为GPU间的高效通信提供了更强的支持,推动了大模型训练的快
40 0
|
2月前
|
消息中间件 关系型数据库 Java
‘分布式事务‘ 圣经:从入门到精通,架构师尼恩最新、最全详解 (50+图文4万字全面总结 )
本文 是 基于尼恩之前写的一篇 分布式事务的文章 升级而来 , 尼恩之前写的 分布式事务的文章, 在全网阅读量 100万次以上 , 被很多培训机构 作为 顶级教程。 此文修改了 老版本的 一个大bug , 大家不要再看老版本啦。
|
2月前
|
消息中间件 中间件 数据库
NServiceBus:打造企业级服务总线的利器——深度解析这一面向消息中间件如何革新分布式应用开发与提升系统可靠性
【10月更文挑战第9天】NServiceBus 是一个面向消息的中间件,专为构建分布式应用程序设计,特别适用于企业级服务总线(ESB)。它通过消息队列实现服务间的解耦,提高系统的可扩展性和容错性。在 .NET 生态中,NServiceBus 提供了强大的功能,支持多种传输方式如 RabbitMQ 和 Azure Service Bus。通过异步消息传递模式,各组件可以独立运作,即使某部分出现故障也不会影响整体系统。 示例代码展示了如何使用 NServiceBus 发送和接收消息,简化了系统的设计和维护。
65 3
|
2月前
|
消息中间件 存储 监控
消息队列系统中的确认机制在分布式系统中如何实现
消息队列系统中的确认机制在分布式系统中如何实现
|
2月前
|
消息中间件 存储 监控
【10月更文挑战第2天】消息队列系统中的确认机制在分布式系统中如何实现
【10月更文挑战第2天】消息队列系统中的确认机制在分布式系统中如何实现
|
2月前
|
存储 开发框架 .NET
C#语言如何搭建分布式文件存储系统
C#语言如何搭建分布式文件存储系统
87 2
|
2月前
|
消息中间件 存储 监控
消息队列系统中的确认机制在分布式系统中如何实现?
消息队列系统中的确认机制在分布式系统中如何实现?
|
3月前
|
Dubbo Java 应用服务中间件
分布式-dubbo的入门
分布式-dubbo的入门