转载

码云推荐 |基于 Spring 的分布式实时处理框架 R3

R3 FRAMEWORK - 分布式实时处理框架

简介

基于Spring的分布式实时处理框架。

逻辑架构设计

码云推荐 |基于 Spring 的分布式实时处理框架 R3

包结构设计

码云推荐 |基于 Spring 的分布式实时处理框架 R3

配置样例

Worker端

<r3:application name="worker-1" host="AUTO" port="20080"></r3:application> 
   <r3:registry address="localhost:2181" namespace="r3"></r3:registry> 
   <r3:worker id="sayHelloWorker" ref="sayHelloServiceImpl" interface="r3.example.api.SayHelloService"></r3:worker> 
   <bean id="sayHelloServiceImpl" class="r3.example.worker.SayHelloServiceImpl" scope="prototype"></bean>

Leader端

<r3:application name="leader-one" ></r3:application>
   <r3:registry address="localhost:2181" namespace="r3"></r3:registry> 
   <r3:leader id="sayHelloServiceImpl" interface="r3.example.api.SayHelloService"></r3:leader>

配置属性

r3:application 应用配置

<r3:application name="worker-1" host="localhost" port="20080"></r3:application>

Attribute Description
name 应用名称,必须项,同名的application为同组,组内软负载取其一。
host 监听地址,默认为“AUTO”,如果为“AUTO”的话,会自动采用本机IP地址。多网卡的情况下可以手动设置IP。
port 监听端口,默认为20080。

r3:registry 注册中心配置

<r3:registry address="localhost:2181" namespace="r3"></r3:registry>

Attribute Description
address 注册中心zookeeper的地址,默认为“localhost:2181”。
namespace 应用注册的命名空间,zookeeper的根节点,默认为:r3。
sessionTimeout 回话超时时间设置,单位为毫秒,默认为3000。
connectionTimeout 连接的超时时间,单位为毫秒,默认为3000。
interval 多次尝试注册服务的时间间隔,单位为毫秒,默认为30000。

r3:worker 工作者配置

<r3:worker id="sayHelloWorker" ref="SayHelloServiceImpl" interface="r3.example.api.SayHelloService">

Attribute Description
id spring bean id。
ref 引用的spring的bean。
interface 实现的接口类。

r3:leader 代理者配置

<r3:leader id="sayHelloServiceImpl" interface="r3.example.api.SayHelloService"></r3:leader>

Attribute Description
id spring bean id。
interface 代理的接口类。
loadbalance 负载策略,默认为“random”,尚不支持其他策略。

版本说明

采用行星名称命名。

后续开发计划

  1. 引入Filter概念,提供r3-filter模块。
  2. 引入leader的超时和重试机制。
  3. 提供其他的LoadBalance策略。
原文  https://gitee.com/zhoufn/r3
正文到此结束
Loading...