(9) Nepxion分布式RPC框架 - 管理中心
(九) Nepxion分布式RPC框架 - 管理中心
Nepxion Thuder (QQ 1394997)发布在淘宝代码基地 http://code.taobao.org/p/Thunder/
1. 介绍
管理中心是基于Nepxion Swing Repository组件,Java Desktop版的服务治理系统,计划用基于Ebay Jetstream框架做个Web版。它的主要功能包括
-
1.1 部署概要
在服务方列表里,可以看到服务方接入的地址和端口,所采用的通信组件/协议,所属应用和组的信息。本想做成服务一上下线,实时侦听刷新列表的功能,但是可能会造成频繁读取注册中心的结果,所以改用手工刷新。例如从下图可以看出,UserService在ActiveMQ上有3个服务接入
选中”服务方列表“里的一条记录,点击“接口方法列表”,可以看到一个服务方接口暴露的方法列表。这些来自服务方XML的service定义。例如从下图可以看出,UserService提供三个调用方法
在调用方列表里,可以看到调用方接入的地址和端口,所采用的通信组件/协议,所属应用和组的信息。本想做成服务一上下线,实时侦听刷新列表的功能,但是可能会造成频繁读取注册中心的结果,所以改用手工刷新。例如从下图可以看出,UserService在ActiveMQ上有2个调用接入
在监控方列表里,可以看到调用方接入的URL,所采用的通信组件/协议。本想做成监控端一上下线,实时侦听刷新列表的功能,但是可能会造成频繁读取注册中心的结果,所以改用手工刷新
- 1.2 远程配置
管理中心可以通过控制台控制所有服务提供方和调用方的配置和调优,该配置全局针对所有的通信中间件,具体做法是拷贝示例提供的thunder-ext.properties文本,贴入到如下界面,修改即可。具体参照 Nepxion分布式RPC框架 - 配置调优 http://nepxion.iteye.com/blog/2260067
- 1.3 令牌配置
令 牌配置是来控制调用服务的限流控制,该配置区分不同的通信中间件。它可以针对每个接口进行限流配置,例如下图,UserService令牌时钟周期为 60000毫秒,最大令牌数为3,表示该接口在1分钟内被限制最多调用3次。第4次调用需要在1分钟后才被允许。令牌时钟周期或者最大令牌数为0,该功能 不启用。默认不启动
-
1.4 密钥设置
密钥配置是来控制调用和服务的密钥匹配控制,该配置区分不同的通信中间件。它可以针对每个接口进行密钥配置,例如下图,当UserService的服务端和调用端的密码匹配,都为123456,远程接口调用才能工作。默认密钥都为空
-
1.5 版本控制
版本控制是来控制调用和服务的版本匹配,该配置区分不同的通信中间件。它可以针对每个接口进行版本配置,例如下图,当UserService的服务端和调用端的版本匹配,远程接口调用才能工作。默认密钥都为0
- 1.6 重置数据
重置所有通信中间件的令牌,密钥,版本控制数据,恢复初始版本
2. 运行
-
2.1 代码运行
Thunder/ trunk / nepxion-thunder-console下,运行ConsoleFrame.java,运行之前在VM arguments,配置注册中心地址
- 2.2 命令行运行
Thunder/ trunk / nepxion-thunder-console / bin / application / nepxion-thunder-console-1.0.0-bin.zip 解压,运行里面的bat,运行之前配置注册中心地址,如下:
@set registryAddress=localhost:2181
3. 运行服务端和调用端的实现
- SecurityBootstrap.java - 实现对令牌刷新重置的功能,达到限流目的
- SecurityExecutor.java - 两种方式的鉴权,实现对限流,密钥,版本控制
public interface SecurityExecutor extends ThunderDelegate { // 鉴权 boolean process(ProtocolRequest request, ProtocolResponse response); // 鉴权 boolean process(HttpServletRequest request, HttpServletResponse response) throws IOException; }