spider RPC框架的需求来源与特性介绍(一)
spider RPC需求来源
spider RPC的需求源于作者所在公司布局证券金融服务行业某细分领域2B saas服务平台的需要,以尽可能达到高可靠性、最小化单点影响、单点失败时最小化影响客户数的目标、随时按需动态增加或收缩服务器实例,以满足互联网金融业务量随时剧烈波动的现实场景。
修复某证券期货大金融软件服务公司某java中间件通信框架下列潜在缺陷:
- cpu利用率在90%以上运行超过几十分钟后有可能jvm进程hang的问题;
- TPS无法随着服务器配置的增加线性扩展;
spider RPC公开版支持以下特性:
注:部分特性处于特殊场景考虑,公开版不开放。
- 能够根据请求包里面的功能号、子系统号进行静态路由;
- saas化。能够根据请求包里面的机构号、产品(系统)号、版本号进行动态路由。
saas架构的理想模式就是所有的业务实现均原生支持多租户。
如果做不到原生支持多租户,按照一个租户一个runtime,也需要动态能够设置某个runtime提供对哪个客户的支持,这肯定不能让运维动态更改配置文件,他只需要中心化指定即可。
即使能做到,也需要支持动态能够设置某个app提供对哪个客户的支持,因为一个app仅能够提供对有限个客户的支持,且mysql也不可能做到一个库支持所有。
反之,如果做不到原生支持多租户,则app必须支持多数据源切换以及动态管理,因为通常一个客户通常难以大到需要一个app去支持的程度。 - 支持服务器集群中的各节点负载均衡(根据模式);
- 支持基于中心化管理的大型部署和独立管理的中小型部署;
- 支持自动重连到断开的服务器节点;
- 支持中心化剔除已删除的服务器节点;
- 支持中心化增加服务器节点;
- 支持中心化删除服务器集群;
- 支持中心化增加服务器集群;
- 一个可执行组件,支持任何时候节点(Work Node,WN)作为路由服务器(Node Broker,NB)或处理服务器(Node Processor,NP);
- 基于TCP/IP协议,支持客户端语言无关;
- 节点间技术上对等,即允许同时满足A是B的客户端,B是A的客户端,只要保证路由不形成死循环即可;
- 支持报文加密;
- 能够自动校验报文是否被篡改;
- 支持客户端认证功能;
- 支持报文压缩;
- 支持是否启用服务端功能;
- 能够中心化监控所有中间件的运行状况;
- 支持基于java Spring IOC注解方式的Java原生式远程服务调用;
- 最小化节点本地(集中化)配置;
- 支持List泛型;
- 灵活的路由,任何服务都可以发送到任何集群(暂不支持到具体的节点)。
spider RPC框架的需求来源与特性介绍(一)的更多相关文章
- IE8 松散耦合进程框架(Loosely-Coupled IE (LCIE)--特性介绍
官方介绍:http://blogs.msdn.com/b/ie/archive/2008/03/11/ie8-and-loosely-coupled-ie-lcie.aspx 参考文档:http:// ...
- 谁能用通俗的语言解释一下什么是 RPC 框架?
转载自知乎:https://www.zhihu.com/question/25536695 知乎上很多问题的答案还是很好的,R大就经常在上面回答问题 关于RPC你的题目是RPC框架,首先了解什么叫RP ...
- 谁能用通俗的语言解释一下什么是 RPC 框架
转载自知乎:https://www.zhihu.com/question/25536695 知乎上很多问题的答案还是很好的,R大就经常在上面回答问题~ 谁能用通俗的语言解释一下什么是 RPC 框架? ...
- spider RPC开发指南
协议与兼容性 spider使用java语言开发,使用Spring作为IoC容器,采用TCP/IP协议,在此基础上,结合SaaS系统模式的特性进行针对性和重点设计,以更加灵活和高效的满足多租户系统.高可 ...
- RPC 框架通信原理
RPC是指远程过程调用,也就是说两台服务器A,B,一个应用部署在A服务器上,想要调用B服务器上应用提供的函数/方法,由于不在一个内存空间,不能直接调用,需要通过网络来表达调用的语义和传达调用的数据: ...
- 轻量级分布式 RPC 框架
@import url(/css/cuteeditor.css); 源码地址:http://git.oschina.net/huangyong/rpc RPC,即 Remote Procedure C ...
- 【转】轻量级分布式 RPC 框架
第一步:编写服务接口 第二步:编写服务接口的实现类 第三步:配置服务端 第四步:启动服务器并发布服务 第五步:实现服务注册 第六步:实现 RPC 服务器 第七步:配置客户端 第八步:实现服务发现 第九 ...
- RPC框架之Thrift
目前流行的服务调用方式有很多种,例如基于SOAP消息格式的 Web Service,基于 JSON 消息格式的 RESTful 服务等.其中所用到的数据传输方式包括 XML,JSON 等,然而 XML ...
- 一个入门rpc框架的学习
一个入门rpc框架的学习 参考 huangyong-rpc 轻量级分布式RPC框架 该程序是一个短连接的rpc实现 简介 RPC,即 Remote Procedure Call(远程过程调用),说得通 ...
随机推荐
- 【干货分享】流程DEMO-采购预算编制
流程名: 采购预算编制 业务描述: 在月初由计财部进行预算编辑,提交审批后预算生效 流程相关文件: 流程包.xml WebService业务服务.xml WebService.asmx WebSe ...
- BPM配置故事之案例10-获取外部数据
老李:Hi,小明,我又来了 小明:--这次又怎么了. 老李:之前的物资管理方式太混乱了,这段时间我整理了采购物资清单,现在都录入到我们的ERP中了,以后申请物资改成从ERP数据选择吧.物资明细表我也做 ...
- 数据库 DML、DDL、DCL区别 .
总体解释: DML(data manipulation language): 它们是SELECT.UPDATE.INSERT.DELETE,就象它的名字一样,这4条命令是用来对数据库里的数据进行操作的 ...
- 跟着老男孩教育学Python开发【第四篇】:模块
双层装饰器示例 __author__ = 'Golden' #!/usr/bin/env python # -*- coding:utf-8 -*- USER_INFO = {} def ch ...
- BZOJ 3626: [LNOI2014]LCA [树链剖分 离线|主席树]
3626: [LNOI2014]LCA Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 2050 Solved: 817[Submit][Status ...
- mono for android学习过程系列教程(3)
服务 接着上一讲的内容,咱们继续来唠叨概念性的东西.服务,内容提供器,广播接收器等理论知识. 首先是服务,它不是一个可视化的组件或者视图.他是由我们开发人员来定义,可以一直一直运行 的工作单元.跟活动 ...
- Netty构建分布式消息队列(AvatarMQ)设计指南之架构篇
目前业界流行的分布式消息队列系统(或者可以叫做消息中间件)种类繁多,比如,基于Erlang的RabbitMQ.基于Java的ActiveMQ/Apache Kafka.基于C/C++的ZeroMQ等等 ...
- My First Android Application Project 第一个安卓应用
一.前言: 安卓(Android):是一种基于Linux的自由及开放源代码的操作系统,主要用在移动设备上,如手机.平板电脑.其他的设备也有使用安卓操作系统,比如:电视机,游戏机.数码相机等等. 二.具 ...
- JavaScript版拼图小游戏
慕课网上准备开个新的jQuery教程,花了3天空闲时间写了一个Javascript版的拼图小游戏,作为新教程配套的分析案例 拼图游戏网上有不少的实现案例了,但是此源码是我自己的实现,所以不做太多的比较 ...
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(60)-系统总结
系列目录 前言: 起初写这个框架的时候,可以说在当时来说并不是很流行的设计模式,那是在2012年,面向对象的编程大家都很熟悉, 但是“注入.控制反转(DI,IOC,依赖注入).AOP切面编程”新兴名词 ...