BifroMQ 正在参加 2021 年度 OSC 中国开源项目评选,请投票支持!
BifroMQ 在 2021 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
2021 年度 OSC 中国开源项目评选 正在火热进行中,快来投票支持你喜欢的开源项目!
2021 年度 OSC 中国开源项目评选 >>> 中场回顾
BifroMQ 获得 2021 年度 OSC 中国开源项目评选「最佳人气项目」 !
授权协议 Apache
开发语言 Java 查看源码 »
操作系统 跨平台
软件类型 开源软件
开源组织 百度
地区 国产
投 递 者
适用人群 未知
收录时间 2023-07-13

软件简介

BifroMQ 是基于 Java 实现的高性能分布式 MQTT Broker 消息中间件,无缝集成了原生的多租户支持。它旨在支持构建大规模的物联网设备连接和消息系统。

BifroMQ 采用了负载独立子集群设计,可以高效处理连接会话、消息转发和消息存储等工作负载。各子集群具备高可用性,支持横向扩展,并能灵活应对多租户场景。

同时,BifroMQ 内置了优化的分布式存储引擎,无需依赖第三方存储中间件,保证了性能稳定。

此外,BifroMQ 支持单机模式Standalone、标准集群Standard Cluster、独立工作负载集群Independent Workload Cluster三种部署模式,并允许通过插件进行定制,以满足不同业务需求。

性能方面,在标准测试环境中,处理大量并发消息发布时,BifroMQ 保持了极低的消息时延及较低的 CPU 使用率。

特性

  • 完全支持 MQTT 3.1/3.1.1的特性,包括 TCP, TLS, WS, WSS,即将支持 MQTT 5
  • 原生支持多租户资源共享和工作负载隔离
  • 内置存储引擎,针对关键负载定向优化,无第三方中间件依赖。
  • 扩展机制支持:
    • 认证/授权 (Authentication/Authorization)
    • 运行时设置 (Runtime Setting)
    • 桥接 (Bridging)
    • 事件 (Event)
    • 系统/租户级别的监控 (System/Tenant-level Monitoring)

开始使用

预备条件

  • JDK 17+
  • Maven 3.5.0+

从源码构建

将仓库克隆到您的本地工作空间:

cd <YOUR_WORKSPACE>
git clone https://github.com/baidu/bifromq bifromq

进入项目文件夹,执行以下命令来构建整个项目:

cd bifromq
mvn wrapper:wrapper
./mvnw -U clean package

构建输出包括位于/build/build-bifromq-starters/target/下:

  • bifromq-<VERSION>-windows-standalone.zip
  • bifromq-<VERSION>-standalone.tar.gz

运行测试

在项目根文件夹执行以下命令来运行所有测试用例,包括单元测试和集成测试。 注意:测试可能需要一些时间来完成

mvn test

部署

BifroMQ 有三种部署模式:单机模式(Standalone)标准集群(Standard Cluster)独立工作负载集群(Independent Workload Cluster)

单机模式

单机部署模式非常适合开发阶段,或不需要即时恢复的生产环境。

要启动一个单机的 bifromq 服务器,将 bifromq-xxx-standalone.tar.gz 解压到一个目录。目录结构如下:

|-bin
|-conf
|-lib
|-plugins

在bin目录下执行以下命令:

启动服务器:

./standalone.sh start // 服务进程会在后台运行

停止服务器:

./standalone.sh stop

配置文件 'standalone.yml' 位于 conf 目录中。

大部分设置可以通过名称理解其含义。默认情况下,单机服务器将在data目录中保存持久数据。

标准集群(即将公开)

标准集群部署模式适用于需要可靠性和可扩展性的小型到中型生产环境。

它由几个完全功能的节点组成,共同作为一个逻辑 MQTT Broker 实例,确保高可用性。

你也可以通过添加更多的节点来扩大并发 MQTT 连接的工作负载,而在这种模式下,某些类型的消息相关的工作负载并不是水平可扩展的。

独立工作负载集群

独立工作负载集群部署模式旨在构建大规模的,多租户的 Serverless 集群。在这种模式下,集群由几个专门的子集群组成,每个子集群都专注于一个特定的'独立类型'的工作负载。这些子集群共同协作形成一个逻辑的 MQTT Broker 实例。这是最复杂的部署模式,需要额外的非开源协作组件。如需商业支持,请随时与我们联系。

展开阅读全文

代码

的 Gitee 指数为
超过 的项目

评论

点击引领话题📣 发布并加入讨论🔥
发表了资讯
2023/12/21 11:05

技术揭秘第一回:看 BifroMQ 如何构建高效可用集群

