Nepxion-Thunder(QQ 群 471164539)发布在https://github.com/Nepxion/
基于Google Guava EventBus,实现事件驱动发布框架内部事件,解除耦合;发布外部事件,进行重试补偿,异常通知(邮件或短信通知)
1)eventbus - 基于Google Guava的进程内发布/订阅机制,支持同步和异步事件发布
2)mobile - 基于EventBus的异常信息的短信通知,未实现
3)protocol - 基于EventBus的异常信息的发布/拦截,是其它事件通知模块的基础
4)registry - 基于EventBus的上下线通知,通过Zookeeper的Watcher事件来发布
5)smtp - 基于EventBus的Smtp协议的邮件通知,支持普通邮件和SSL认证邮件
1. 系统通知
邮件通知,一旦框架中有异常抛出,立即通过给定的邮件予以通知,
短信通知,未实现
2. 业务层面的异常事件拦截
ProtocolEventInterceptor可以拦截和通知如下的异常:
- 业务系统中抛出的任何异常
- 业务系统定义的超时异常(异步和同步,但不支持广播)
- 框架的中间价宕机产生异常,目前只支持Netty
- 框架服务治理产生异常,例如限流异常
业务系统只需要继承ProtocolEventInterceptor,实现onEvent方法,就可以捕获全部异常抛出
public class ServiceEventInterceptor extends ProtocolEventInterceptor { @Override protected void onEvent(ProtocolEvent event) { ApplicationType applicationType = event.getApplicationType(); ActionType actionType = event.getActionType(); ProtocolType protocolType = event.getProtocolType(); ProtocolMessage protocolMessage = event.getProtocolMessage(); System.out.println("--------------------收到异步事件通知--------------------"); System.out.println("Application type=" + applicationType); System.out.println("Action type=" + actionType); System.out.println("Protocol type=" + protocolType); if (actionType != ActionType.SYSTEM) { System.out.println("Trace id=" + protocolMessage.getTraceId()); System.out.println("Interface=" + protocolMessage.getInterface()); System.out.println("Method=" + protocolMessage.getMethod()); System.out.println("Parameter types=" + Arrays.asList(protocolMessage.getParameterTypes())); System.out.println("Parameters=" + Arrays.asList(protocolMessage.getParameters())); } else { System.out.println("From url=" + protocolMessage.getFromUrl()); System.out.println("To url=" + protocolMessage.getToUrl()); } System.out.println("Exception=" + ExceptionUtil.toExceptionString(protocolMessage.getException())); System.out.println("-------------------------------------------------------"); } }
框架接入比较简单,见下面的示例
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:thunder="http://www.nepxion.com/schema/thunder" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd http://www.nepxion.com/schema/thunder http://www.nepxion.com/schema/thunder/thunder-1.0.xsd"> ....... <!-- 异常的EventBus事件发布拦截 --> <bean id="eventInterceptor" class="com.nepxion.thunder.service.ServiceEventInterceptor"/> </beans>
相关推荐
Nepxion Thunder是一个基于Java的分布式RPC框架,集成了Netty、Hessian、Kafka、ActiveMQ、Tibco、Zookeeper、Redis、Spring Web MVC、Spring Boot和Docker等技术。它支持多协议、多组件和多序列化,为开发者提供了...
该项目是一款基于Kilim、Promise JDeferred、Zookeeper和Spring Boot技术的协程驱动分布式...该框架支持Nepxion Thunder、Dubbo和Motan等RPC调用的集成,并通过规则配置实现调用聚合,适用于构建高性能的分布式系统。
企业oa管理系统,系统包含两种角色:管理员、用户,主要功能如下。 管理员: 1. 个人中心:管理管理员个人信息和进行相关操作。 2. 用户管理:管理用户的基本信息和权限设置。 3. 公告信息管理:发布和管理企业内部公告信息。 4. 客户关系管理:管理客户信息、跟进记录和销售机会等。 5. 通讯录管理:管理企业内部员工通讯录信息。 6. 日程安排管理:管理个人和团队的日程安排和会议安排。 7. 车辆信息管理:管理企业车辆的基本信息和使用情况。 8. 文件信息管理:管理企业内部文件的上传、下载和共享。 9. 工作日志管理:记录和管理员工的工作日志和任务完成情况。 10. 上班考勤管理:管理员工的上班打卡和考勤记录。 11. 工资信息管理:管理员工的工资信息和薪资发放。 用户: 1. 个人中心:管理个人信息和进行相关操作。 2. 公告信息管理:查看和阅读企业内部公告信息。 3. 客户关系管理:查看和管理与自己相关的客户信息和销售机会。 4. 通讯录管理:查找和查看企业内部员工通讯录信息。 5. 日程安排管理:查看和管理个人的日程安排和会议安排。 6. 车辆信息管理:查看和申请企业车辆的使
AutoX.js 是一个基于 JavaScript 的自动化工具,主要用于安卓设备的自动化操作。它是 Auto.js 的一个分支,提供了更多的功能和更高的兼容性。以下是关于 AutoX.js 的一些基本介绍和使用方法。
1.开篇:用正确的方式学习 TypeScript 2.工欲善其事:打造最舒适的 TypeScript 开发环境 3.进入类型的世界:理解原始类型与对象类型 4.掌握字面量类型与枚举,让你的类型再精确一些 5.函数与 Class 中的类型:详解函数重载与面向对象 6.探秘内置类型:any、unknown、never 与类型断言 7.类型编程好帮手:TypeScript 类型工具(上) 8.类型编程好帮手:TypeScript 类型工具(下) 9.类型编程基石:TypeScript 中无处不在的泛型 10.结构化类型系统:类型兼容性判断的幕后 11.类型系统层级:从 Top Type 到 Bottom Type 12.类型里的逻辑运算:条件类型与 infer 13.内置工具类型基础:别再妖魔化工具类型了! 14.反方向类型推导:用好上下文相关类型 15.数类型:协变与逆变的比较 16.了解类型编程与类型体操的意义,找到平衡点 17.内置工具类型进阶:类型编程进阶 18.基础类型新成员:模板字符串类型入门 19.类型编程新范式:模板字符串工具类型进阶 20.工程层面的类型能力:类型声明、类型
本文档是3GPP组织发布的关于5G系统中统一数据仓库服务(UDR)的技术规范,旨在为第三阶段(Relase 19)提供协议和数据模型的详细定义。该规范主要针对Nudr接口,规定了通过此接口NF服务消费 限时福利!送硅基流动100w deepseek token,支持api调用:https://cloud.siliconflow.cn/i/VkH0G5VX
西门子G120 Vf和矢量控制的区别及相关参数设置
【宝城期货-2025研报】短期降息预期落空,国债期货震荡筑底.pdf
基于yolov5识别算法实现的DNF自动脚本源码.zip
HR人力资源管理系统PersonManage
【宝城期货-2025研报】有色日报:有色午后走强,铜增仓上行.pdf
商城程序电脑端手机端微信端三合一板
个人理财系统,系统包含两种角色:管理员、用户,系统分为前台和后台两大模块,主要功能如下。 【管理员】: 个人中心:管理员可以在个人中心查看和修改自己的个人信息。 用户管理:管理员可以对用户进行管理,包括添加新用户、编辑用户信息、删除用户以及查看用户列表。 账单类型管理:管理员可以管理账单类型,包括添加新的账单类型、编辑账单类型信息、删除账单类型以及查看账单类型列表。 【用户】: 个人中心:用户可以在个人中心查看和修改自己的个人信息。 收入账单管理:用户可以添加和管理收入账单,包括记录收入的金额、时间、来源等信息,查看、编辑和删除已记录的收入账单。 支出账单管理:用户可以添加和管理支出账单,包括记录支出的金额、时间、用途等信息,查看、编辑和删除已记录的支出账单。 理财计划管理:用户可以制定和管理理财计划,包括设定目标、计划时间、计划金额等信息,查看、编辑和删除已设定的理财计划。 统计分析管理:用户可以查看自己的收入和支出情况的统计分析结果。 备忘录管理:用户可以添加、编辑和删除备忘录。 二、项目技术 编程语言:Java 数据库:MySQL 项目管理工具:Maven 前端技术Vue
面试题关注有更多资源,私信免费的
【宝城期货-2025研报】宝城期货橡胶早报.pdf
以面向对象思想编写单片机程序
## 介绍 平均风速是描述一个地区风力强弱的重要气象指标,是指空间某一点,在给定的时段内各次观测的风速之和除以观测次数,其广泛应用于气候研究、农业、风能开发等领域 本分享数据包含中国各区县的平均风速数据,涵盖了1951年至2024年之间共21w+条数据,数据按年度进行整理 ## 一、中国各区县平均风速数据的介绍 数据年份:1951-2024年 数据范围:区县 数据格式:面板数据 样本数量:21万+ ## 二、数据指标
UPX_4.2.2(压缩exe文件).rar
基于Python Tkinter的智能书库管理系统代码
Tutorial Design of Smart Sensors-ISSCC2010.rar