harpc

轻量级 RPC 框架
授权协议 Apache
开发语言 Java JavaScript HTML/CSS
所属分类 Web应用开发、 RPC/XMLRPC项目
软件类型 开源软件
地区 国产
投 递 者 柯昆杰
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

harpc 是基于Thrift的跨语言、高可用、高性能、轻量级的RPC框架。

功能介绍

  • 跨语言通信

    • 方便的使Java、Python、C++三种程序可以相互通信

  • 负载均衡和容灾处理

    • 方便的实现任务的分布式处理

    • 支持服务的水平扩展,自动发现新的服务节点

    • 能够兼容各种异常情况,如节点的异常down机

  • 可视化管理

    • 通过服务管理系统可以方便查看服务状态和统计信息

  • 与原生thrift通信

    • 支持与原生thrift服务进行通信

与业内方案的对比

  • 与thrift、avro、hessian相比,harpc支持了高可用,并且更加易用

  • 与dubbo相比,harpc支持了跨语言,并且更轻量级

  • 与ice相比,harpc性能更高,并且更轻量级

设计思路

HARPC的核心思想是高可用,那么在保证高可用的基础上,还需要具备跨语言、高性能、可视化及轻量级等特性。于是,我们在设计之初就选择了基于 thrift开发的方案,底层通信使用thrift来保证高性能和跨语言,然后HARPC来保证高可用和可视化,并且尽量保持简单,来达到轻量级的需求。

  • 整体结构

整体结构

* 说明
    * 四个部分:client(客户端)、server(服务端)、registry(注册中心,目前为zookeeper集群)、admin(服务管理系统)
    * client和server又包括: your code(用户代码)、harpc(核心框架,包含Java、Python、C++三个版本)、thrift gen(thrift生成的源码文件,用于底层通信)
 相关资料
  • 本文向大家介绍轻量级javascript 框架Backbone使用指南,包括了轻量级javascript 框架Backbone使用指南的使用技巧和注意事项,需要的朋友参考一下 Backbone 是一款基于模型-视图-控制器 MVC 模式的轻量级javascript 框架 ,可以用来帮助开发人员创建单页Web应用。 借助Backbone 我们可以使用REST的方式来最小化客户端和服务器间的数据传输,

  • 本文向大家介绍前端轻量级MVC框架CanJS详解,包括了前端轻量级MVC框架CanJS详解的使用技巧和注意事项,需要的朋友参考一下 选择正确的库 创建一个JS APP没有好的工具是很有难度的,jQuery只是操作DOM的库,没有提供任何创建APP的基础,这就是为什么我们要一个类似CanJS的专门的库。 CanJS 是一个轻量级的MVC库,提供你创建一个JS APP所需的工具。 CanJS 是一个轻

  • 问题内容: 是否有一个提供发布/订阅模式的Java轻量级框架? 一些理想的功能 支持泛型 向发布者注册多个订阅者 API主要是接口和一些有用的实现 完全不需要内存,持久性和事务保证。 我了解JMS,但这对我来说太过分了。发布/订阅的数据是文件系统扫描的结果,扫描结果被馈送到另一个组件进行处理,然后在将其馈给另一个组件之前进行处理,依此类推。 编辑:所有在同一过程中。bean的PropertyCha

  • 本文向大家介绍浅谈Android轻量级的数据缓存框架RxCache,包括了浅谈Android轻量级的数据缓存框架RxCache的使用技巧和注意事项,需要的朋友参考一下 请求网络数据是在安卓开发中使用最频繁的一个功能,网络请求的体验决定了用户对整个APP的感觉,因此合理地使用缓存对网络请求的数据进行处理极为重要。合理的进行缓存和网络请求,可以为APP带来更优秀的体验。图片的缓存有Picasso、Gl

  • 问题内容: 我一直在使用jQuery在基于Web的应用程序中完成整个AJAX魔术。但是,我来到了一个决定,我并不需要所有这些神奇功能jQuery有,除了它的AJAX功能(例如,,,和)。 您能推荐轻量级的跨浏览器AJAX库/框架(最大10 kb)吗? 问题答案: 您可以通过删除不需要的模块来缩小jQuery的大小,只需修改Makefile文件即可。

  • 本文向大家介绍详解Spring Batch 轻量级批处理框架实践,包括了详解Spring Batch 轻量级批处理框架实践的使用技巧和注意事项,需要的朋友参考一下 实践内容 从 MariaDB 一张表内读 10 万条记录,经处理后写到 MongoDB 。 具体实现 1、新建 Spring Boot 应用,依赖如下: 2、创建一张表,并生成 10 万条数据 3、创建 Person 类 4、创建一个中