ITKeyword - 技术文章推荐分享

首页 > (十三) Thunder分布式RPC框架

(十三) Thunder分布式RPC框架

相关推荐:(一) Thunder分布式RPC框架

Thunder(QQ 群 471164539)发布在淘宝代码基地 http://code.taobao.org/p/Thunder/1. 概要1.1 Thunder是基于Netty + Hessian + Kafka + ActiveMQ + Tibco + Zookeeper(Curator Framework) + Redis + FST + Spring + Spring Web MVC分布式RPC调用框

Thunder(QQ 群 471164539)发布在淘宝代码基地 http://code.taobao.org/p/Thunder/ 基于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()));

} els

相关推荐:(九) Thunder分布式RPC框架

Thunder(QQ 群 471164539)发布在淘宝代码基地 http://code.taobao.org/p/Thunder/1. 介绍治理中心是基于Nepxion Swing Repository组件,Java Desktop版的服务治理系统,计划用基于Ebay Jetstream框架做个Web版。它的主要功能包括1.1 登录需要填入

e {

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>

相关推荐:(十五) Thunder分布式RPC框架

Thunder(QQ 群 471164539)发布在淘宝代码基地 http://code.taobao.org/p/Thunder/框架支持两种方式的序列化,Java对象和字节数组的序列化和反序列化,Java对象和Json字符串的转换1)binary - Java实体类和字节数组的序列化/反序列化2)compression -

Thunder(QQ 群 471164539)发布在淘宝代码基地 http://code.taobao.org/p/Thunder/?基于Google Guava EventBus,实现事件驱动发布框架内部事件,解除耦合;发布外部事件,进行重试补偿,异常...

------分隔线----------------------------