redkale (中文名: 红菜苔,湖北武汉的一种特产蔬菜) 是基于java 8全新的微服务框架, 包含http、websocket、tcp/udp、数据序列化、数据缓存、依赖注入等功能。 本框架致力于简化集中式和微服务架构的开发,在增强开发敏捷性的同时保持高性能。
redkale 有如下主要特点:
1、大量使用java 8新特性(接口默认值、stream、lambda、jdk8内置的asm等)
2、提供http服务,同时内置json功能与限时缓存功能
3、tcp层完全使用nio.2,并统一tcp与udp的接口
4、提供分布式与集中式部署的无缝切换
5、提供类似jpa功能,并包含数据缓存自动同步与简洁的数据层操作接口
6、可以动态修改已依赖注入的资源
convert包是redkale内一个独立的组件, 用于数据的序列化与反序列化。包分三块:基本包、json包、bson(binary stream object notation)包。基本包可以用于扩展其他序列化格式(如: xml),其json性能是其他任何json框架不能媲美的,对于非常规的pojo类也提供了方便的自定义接口。bson用于数据的二进制序列化与反序列化,支持很复杂的泛型数据,是sncp协议的基础。
redkale 的http是基于异步nio.2实现的,所提供的httpresponse的输出接口也是异步的,因此并不遵循jsr 340规范(servlet 3.1)且也没有实现jsp规范。 http只提供四个对象:httpcontext、httprequest、httpresponse、httpservlet。 传统session则由数据层实现。redkale提倡http json接口(无论网站、pc客户端、app移动端、第三方接口都可使用统一接口), 因此http层内置了json序列化与反序列化接口,同时内置http缓存机制。
redkale 的接口不同于jsr 340(servlet 3.1), 除了提供基本的websocket功能, 还提供分布式与集中式部署, 当部署多个websocket进程时,通过配置文件可以实现websocket之间连接信息的数据同步。
sncp(service node communicate protocol)是redkale独有的协议, 类似rmi与webservice的功能结合,主要用于进程间的数据传输。使用者通过配置文件可以轻易的将service由变成。使用sncp协议与其他进程的service通信。使用者无需对远程通信接口使用类似mina的第三方包自行开发。sncp是redkale的核心功能,其微服务架构都是基于和。
redkale提供datasource类对数据层进行操作,其功能类似jpa memcached。最大程度的简化数据层的操作,免去sql/jpql语句的编写。同时提供过滤查询与javabean的结合、读写分离、数据库热切换、本地/远程部署、进程间缓存自动同步等功能。
2 楼 2016-02-16 14:54
1 楼 2016-01-27 21:01