我的作品

0x00. Publications

InfoQ – 谈谈后端业务系统的微服务化改造http://www.infoq.com/cn/articles/the-back-end-business-systems-service-transformation

InfoQ聊聊架构 – 体系化认识RPChttp://www.infoq.com/cn/articles/get-to-know-rpc

知乎专栏 – 深入解析Spark中的RPChttps://zhuanlan.zhihu.com/p/28893155

 

0x01. 验证框架Fluent-validator

Fluent-validatorhttps://github.com/neoremind/fluent-validator)是一个使用流式风格(Fluent Interface)的Java验证框架,注解式的调用应用灵活,结合JSR303规范最佳实现Hibernate Validator,可以做到验证逻辑对业务代码无侵入,同时集合IoC容器管理验证器,对于验证功能的开发完全符合SOLID原则。

 

0x02. 分布式服务化框架Navi

Navihttps://github.com/neoremind/navi)is a distributed service framework that provides cluster management and high performance RPC. With Navi, you can easily build distributed applications with minimal effort to create a highly scalable architecture capable of handling remote procedure call and service registration and discovery.

Implemented in Java and Spring framework, Navi wraps ZooKeeper and uses Protostuff/Protobuf for transport to make it easy to build a cluster aware application. Navi allows you to focus your efforts on your application logic, so programming experience is very friendly with its simple XML or annotation configuration.

 

0x03. 基于MySQL binlog的增量同步编程框架

Fountain(https://github.com/neoremind/fountain) is a Java based toolkit for syncing MySQL binlog and provide an easy API to process/publish events.

 

0x04. 动态代理框架Dynamic-proxy

Dynamic proxy (https://github.com/neoremind/dynamic-proxy) is a useful library for Java developers to generate proxy object. This library leverages a wide range of byte-code generation methods, including:

  • – ASM
  • – CGLIB
  • – Javassist
  • – JDK Dynamic Proxy
  • – ByteBuddy

 

0x05. 灵活/可扩展/高性能的Bean mapping类库 — Easy-mapper

Easy-mapperhttps://github.com/neoremind/easy-mapper) is a simple, light-weighted, high performance java bean mapping framework. By leveraging Javassist, easy mapper can generate mapping byte-code at runtime and load them into JVM so that classes can be reused for later mapping invocations.

 

0x06. Protobuf-RPC

Pbrpchttps://github.com/neoremind/navi-pbrpc) provides a rpc solution for using protocol buffer. This library enables client and server to communicate in a peer-to-peer and full duplexing way.

The server-side is built upon netty which supports asynchronous and non-blocking io functionality, while the client-side provides a wide variety of options to communicate with server, which includes short live connection, keep-alive tcp connection, high availability and failover strategy.

 

0x07. Kraps-RPC

Kraps-rpc (https://github.com/neoremind/kraps-rpc) is a RPC framework split from Spark, you can regard it as spark-rpc with the word spark reversed.

This module is mainly for studying how RPC works in Spark, as people knows that Spark consists many distributed components, such as driver, master, executor, block manager, etc, and they communicate with each other through RPC. In Spark project the functionality is sealed in Spark-core module. Kraps-rpc separates the core RCP part from it, not including security and streaming download feature.

一篇配合的姊妹篇文章请参考知乎专栏https://zhuanlan.zhihu.com/p/28893155

提交PR [SPARK-21701]

 

0x08. SSHXCUTE

SSHXCUTE is a framework. It was designed to let engineers to use Java call to execute command/script on remote Linux/UNIX system through SSH connection way, which make software testing or system deployment easier and specifically to make it easier to automate software testing and system environment deployment.

 

0x09. IBM DeveloperWorks发表文章

面向 Java开发与测试人员的远程执行Linux/UNIX系统上任务的框架

利用 Jython 与 Ajax 技术构建一个简单的 Web 应用程序

基于用户输入的 Rational Functional Tester 测试用例自动选择和执行工具