RedKale 介绍

      RedKale 是基于Java 8的微服务框架, 包含HTTP、WebSocket、TCP/UDP、数据序列化、数据缓存、依赖注入等功能。 其功能相当于 Tomcat + Mina + Struts + Spring + Hibernate + RMI + Json + Memcached 的综合体。
RedKale 有如下主要特点:
      1、大量使用Java 8新特性(接口默认值、Stream、Lambda、JDk8内置的ASM包)
      2、HTTP层内置json功能与限时缓存功能
      3、TCP层使用NIO.2,TCP与UDP提供统一接口
      4、分布式与集中式可以无缝切换
      5、数据缓存自动同步与简洁的数据层操作接口
      6、功能强大 但体积不到1.5M,且不依赖任何第三方包

亮点一. 轻量级HTTP

      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缓存机制。

亮点二. 分布式WebSocket

      RedKale 的WebSocket接口不同于JSR 340(Servlet 3.1), 除了提供基本的WebSocket功能, 还提供分布式与集中式部署, 当部署多个WebSocket进程时,通过配置文件可以实现WebSocket之间连接信息的数据同步。

亮点三. SNCP协议

      SNCP(Service Node Communicate Protocol)是RedKale独有的协议, 类似RMI与WebService的功能结合,主要用于进程间的数据传输。使用者通过配置文件可以轻易的将Service由本地模式变成远程模式。远程模式的Service使用SNCP协议与其他进程的Service通信。使用者无需对远程通信接口使用类似mina的第三方包自行开发。

亮点四. DataSource

      RedKale提供DataSource类对数据层进行操作,其功能类似JPA+Memcached。与JPA相比各有优缺点。
优点:
      1、Datasource中的内存缓存会自动与其他同服务的进程之间同步。
      2、简易的查询接口,即时复杂的过滤查询都无需写SQL语句。
      3、可以DataSource与业务逻辑层分开, 独立成类似Memcached的内存数据源。
      4、读写分离。动态切换数据库连接配置。
缺点:
      1、不提供复杂的关联表操作与查询。