引言 自今年7月份BifroMQ正式开源以来,在社群内获取了一定关注,也有许多用户也表达了对产品背后技术的兴趣。因此BifroMQ团队决定推送技术解读系列文章,深入剖析BifroMQ的各组件及其设计原则,给对该项目感兴趣的同学带来更深入的产品解析。本篇文章作为BifroMQ技术揭秘专题系列开篇文章,将详细介绍BifroMQ如何通过各种机制确保集群的高可用性,包括分布式集群架构、故障检测与自动逐出机制,以及各类负载均衡策略。后续将会...

1
4
发表了资讯
2023/11/16 12:57

BifroMQ-v2.0.0 版本重磅发布:支持标准集群模式(StandardCluster)

2023年7月,百度天工AIoT团队正式开源高性能分布式MQTT物联网消息中间件,并将其全新命名为BifroMQ。自 BifroMQ 首个版本发布以来,获得海量社区的广泛关注,其中,BifroMQ的集群能力一直备受期待。 通过近三个月的不懈努力,如今正式推出 BifroMQ-v2.0.0版本,新版本首次支持集群模式,我们将其称为标准集群StandardCluster(以下简称StandardCluster)。新版本主要有以下特性: 🌍 集群模式全面支持 MQTT 协议:在...

0
4
发表了资讯
2023/11/15 16:47

BifroMQ-v2.0.0 发布:支持标准集群模式(StandardCluster)

百度天工 AIoT 团队在 2023 年 7 月正式宣布开源高性能分布式MQTT物联网消息中间件,并将其全新命名为 BifroMQ。历时三个月,BifroMQ-v2.0.0 版本现已发布。 新版本首次支持集群模式,官方将其称为标准集群 StandardCluster(简称 StandardCluster)。主要有以下特性: 集群模式全面支持 MQTT 协议:在集群模式下,每个节点均具备完整的 MQTT 协议功能,提供更高的可用性和扩展性。 新增 HTTP API 支持:除 MQTT外,本版本新增对...

0
2
发表了资讯
2023/09/06 18:38

开源 MQTT 中间件 - BifroMQ 技术架构概览

在当今的物联网领域,MQTT协议已经成为不可或缺的关键要素,为高效、实时的数据传递提供了核心技术支持。然而,目前市场上提供MQTT能力的项目主要集中在传统的、现有的"开箱即用"物联网设备管理平台上,导致更底层的MQTT协议实现缺乏足够的关注和探索。然而,我们深信MQTT协议的特性有着更广泛的应用前景,不仅仅局限于物联网领域。正是出于这一信念,经过多年的实践和技术积累我们推出了开源项目BifroMQ,专注于MQTT协议的高效...

0
9
发表了资讯
2023/07/14 18:55

百度正式开源 BifroMQ:高性能多租户 MQTT 消息中间件

百度天工AIoT物联网平台在“IDC MarketScape 中国物联网云平台厂商评估,2022”中居领导者位置。其关键能力物联网核心套件,在过去几年中已经广泛服务于数千家企业和大量开发者。无论是在智能家居、车联网、工业还是在智慧城市领域,亿级设备通过物联网核心套件 实现物联,海量、高频、大容量的消息吞吐每时每刻都在发生。 天工AIoT平台之所以能够长时间稳定地服务如此巨大的设备和业务规模,很大程度上归功于其底层的MQTT消息中...

12
15
发表了资讯
2023/07/13 15:26

百度开源高性能 MQTT Broker 消息中间件:BifroMQ

百度今日正式开源 BifroMQ,这是一个基于 Java 实现的高性能、分布式 MQTT Broker 消息中间件,采用 Serverless 架构,无缝集成了原生的多租户支持。它旨在支持构建大规模的物联网设备连接和消息系统。 据介绍,BifroMQ 源自百度物联网团队多年技术积累。目前,它被用作百度智能云物联网核心套件 IoT Core 的基础技术,这是一个公有云的 Serverless 服务。 BifroMQ 主要特性 完全支持 MQTT 3.1/3.1.1 的特性,包括 TCP/TLS/WS/W...

2
21
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
发表了博客
{{o.pubDate | formatDate}}

{{formatAllHtml(o.title)}}

{{parseInt(o.replyCount) | bigNumberTransform}}
{{parseInt(o.viewCount) | bigNumberTransform}}
没有更多内容
暂无内容
发表了问答
{{o.pubDate | formatDate}}

{{formatAllHtml(o.title)}}

{{parseInt(o.replyCount) | bigNumberTransform}}
{{parseInt(o.viewCount) | bigNumberTransform}}
没有更多内容
暂无内容
暂无内容
0 评论
19 收藏
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部