一个高可用、高性能、轻量级的分布式服务框架。支持容灾、负载均衡、集群。一个典型的应用场景是,将同一个服务部署在多个Server上提供 request、response 消息通知。使用RSF可以点对点调用,也可以分布式调用。部署方式上:可以搭配注册中心,也可以独立使用。
注册中心的使用支持嵌入到应用程序本身,也支持独立运行。集群模式的部署注册中心,还可以为您解决注册中心单点问题。
渊源
核心思想参考了淘宝HSF、Dubbo等优秀框架。虽然参考了相关设计,但是实现逻辑完全不同,相比淘宝HSF少了历史包袱,相比Dubbo更加轻量化。而且还支持了虚拟机房,对于多机房部署的产品可以省下大量带宽成本,同时也降低了远程调用时间。真正的毫秒级调用业务处理。
RSF虽然在功能上与两位前辈出入不大,使用RSF最直观的感受就是简单方便,配置少、依赖少,功能强大。
简单容易(三个一)
配置文件上也是十分简单,编辑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包。
相关资源
Hasor 是一款基于 Java 语言的应用程序开发框架,它的核心设计目标是提供一个简单、且必要的环境给开发者。开发者可以在此基础上,通过 Hasor 强有力的粘合机制,构建出更加完善的应用场景。同时 Hasor 的各种内置插件也会帮助开发者进行快速开发。而所有内置插件,在初始化的时都做了智能加载,只有用到了它们才会被加载到框架中。否则这些内置插件在初始化期间就会放弃加载自己。基于目前 Hasor
问题内容: 您将使用哪种分布式锁定服务? 要求是: 可以从不同的进程/机器看到的互斥(锁定) 锁定…释放语义 超时后自动释放锁-如果锁持有人死亡,它将在X秒后自动释放 Java实现 很高兴拥有:.Net实现 如果免费:死锁检测/缓解 易于部署,请参阅下面的注释。 我对诸如“可以通过数据库完成”或“可以通过JavaSpaces完成”之类的答案不感兴趣-我知道。我对现成的,现成的,经过验证的实现感兴趣
链接 Web API Controllers 动态WebApi层 集成OData 集成Swagger UI ASPNET Core 集成OData
我有两个微服务和调用来更新数据,然后插入另一个数据,但让我们考虑一下 失败,然后我们需要回滚由 更新的数据,否则我们将处于不一致的状态。 我也经历了佐贺patterns.will它满足了这种矛盾 谁能为此提出更好的解决方案?
最近在学微服务的分布式事务,不太明白为什么在微服务这种分布式系统中,原有的单体acid会出现问题 希望大佬们可以讲一下原理和思想
5.3 ABP分布式服务 - 集成OData 5.3.1 简介 开放数据协议(Open Data Protocol,缩写OData)是一种描述如何创建和访问Restful服务。你可以在Abp中使用OData,只需要通过Nuget来安装Abp.Web.Api.OData. 5.3.2 安装 1. 使用Nuget安装 首先应该使用Nuget安装Abp.Web.Api.OData到我们的WebApi项目
5.1 ABP分布式服务 ASP.NET Web API Controllers 5.1.1 简介 ABP已经把 ASP.NET Web API Controllers 集成到了 Abp.Web.Api,你只要通过Nuget安装它。正如你一直那样做得,你可以创建常规的ASP.NET Web API Controllers, 依赖注入可以解析常规的ApiControllers。 为了能够享受使用AB