Giter Club home page Giter Club logo

xultimate-remoting's Introduction

xultimate-remoting

  • 起初只是提供Java中一些分布式远程调用的ShowCase,都是基于Spring来构建的,这样便于需要的时候提取并修改。
  • 基础的分布式调用包括RMI、HttpInvoker、Hessian、Burlap;异步调用提供ActiveMQ;Web服务则包括了REST、CXF。
  • 后来因为所参与的项目使用了RabbitMQ,而原有的封装经常会出现问题(过慢、CPU负载过高)导致应用崩溃,因此我重新封装了一套。客户端通过RabbitMQClientTemplate发送可序列化对象,序列化协议使用原有的Hessian协议,服务端搬照Tomcat的JIoEndpoint写法并采用信号量进行并发控制,中间通过JobService进行任务分配,最终通过定义不同的Job<XXXDto>完成具体任务。整个配置通过Spring定义。最终经过简单测试,发现性能有提升400倍左右。然后才开始真正关注和思考分布式调用。
  • 最终决定公共服务采用Spring MVC开发REST + JSON,同步调用采用Dubbo,异步调用采用MetaQ。

xultimate-remoting-service

  • 包括了公共Service和Service实现类。

xultimate-remoting-rmi

  • 提供了基于RMI协议的同步调用演示。

xultimate-remoting-httpinvoker

  • 提供了基于Spring HTTP invoker的同步调用演示。

xultimate-remoting-hessian

  • 提供了基于Hessian协议的同步调用演示。

xultimate-remoting-burlap

  • 提供了基于Burlap协议的同步调用演示。

xultimate-remoting-cxf

  • 提供了基于Apache CXF Web服务框架的调用演示。

xultimate-remoting-rest

  • 提供了基于Spring MVC实现的REST风格,通过FastJSON实现JSON处理的调用演示。

xultimate-remoting-jms

  • 提供了基于Apache ActiveMQ消息中间件的异步调用演示。

xultimate-remoting-metaq

  • 提供了基于MetaQ队列模型消息中间件的异步调用演示。
  • 重写MetaqTemplate,功能是直接Copy过来的,只是觉得调用起来如何能更加方便。
  • 提供MessageProducerCallback和MessageProducerWithMessageCallback,用于回调处理。
  • 提供MetaqTemplateUtils,用于执行消息回调。
  • 提供RpcKryoObjectConverter、JavaObjectConverter,通过Kryo、Java默认的序列化/解序列化方式;同时具备压缩功能,可配置为GZIP、Snappy。
  • 提供RpcProtobufObjectConverter、RpcProtostuffObjectConverter,通过Protobuf、Protostuff的序列化/解序列化方式;同时具备压缩功能,可配置为GZIP、Snappy。
  • 提供XMemcachedMessageIdCache,消息ID实现,内部封装XMemcachedClient。

xultimate-remoting-dubbo

  • 提供了基于Dubbo分布式服务框架的同步调用演示。
  • 提供ObjectInput、ObjectOutput,内部封装AbstractObjectInput、AbstractObjectOutput,提供真正解序列化。
  • 提供JavaSerialization,完成Java序列化/解序列化功能;同时具备压缩/解压缩功能,默认配置为Snappy;缓冲大小默认256;都可通过继承覆盖。
  • 提供KryoSerialization,完成Kryo序列化/解序列化功能;同时具备压缩/解压缩功能,默认配置为Snappy;缓冲大小默认256;都可通过继承覆盖。
  • 提供ProtobufSerialization,完成Protobuf序列化/解序列化功能;同时具备压缩/解压缩功能,默认配置为Snappy;缓冲大小默认256;都可通过继承覆盖。
  • 提供ProtostuffSerialization,完成Protostuff序列化/解序列化功能;同时具备压缩/解压缩功能,默认配置为Snappy;缓冲大小默认256;都可通过继承覆盖。
  • 提供CuratorFrameworkFactoryBean,用于通过Spring创建CuratorFramework实例。
  • 提供SetACLCommandExecutor,用于执行setACL指令。
  • 重写Main,强制使用dubbo.properties并声明dubbo.spring.config属性指定Spring配置文件。

xultimate-remoting's People

Contributors

daniellitoc avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.