`
nepxion
  • 浏览: 38244 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

(九) Nepxion-Thunder分布式RPC集成框架 - 治理中心

阅读更多

Nepxion-Thunder(QQ 群 471164539)发布在https://github.com/Nepxion/

 

1. 介绍

治理中心是基于Nepxion Swing Repository组件,Java Desktop版的服务治理系统,计划用基于Ebay Jetstream框架做个Web版。它的主要功能包括

  • 1.1 登录
    需要填入注册中心(Zookeeper)的地址和端口号
    如果是第一次登录,默认用户和密码是admin/admin

  • 1.2 部署概要
    在部署拓扑图里,可以看到注册中心服务器集群(Zookeeper),消息队列中心服务器集群(Kafka,ActiveMQ,Tibco等),缓存中心服务器集群(Redis),日志中心服务器集群(Flume,暂为实现)的IP地址和端口号等接入信息。 可以查看应用服务方和调用方的集群分布情况,上下线动态监控。部署拓扑图支持手工刷新和定时刷新两种
    上边应用集群可以动态刷新,其数据来自注册中心(Zookeeper)的上下线,可以动态刷新;下边的应用服务器信息来自远程配置里的数据,不会动态刷新


     

     

    在服务方列表里,可以看到服务方接入的地址和端口,所采用的通信组件/协议,所属应用和组的信息,以及上线时间(截图较老,未反映),只支持手工刷新


     
    选中”服务方列表“里的一条记录,点击“接口方法列表”,可以看到一个服务方接口暴露的方法列表
    ,只支持手工刷新。这些来自服务方XML的service定义


     

    在调用方列表里,可以看到调用方接入的地址和端口,所采用的通信组件/协议,所属应用和组的信息
    以及上线时间(截图较老,未反映),只支持手工刷新


     
    在监控方列表里,可以看到调用方接入的URL,所采用的通信组件/协议,
    只支持手工刷新


     
  • 1.2 远程配置
    管理中心可以通过控制台控制所有服务提供方和调用方的配置和调优,该配置全局针对所有的通信中间件,具体做法是拷贝示例提供的thunder-ext.properties文本,贴入到如下界面,修改即可。具体参照 
    (十二) Nepxion分布式RPC框架 - 配置调优


     

  • 1.3 调用跟踪
    调用链图是基于TraceId(全局唯一的调用ID)的全程调用路由图,可以对照表格详细信息,查看Request和Response的详细调用参数信息(耗时,接口,方法等),也可以看到某个调用的总耗时。如果某个调用集群的节点出了异常,图形上通过闪烁告警,并可以查看其详细的异常信息,这样方便业务系统定位错误异常的根源位置
    使用之前,必须配置数据源:缓存服务器(Redis Sentinel) - 哨兵模式,缓存服务器(Redis Cluster) - 集群模式,日志服务器(Splunk),日志文件四种模式之一


     
    调用链集群组收缩的界面


     

    调用链集群组展开的界面。从图中,我们可以看到一个椭圆圈代表一个应用集群,里面的一个节点代表一个应用服务器(上面有IP:Port),一条连线代表一个调用(上面有接口:方法),连线上的箭头表示调用方向


     
    从图中,我们可以看到,一旦在某个应用服务器产生异常,该服务器和所在的集群组会红色闪烁,表示告警。同时,跟该产生异常的服务器的调用连线,会流式闪烁,表示该调用会触发异常


     
    下图,是集群里面的几个服务器相互调用的情况


     

    下图,是一个服务器又是服务提供端,又是服务调用端,自己调用自己的情况


     
    下图是比较复杂的调用情形,一般适用在调用补偿机制上


     
    对于复杂的调用链,提供一种异常定位的策略。例如在某个服务器上,可能会同时出现几个异常,那么在界面上会出现一个异常选项卡,切换选项卡,它所显示的异常会在拓扑图上,绿色高亮一条对应的连线


     
    对于调用链图的图形各种特点代表的具体含义,可以点击“显示图示”按钮来查看,参考下图

     
  • 1.4 令牌配置
    令牌配置是来控制调用服务的限流控制,该配置区分不同的通信中间件。它可以针对每个接口进行限流配置,例如下图,UserService令牌时钟周期为 60000毫秒,最大令牌数为3,表示该接口在1分钟内被限制最多调用3次。第4次调用需要在1分钟后才被允许。令牌时钟周期或者最大令牌数为0时,该功能不启用。默认不启动


     
  • 1.5 密钥设置
    密钥配置是来控制调用和服务的密钥匹配控制,该配置区分不同的通信中间件。它可以针对每个接口进行密钥配置,例如下图,当UserService的服务端和调用端的密码匹配,都为123456,远程接口调用才能工作。默认密钥都为空


     
  • 1.6 版本控制
    版本控制是来控制调用和服务的版本匹配,该配置区分不同的通信中间件。它可以针对每个接口进行版本配置,例如下图,当UserService的服务端和调用端的版本匹配,远程接口调用才能工作。默认密钥都为0


     
  • 1.7 重置数据
    重置所有通信中间件的令牌,密钥,版本控制数据,恢复初始版本



  • 1.8 用户管理
    用户有三个角色:“超级管理员”,“管理员”,“用户”
    权限有四个类型:“服务治理”,“远程配置”,“安全控制”,“用户管理”。“超级管理员”和“管理员”可以拥有上述四个全部的权限,“用户”可以拥有除了“用户管理”之外的三个权限
    管理权力:
    “超级管理员”>“管理员”>“用户”,即级别高的角色能创建和修改级别低的角色用户,但无权操作同级别的角色用户
    如果某个用户已经登录,相关管理员修改了该用户的信息,会让该用户自动下线


     

     
  • 1.8 密码管理
    修改当前登录用户的密码。如果同一个用户在若干台机器上登录,修改了密码后,其它机器上的用户会自动下线。密码保存在注册中心,通过SHA256加密


2. 运行

  • 2.1 代码运行
    Thunder/ trunk / nepxion-thunder-console下,运行ConsoleLauncher.java,运行之前,确认resouces/thunder-ext.properties里相关的配置
  • 2.2 命令行运行
    Thunder/ trunk / nepxion-thunder-console / bin / application / nepxion-thunder-console-1.0.0-bin.zip 解压,运行里面的bat,运行之前,确认conf/thunder-ext.properties里相关的配置

3. 运行服务端和调用端的实现

  • SecurityBootstrap.java - 实现对令牌刷新重置的功能,达到限流目的
  • SecurityExecutor.java - 两种方式的鉴权,实现对限流,密钥,版本控制
public interface SecurityExecutor extends ThunderDelegate {
    // 鉴权
    boolean execute(ProtocolRequest request, ProtocolResponse response);

    // 鉴权    
    boolean execute(HttpServletRequest request, HttpServletResponse response) throws IOException;
};

 

  • 大小: 4.1 KB
  • 大小: 133.6 KB
  • 大小: 387.4 KB
  • 大小: 246.6 KB
  • 大小: 406.1 KB
  • 大小: 429 KB
  • 大小: 381.6 KB
  • 大小: 335.2 KB
  • 大小: 345.4 KB
  • 大小: 343.5 KB
  • 大小: 238.8 KB
  • 大小: 292.6 KB
  • 大小: 324.6 KB
  • 大小: 221.1 KB
  • 大小: 230.7 KB
  • 大小: 235 KB
  • 大小: 201 KB
  • 大小: 160.6 KB
  • 大小: 196.6 KB
  • 大小: 163.4 KB
  • 大小: 172.7 KB
  • 大小: 152.1 KB
  • 大小: 200.7 KB
  • 大小: 243.9 KB
  • 大小: 234.2 KB
  • 大小: 120.3 KB
5
2
分享到:
评论
1 楼 luxianping 2016-03-20  
啧啧 撸主好强大   

相关推荐

    基于Java的Thunder分布式RPC框架设计源码

    Nepxion Thunder是一个基于Java的分布式RPC框架,集成了Netty、Hessian、Kafka、ActiveMQ、Tibco、Zookeeper、Redis、Spring Web MVC、Spring Boot和Docker等技术。它支持多协议、多组件和多序列化,为开发者提供了...

    协程式驱动框架Nepxion-Coroutine.zip

    Coroutine是基于Kilim/Promise JDeferred的协程式驱动框架,基于Apache Zookeeper的分布式规则存储和动态规则变更通知。 主要特性: 1. 基于微服务框架理念设计 2. 支持同步/异步调用 3. 支持串行/并行调用 4....

    Thunder::high_voltage: Nepxion Thunder is a distribution RPC framework based on Netty + Hessian + Kafka + ActiveMQ + Tibco + Zookeeper + Redis + Spring Web MVC + Spring Boot + Docker 多协议、多组件、多序列化的分布式RPC调用框架

    Nepxion Thunder是一款基于Netty + Hessian + Kafka + ActiveMQ + Tibco + Zookeeper(Curator Framework) + Redis + FST + Spring + Spring Web MVC + Spring Boot + Docker分布式RPC调用框架。架构思想主要是来自...

    yinheli/docker-thunder-xware:latest 镜像打包下载

    yinheli/docker-thunder-xware:latest 镜像打包下载 群晖 NAS DSM 系统,只要三步使用 Docker 安装迅雷远程下载

    Go-Thunder⚡️一个Go框架用于快速构建强大的graphql服务

    在压缩包"thunder-master"中,包含了Thunder框架的源码和其他相关资源。开发者可以通过查看源码,了解其内部实现原理,也可以直接使用它来快速搭建自己的GraphQL服务。在实际开发过程中,结合Go语言的标准库和第三方...

    基于Kilim、Promise JDeferred、Zookeeper和Spring Boot的协程分布式调用聚合框架设计源码

    该项目是一款基于Kilim、Promise JDeferred、Zookeeper和Spring Boot技术的协程驱动分布式...该框架支持Nepxion Thunder、Dubbo和Motan等RPC调用的集成,并通过规则配置实现调用聚合,适用于构建高性能的分布式系统。

    wine-thunder_0.6-2_all.deb

    wine-thunder_0.6-2_all.deb用于在linux系统下,使用wine直接按装的迅雷软件,实现高速下载,在ubunut,fedora等linux版本中,实现直接点击安装

    开源项目-omeid-thunder.zip

    "thunder-master"这个压缩包子文件名可能代表项目的主分支或主代码库,这在Git等版本控制系统中很常见,"master"通常指的是默认分支,存放着项目的最新稳定版本。解压后,用户可以访问到项目的源代码、文档、构建...

    Go-Thunder是BoltDB的交互式Shell

    Go-Thunder是一个基于BoltDB数据库的交互式Shell工具,主要设计用于方便地与BoltDB数据库进行交互,提供了一种命令行界面来操作和管理数据。BoltDB本身是Go语言实现的一个轻量级、文件存储的键值对数据库,它以其...

    A10-Thunder_1030S方案白皮书.pdf

    A10-Thunder_1030S方案白皮书.pdf

    home-work-thunder

    【压缩包子文件的文件名称列表】"thunder-oms" 这个文件名可能代表“Thunder Operation Management System”(迅雷运营管理系统),或者是一种特定的模块或服务。它可能包含了项目的源代码、配置文件、测试脚本等,...

    系统工具-文件下载-thunder_3.4.0.4338.zip

    标题中的“系统工具-文件下载-thunder_3.4.0.4338.zip”表明这是一款系统工具,具体来说是与文件下载相关的。这里的“thunder”很可能指的是迅雷,一个在中国广为人知的下载管理软件。版本号“3.4.0.4338”指示这是...

    A10-Thunder_6430S方案白皮书.pdf

    A10-Thunder_6430S方案白皮书.pdf

    开源项目-muesli-thunder.zip

    在使用Thunder时,用户应首先下载并解压“muesli-thunder.zip”文件,得到“thunder-master”目录。然后按照项目提供的安装指南编译并安装Thunder,最后通过命令行启动Thunder,开始探索和操作BoltDB数据库。对于...

    A10-Thunder_930方案白皮书.pdf

    A10 Thunder 930方案白皮书 A10 Thunder 930是A10 Networks公司推出的统一应用服务网关(UASG),采用64位系统、1U硬件,提供了极具性价比的解决方案。该设备基于A10极具扩展性的灵活高级核心操作系统(ACOS)架构...

    docker-thunder-xware:Docker雷鸣般的倒塌

    docker pull yinheli/docker-thunder-xware:latest 创建一个下载目录. 用于挂载卷 mkdir data 运行 docker run -d \ --name=xware \ --net=host \ -v $(pwd)/data:/app/TDDOWNLOAD \ yinheli/docker-thunder-...

    3D-Thunder-Lightning.zip

    3D-Thunder-Lightning.zip,受航母指令启发的开源未来动作飞行模拟器游戏,3D建模使用专门的软件来创建物理对象的数字模型。它是3D计算机图形的一个方面,用于视频游戏,3D打印和VR,以及其他应用程序。

    A10-Thunder-5430S方案白皮书

    《A10 Thunder 5430S方案白皮书》是针对A10 Networks公司推出的Thunder 5430S高性能负载均衡解决方案的一份详细技术文档。在IT行业中,负载均衡是一项至关重要的技术,它确保了网络服务的高可用性和性能优化。A10 ...

    系统工具-文件下载-Thunderbird91.0b4.zip

    Thunderbird是一款由Mozilla基金会开发的开源邮件客户端,它集成了电子邮件、新闻组、RSS阅读器和日历功能,为用户提供了一站式的通信解决方案。Thunderbird91.0b4是该软件的一个版本,其中“91.0b4”表示的是版本号...

    Android代码-Thunder

    Thunder Android OkHttp util package let response callback at MainThread(UIThread), also it‘s lifecycle safety. ⚠️ Thunder‘s code is based on SugarTask(Very nice code

Global site tag (gtag.js) - Google Analytics