Hasor-RSF - 分布式服务框架


Apache
跨平台
Java

软件简介

一个高可用、高性能、轻量级的分布式服务框架。支持容灾、负载均衡、集群。一个典型的应用场景是,将同一个服务部署在多个Server上提供
request、response 消息通知。使用RSF可以点对点调用,也可以分布式调用。部署方式上:可以搭配注册中心,也可以独立使用。

注册中心的使用支持嵌入到应用程序本身,也支持独立运行。集群模式的部署注册中心,还可以为您解决注册中心单点问题。

渊源

核心思想参考了淘宝HSF、Dubbo等优秀框架。虽然参考了相关设计,但是实现逻辑完全不同,相比淘宝HSF少了历史包袱,相比Dubbo更加轻量化。而且还支持了虚拟机房,对于多机房部署的产品可以省下大量带宽成本,同时也降低了远程调用时间。真正的毫秒级调用业务处理。

RSF虽然在功能上与两位前辈出入不大,使用RSF最直观的感受就是简单方便,配置少、依赖少,功能强大。

简单容易(三个一)

  • 1 行代码发布服务。
  • 1 行代码订阅服务。
  • 1 行代码使用服务。

配置文件上也是十分简单,编辑xml配置文件,两行配置(一行,配置端口、一行配置注册中心)

工作原理

架构

特性

01. 支持服务动态发布、动态卸载。
02. 支持服务分组、分版本。
03. 支持多种调用方式(同步、异步、回调、接口代理)
04. 支持点对点定向通信,也可以集群大规模部署集中提供同一个服务。
05. 支持虚拟机房,通过配置虚拟机房策略可以降低跨机房远程调用。
06. 支持QoS流量控制,流控可以精确到:接口、方法、地址。
07. 支持动态路由脚本,路由可以精确到:接口、方法、参数。
08. 支持泛化调用。泛化调用就是不依赖二方包,通过传入方法名,方法签名和参数值,就可以调用服务。
09. 支持优雅上下线。
10. 支持 telnet 控制台,同时控制台指令还支持自定义扩展。
11. 支持自定义序列化。默认使用内置 Hessian 4.0.7 序列化库。
12. 支持请求、响应分别使用不同序列化规则。
13. 支持隐式传参,即调用之外的信息通过选项发送给远端,或者由远端响应给调用方。
14. 支持调用拦截器RsfFilter。
15. 支持注册中心三种部署方式(单机模式、集群模式、主从模式)
16. 采用服务地址缓存。当应用启动时,如果注册中心离线,可以自动尝试恢复服务的提供者地址列表。
17. 采用失效地址自动重新尝试激活。当某个地址失效之后,RSF会冻结一段时间。
18. 采用IO线程、调用线程分离式设计。
19. 最小依赖:即便使用全部功能依赖也仅仅只有“hasor.jar、netty.jar、groovy.jar”三个JAR包。

相关资源