spider RPC高级特性
多租户
spider原生支持多租户部署,spider报文头对外开放了机构号、系统号两个属性用于支持多租户场景下的路由。
多租户场景下的路由可以支持下述几种模式:
n 系统号;
n 系统号+服务号(模式匹配);
n 机构号+系统号;
n 机构号+系统号+服务号(模式匹配);
要启用多租户模式,必须确保至少有一条路由的系统号或机构号或版本号不为*。
灰度升级
spider原生支持灰度升级,spider报文头对外开放了版本号属性用于支持灰度升级场景下的路由。
一般来说,建议在接入服务器中维护应用的版本可最简化管理。为此,spider在配置文件中增加了一个appVersion的属性,如果在配置文件中设置了该属性,在报文头版本号属性为空时自动注入到spider请求中。通常,我们会在接入节点设置appVersion。
高可用与集群
spider原生支持高可用和集群特性,在集中式管理模式下,具有相同节点名的服务器节点会自动组成集群并通知相应的上游节点。在独立管理模式下,通过将需要组成集群的服务器节点配置在spider.xml文件相同的spider.channel->server元素下,各服务器节点将自动组成集群。
在任何模式下,只要下游节点出现故障,spider均会自动将其从集群列表中隔离,并定期重试。如果出现故障的节点需要永久性删除,则可以通过服务中心进行删除或者在独立管理模式下使用相应的restful api进行删除。
运行时扩展
spider支持双向扩展,假设有spider运行时A和B集群,A(客户端)->B(服务器),在程序运行期间,用户可以动态增加A1,也指向B,即A1->B;同时也可以动态增加B1,使得A->B1。这两种动态运行扩展方式均不需要重启spider运行时容器。如下所示:
如果某个cluster下的节点需要反向注册,只需要在cluster节点中增加属性reverseRegister,具体请参考配置文件。
负载均衡
spider原生支持负载均衡,无需任何配置。
在当前版本中,spider仅支持轮训模式的负载均衡。
运行状态检查
spider提供了一系列接口可用于查询当前节点运行状态信息,这些接口以RESTFUL API的方式提供给维护人员和开发人员使用。具体参见RESTFUL API一节。
spider RPC高级特性的更多相关文章
- spider RPC框架的需求来源与特性介绍(一)
spider RPC 特性介绍 spider RPC 性能测试 spider RPC 入门指南 spider RPC 配置文件参考 spider RPC 开发指南 spider RPC 安全性 spi ...
- Dubbo高级特性实践-泛化调用
引言 当后端Java服务用Dubbo协议作为RPC方案的基础,但部分消费方是前端Restful的PHP服务,不能直接调用,于是在中间架设了Router服务提供统一的基于HTTP的后端调用入口. 而Ro ...
- RabbitMQ实战(三)-高级特性
0 相关源码 1 你将学到 如何保证消息百分百投递成功 幂等性 如何避免海量订单生成时消息的重复消费 Confirm确认消息.Return返回消息 自定义消费者 消息的ACK与重回队列 限流 TTL ...
- 消息中间件——RabbitMQ(七)高级特性全在这里!(上)
前言 前面我们介绍了RabbitMQ的安装.各大消息中间件的对比.AMQP核心概念.管控台的使用.快速入门RabbitMQ.本章将介绍RabbitMQ的高级特性.分两篇(上/下)进行介绍. 消息如何保 ...
- Dubbo 高级特性实践-泛化调用
引言 当后端Java服务用Dubbo协议作为RPC方案的基础,但部分消费方是前端Restful的PHP服务,不能直接调用,于是在中间架设了Router服务提供统一的基于HTTP的后端调用入口. 而Ro ...
- Rabbitmq之高级特性——百分百投递消息&消息确认模式&消息返回模式实现
rabbitmq的高级特性: 如何保障消息的百分之百成功? 要满足4个条件:生产方发送出去,消费方接受到消息,发送方接收到消费者的确认信息,完善的消费补偿机制 解决方案,1)消息落库,进行消息状态打标 ...
- HBase高级特性、rowkey设计以及热点问题处理
在阐述HBase高级特性和热点问题处理前,首先回顾一下HBase的特点:分布式.列存储.支持实时读写.存储的数据类型都是字节数组byte[],主要用来处理结构化和半结构化数据,底层数据存储基于hdfs ...
- spider RPC入门指南
本部分将介绍使用spider RPC开发分布式应用的客户端和服务端. spider RPC中间件基于J2SE 8开发,因此需要确保服务器上安装了JDK 8及以上版本,不依赖于任何额外需要独立安装和配置 ...
- ActiveMQ中的Destination高级特性(一)
---------------------------------------------------------------------------------------- Destination ...
随机推荐
- javascript 笔记!
1.通过javascript向文档中输出文本 document是javascript的内置对象,代表浏览器的文档部分 document.write("Hello Javascript&quo ...
- 《如何使用Javascript判断浏览器终端设备》
WEB开发中如何通过Javascript来判断终端为PC.IOS(iphone).Android呢? 可以通过判断浏览器的userAgent,用正则来判断手机是否是ios和Android客户端. va ...
- 微信小程序开发日记——高仿知乎日报(下)
本人对知乎日报是情有独钟,看我的博客和github就知道了,写了几个不同技术类型的知乎日报APP 要做微信小程序首先要对html,css,js有一定的基础,还有对微信小程序的API也要非常熟悉 我将该 ...
- 如何理解MySQL中auto_increment?
1.auto_increment用于主键自动增长.比如从1开始增长,当把第一条数据删除,再插入第二条数据时,主键值为2,不是1.
- SQL SERVER导入数据到ORACLE的方法总结
我们偶尔会有将数据从SQL SERVER导入到ORACLE当中的这种需求,那么这种跨数据库导数有那些方法呢?这些方法又有那些利弊呢? 下面比较肤浅的总结了一些可行的方法. 1:生成SQL脚本然后去OR ...
- Jexus服务器SSL二级证书安装指南
申请获得服务器证书有三张,一张服务器证书,二张中级CA证书.在Android微信中访问Https,如果服务器只有一张CA证书,就无法访问. 获取服务器证书中级CA证书: 为保障服务器证书在客户端的兼容 ...
- 一种简单的CQRS架构设计及其实现
一.为什么要实践领域驱动? 近一年时间我一直在思考一个问题:"如何设计一个松耦合.高伸缩性.易于维护的架构?".之所以有这样的想法是因为我接触的不少项目都是以数据库脚本来实现业务逻 ...
- APP技术演化的路
谈起APP,大家都太熟悉不过了,今天想谈谈这么多年技术演化的路. 早期一些大公司就开始做一些APP了,例如facebook.google等国外的公司就已经开发这个技术路线,那个时候的APP数量很少,基 ...
- 博客已经迁移至 http://barretlee.com/entry/,时而同步分享到这里
博客园是一个十分好的写作平台,不过个人比较喜欢倒腾,所以将文章都做了搬迁. 博客已经迁移至 http://barretlee.com/entry/,感谢一直以来的关注和支持. 博客订阅地址: http ...
- 用Maven部署war包到远程Tomcat服务器
过去我们发布一个Java Web程序通常的做法就是把它打成一个war包,然后用SSH这样的工具把它上传到服务器,并放到相应的目录里,让Tomcat自动去解包,完成部署. 很显然,这样做不够方便,且我们 ...