Webank DeFiBus

Decentralized Financial Message Bus

License

License

GroupId

GroupId

com.webank.defibus
ArtifactId

ArtifactId

defibus-namesrv
Last Version

Last Version

1.0.1
Release Date

Release Date

Type

Type

jar
Description

Description

Webank DeFiBus
Decentralized Financial Message Bus
Project URL

Project URL

https://github.com/WeBankFinTech/DeFiBus
Source Code Management

Source Code Management

https://github.com/WeBankFinTech/DeFiBus

Download defibus-namesrv

How to add to project

<!-- https://jarcasting.com/artifacts/com.webank.defibus/defibus-namesrv/ -->
<dependency>
    <groupId>com.webank.defibus</groupId>
    <artifactId>defibus-namesrv</artifactId>
    <version>1.0.1</version>
</dependency>
// https://jarcasting.com/artifacts/com.webank.defibus/defibus-namesrv/
implementation 'com.webank.defibus:defibus-namesrv:1.0.1'
// https://jarcasting.com/artifacts/com.webank.defibus/defibus-namesrv/
implementation ("com.webank.defibus:defibus-namesrv:1.0.1")
'com.webank.defibus:defibus-namesrv:jar:1.0.1'
<dependency org="com.webank.defibus" name="defibus-namesrv" rev="1.0.1">
  <artifact name="defibus-namesrv" type="jar" />
</dependency>
@Grapes(
@Grab(group='com.webank.defibus', module='defibus-namesrv', version='1.0.1')
)
libraryDependencies += "com.webank.defibus" % "defibus-namesrv" % "1.0.1"
[com.webank.defibus/defibus-namesrv "1.0.1"]

Dependencies

compile (14)

Group / Artifact Type Version
org.apache.commons : commons-collections4 jar 4.1
commons-beanutils : commons-beanutils jar 1.9.3
org.apache.commons : commons-lang3 jar 3.6
commons-codec : commons-codec jar 1.10
com.google.guava : guava jar 29.0-jre
org.slf4j : slf4j-api jar 1.7.30
com.alibaba : fastjson jar 1.2.71
commons-io : commons-io jar 2.4
com.webank.defibus : defibus-common jar 1.0.1
ch.qos.logback : logback-core jar 1.2.3
ch.qos.logback : logback-classic jar 1.2.3
org.apache.rocketmq : rocketmq-broker jar 4.4.0
org.apache.rocketmq : rocketmq-namesrv jar 4.4.0
org.apache.rocketmq : rocketmq-client jar 4.4.0

test (5)

Group / Artifact Type Version
junit : junit jar 4.12
org.assertj : assertj-core jar 2.6.0
org.mockito : mockito-core jar 2.23.0
org.powermock : powermock-module-junit4 jar 2.0.2
org.powermock : powermock-api-mockito2 jar 2.0.2

Project Modules

There are no modules declared in this project.

DeFiBus(Decentralized Financial Message Bus) -- 分布式金融级消息总线

Build Status Coverage Status

       DeFiBus=RPC+MQ,是基于开源消息中间件打造的安全可控的分布式金融级消息总线。DeFiBus不仅提供了RPC同步调用,还提供了MQ的异步事件通知、事件组播和广播等常用服务调用和消息模式,同时增加了应用多中心多活、服务就近、灰度发布等分布式场景下的高可用能力。在对于机器故障的容错能力方面的增强,也让消息总线的服务更加稳定可靠,为业务提供7x24的服务。

分布式架构

architecture1

名词解释 DCN:Data Center Node(数据中心节点)

系统架构

architecture2

DeFiBus主要包括以下几个组件(模块):

  • Broker:通过轻量级的Topic和Queue机制提供消息存储功能。Broker定期将Topic信息上报到NameServer中,同集群中的Broker实例上报的NameServer必须保持一致,避免路由信息不一致。

  • NameServer:NameServer提供Topic的发现和路由,每一个NameServer接受Broker上报的Topic信息,并维护Topic的路由信息供客户端查询。

  • GSL:全局服务定位(Global Service Location)服务提供服务级别的路由发现。服务可以部署在不同的区域(比如不同的数据中心、逻辑分区等),服务请求方在请求某一个具体服务时,无需关注服务部署的区域,GSL能够根据服务发现规则自动定位到具体的服务,将服务信息返回给客户端。

  • EventMesh:服务代理提供TCP/HTTP接入方式,同时允许按照协议规范开发的C、GO、Python等其他语言客户端的接入。

  • ConfigCenter(CC):配置中心,提供HTTP接入方式,比如Namesrv的寻址以及其他配置。

  • ACL:访问控制服务,TOPIC级别的IP访问控制,提供黑白名单功能。

  • SGS:服务治理系统(Service Government System),用于管理服务、服务请求、服务响应、服务路由、ACL等流程和数据。

特性列表:

Quick Start

DeFiBus的安装部署流程请参考:《DeFiBus使用指引》
examples模块中提供了最佳实践样例:defibus-examples

License

DeFiBus is licensed under Apache License.

非常感谢以下项目对开源做出的贡献

动态

Wiki 上汇总了相关动态和资讯,点此处前往查看

Contacts

微信/QQ群:

wechat_qr

com.webank.defibus

WeBankFinTech

Versions

Version
1.0.1
1.0.0