Redkale 正在参加 2021 年度 OSC 中国开源项目评选,请投票支持!
Redkale 在 2021 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
2021 年度 OSC 中国开源项目评选 正在火热进行中,快来投票支持你喜欢的开源项目!
2021 年度 OSC 中国开源项目评选 >>> 中场回顾
Redkale 获得 2021 年度 OSC 中国开源项目评选「最佳人气项目」 !
授权协议 GPL
开发语言 Java
操作系统 跨平台
软件类型 开源软件
所属分类 程序开发微服务框架
开源组织
地区 国产
投 递 者 红菜苔
适用人群 未知
收录时间 2016-01-27

软件简介

Redkale 介绍

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、可以动态修改已依赖注入的资源
           

设计理念

        作为一个全新的微服务框架,不仅是使用了Java8的新语法,更多是设计上与主流框架有所不同。Redkale是按组件形式设计的,而非以容器为主,几乎每个子包都是能提供独立功能的组件。如Tomcat是按容器设计的,所有web资源/配置由Tomcat控制,开发者很能难控制到Tomcat内部,而Redkale的HTTP服务只是个组件,开发者既可以自己启动和配置HttpServer,也可以把Redkale当成容器通过Redkale进程来初始化服务。Spring的Ioc容器也是如此,Redkale提供的依赖注入仅通过ResouceFactory一个类来控制,非常轻量,而且也可以动态更改已注入的资源。Spring提倡控制反转思想,偏偏自身的容器却让开发者很难控制。Redkale是一个既能以组件形式也能以容器形式存在的框架。从整体上看,Redkale的架构分两层:接口和默认实现。若开发者不想使用Redkale内置的HTTP服务而使用符合JavaEE规范的HttpServlet, 可以采用自定义协议基于JSR 340(Servlet 3.1)来实现自己的HTTP服务;若开发者想使用Hibernate作为数据库操作,可以写一个自己的DataSource实现类;JSON的序列化和反序列化也可以使用第三方的实现。这其实包含了控制反转的思想,让框架里的零件可以让开发者控制。
        与主流框架比,功能上Redkale显得很简单,这也是Redkale的一个特点并非不足,从一个良好的设计习惯或架构上来看,有些常用功能是不需要提供的,比如Redkale的HTTP服务不支持HTTPS和JSP,HTTPS比HTTP多了一层加密解密,这种密集的数字计算不是Java的专长,同时一个稍好的提供HTTP服务的架构不会将Java动态服务器放在最前端,通常前面会放nginx或apache,除了负载均衡还能静动分离,既然Java服务器前面有C写的服务器,那么HTTPS的加解密就应该交给前面的服务器处理。Redkale再提供HTTPS服务就显得鸡肋。JSP其实算是一个落后的技术,现在是一个多样化终端的时代,终端不只局限于桌面程序和PC浏览器,还有原生App、混合式App、微信端、移动H5、提供第三方接口等各种形式的终端,这些都不是JSP能兼顾的,而HTTP+JSON作为通用性接口可以避免重复开发,模版引擎的功能加上各种强大的JS框架足以取代JSP(如果初级程序员还花大量时间去学习基于JSP的Struts或Spring MVC框架,就有点跟不上时代了)。Redkale在功能上做了筛选,不会只因为迎合主流而提供,而是以良好的设计思想为指导。这也是Redkale很重要的一个思想。

亮点一. 序列化与反序列化

        Convert包是RedKale内一个独立的组件, 用于数据的序列化与反序列化。包分三块:基本包、JSON包、BSON(Binary Stream Object Notation)包。基本包可以用于扩展其他序列化格式(如: XML),其JSON性能是其他任何JSON框架不能媲美的,对于非常规的POJO类也提供了方便的自定义接口。BSON用于数据的二进制序列化与反序列 化,支持很复杂的泛型数据,是SNCP协议的基础。

亮点二. 轻量级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缓存机制。
        Redkale 的WebSocket服务接口不同于JSR 340(Servlet 3.1), 除了提供基本的WebSocket功能, 还提供分布式与集中式部署, 当部署多个WebSocket进程时,通过配置文件可以实现WebSocket之间连接信息的数据同步。

亮点三. SNCP协议

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

亮点四. DataSource

        Redkale提供DataSource类对数据层进行操作,其功能类似JPA+Memcached。最 大程度的简化数据层的操作,免去SQL/JPQL语句的编写。同时提供过滤查询与JavaBean的结合、读写分离、数据库热切换、本地/远程部署、进程 间缓存自动同步等功能。

 

详情请访问:    https://redkale.org

 

展开阅读全文

代码

的 Gitee 指数为
超过 的项目

评论

点击加入讨论🔥(19) 发布并加入讨论🔥
发表了资讯
2022/07/07 07:44

Redkale 2.7.0 发布,Java 分布式微服务框架

Redkale 2.7.0 发布。 Redkale, 一个Java分布式微服务框架,1.6M的jar可以代替传统几十M的第三方。包含TCP/UDP、HTTP、RPC、依赖注入、序列化与反序列化、数据库操作、WebSocket等功能。 一方面模块高度整合,极大的简化业务开发代码,一方面暴露大量底层,方便二次框架开发。 Java并不臃肿, 臃肿的是你自己的设计思维! 本次版本更新内容: 1、【新增】增加ConvertCoder功能,可以自定义字段的序列化 2、【新增】增加JsonMul...

5
5
发表了资讯
2021/12/01 10:06

Redkale 2.6.0 发布,Java 分布式微服务框架

Redkale 2.6.0 发布。 Redkale, 一个Java分布式微服务框架,1.6M的jar可以代替传统几十M的第三方。包含TCP/UDP、HTTP、RPC、依赖注入、序列化与反序列化、数据库操作、WebSocket等功能。 一方面模块高度整合,极大的简化业务开发代码,一方面暴露大量底层,方便二次框架开发。 Java并不臃肿, 臃肿的是你自己的设计思维! 本次版本更新内容: 1、【新增】FilterNode增加filter方法 2、【新增】RestOnMessage.name的值支持*,表...

4
7
发表了资讯
2021/10/19 11:11

Redkale 2.5.0 发布,Java 分布式微服务框架

Redkale 2.5.0 发布。 Redkale, 一个Java分布式微服务框架,1.4M的jar可以代替传统几十M的第三方。包含TCP/UDP、HTTP、RPC、依赖注入、序列化与反序列化、数据库操作、WebSocket等功能。 一方面模块高度整合,极大的简化业务开发代码,一方面暴露大量底层,方便二次框架开发。 Java并不臃肿, 臃肿的是你自己的设计思维! 本次版本更新内容: 1、【新增】支持Graalvm的native-image原生打包 2、【新增】apidoc生成OpenAPI 3.0...

5
5
发表了资讯
2021/06/06 20:27

Redkale 2.4.0 发布,Java 分布式微服务框架

Redkale 2.4.0 发布。 Redkale, 一个Java分布式微服务框架,1.4M的jar可以代替传统几十M的第三方。包含TCP/UDP、HTTP、RPC、依赖注入、序列化与反序列化、数据库操作、WebSocket等功能。 一方面模块高度整合,极大的简化业务开发代码,一方面暴露大量底层,方便二次框架开发。 Java并不臃肿, 臃肿的是你自己的设计思维! 本次版本更新内容: 1、【新增】增加SearchSource模块功能 2、【新增】增加HttpMessageLocalClient本地虚...

0
1
发表于开发技能专区
2021/04/09 01:08

Redkale 2.3.0 发布,性能第一

Redkale 2.3.0 发布。Redkale, 一个Java分布式微服务框架,1.3M的jar可以代替传统几十M的第三方。包含TCP/UDP、HTTP、RPC、依赖注入、序列化与反序列化、数据库操作、WebSocket等功能。 一方面模块高度整合,极大的简化业务开发代码,一方面暴露大量底层,方便二次框架开发。 Java并不臃肿, 臃肿的是你自己的设计思维! 本次版本更新内容: 1、【新增】增加网络层client包 2、【新增】增加CacheClusterAgent功能 3、【新增】增...

19
10
发表于开发技能专区
2020/09/01 10:21

Redkale 2.1.0 发布,Java 分布式微服务框架

Redkale 2.1.0 发布。Redkale, 一个Java分布式微服务框架,1.3M的jar可以代替传统几十M的第三方。包含TCP/UDP、HTTP、RPC、依赖注入、序列化与反序列化、数据库操作、WebSocket等功能。 一方面模块高度整合,极大的简化业务开发代码,一方面暴露大量底层,方便二次框架开发。 Java并不臃肿, 臃肿的是你自己的设计思维! 本次版本更新内容: 1、【新增】Application加入nodeid属性 2、【新增】增加服务发现和注册功能ClusterAg...

11
15
发表于服务端专区
2020/04/08 13:53

Redkale 2.0.0 正式版发布,Java 分布式微服务框架

作为一名武汉人的作品, 在武汉重启的重大日子里,发布 Redkale 2.0.0 正式版! Redkale, 一个 Java 分布式微服务框架,1.1M 的 jar 可以代替传统 几十M 的第三方。包含 TCP/UDP、HTTP、RPC、依赖注入、序列化与反序列化、数据库操作、WebSocket 等功能。 一方面模块高度整合,极大的简化业务开发代码,一方面暴露大量底层,方便二次框架开发。 Java 并不臃肿, 臃肿的是你自己的设计思维! 本次版本更新内容(与 1.9.9 比较)...

8
15
发表于AI & 大数据专区
2019/10/18 09:07

Redkale 2.0.0.rc1 发布,Java 分布式微服务框架

Redkale 2.0.0.rc1 发布。Redkale, 一个 Java 分布式微服务框架,1.1M 的 jar 可以代替传统 几十M 的第三方。包含 TCP/UDP、HTTP、RPC、依赖注入、序列化与反序列化、数据库操作、WebSocket 等功能。 一方面模块高度整合,极大的简化业务开发代码,一方面暴露大量底层,方便二次框架开发。 Java 并不臃肿, 臃肿的是你自己的设计思维! 本次版本更新内容: 【新增】HttpRequest 增加 getAnnotation 系列方法 【新增】RetResult...

4
20
发表于AI & 大数据专区
2019/05/28 08:36

Redkale 2.0.0.beta1 发布,Java 分布式微服务框架

Redkale 2.0.0.beta1 发布。Redkale, 一个Java分布式微服务框架,1.1M的jar可以代替传统几十M的第三方。包含TCP/UDP、HTTP、RPC、依赖注入、序列化与反序列化、数据库操作、WebSocket等功能。 一方面模块高度整合,极大的简化业务开发代码,一方面暴露大量底层,方便二次框架开发。 Java并不臃肿, 臃肿的是自己的设计思维! 本次版本更新内容: 1、【优化】DataSource在Cachable定时load时屏蔽log 2、【修复】修复ConvertFact...

4
23
发表于服务端专区
2019/04/04 09:57

Redkale 2.0.0.alpha1 发布,Java 分布式微服务框架

Redkale 2.0.0.alpha1 发布。Redkale, 一个Java分布式微服务框架,1.1M的jar可以代替传统几十M的第三方。包含TCP/UDP、HTTP、RPC、依赖注入、序列化与反序列化、数据库操作、WebSocket等功能。 一方面模块高度整合,极大的简化业务开发代码,一方面暴露大量底层,方便二次框架开发。 Java并不臃肿, 臃肿的是你自己的设计思维! 本次版本更新内容: 1、【新增】DataSource增加getCollectionMap系列接口 2、【新增】DataSource增...

4
14
发表于开发技能专区
2018/12/25 10:06

Redkale 1.9.9 发布,Java 分布式微服务框架

Redkale 1.9.9 发布。Redkale, 一个Java分布式微服务框架,1.1M的jar可以代替传统几十M的第三方。包含TCP/UDP、HTTP、RPC、依赖注入、序列化与反序列化、数据库操作、WebSocket等功能。 一方面模块高度整合,极大的简化业务开发代码,一方面暴露大量底层,方便二次框架开发。 Java并不臃肿, 臃肿的是你自己的设计思维! 本次版本更新内容: 1、【新增】DataSource增加部分JSON功能 2、【新增】WATCH服务增加功能:动态更改Ser...

6
26
发表于服务端专区
2018/11/01 14:50

Redkale 1.9.8 发布,Java 分布式微服务

Redkale 1.9.8 发布。Redkale, 一个Java分布式微服务服务架构,1.1M的jar可以代替传统几十M的第三方。包含TCP/UDP、HTTP、RPC、依赖注入、序列化与反序列化、数据库操作、WebSocket等功能。 一方面模块高度整合,极大的简化业务开发代码,一方面暴露大量底层,方便二次框架开发。 Java并不臃肿, 臃肿的是你自己的设计思维! 本次版本更新内容: 1、【新增】FilterNode、FilterJoinNode增加copy方法 2、【优化】修改WebSocket...

3
27
发表于开发技能专区
2018/09/21 08:26

Redkale 1.9.7 发布,Java 分布式微服务

Redkale 1.9.7 发布。Redkale, 一个Java分布式微服务服务架构,1.1M的jar可以代替传统几十M的第三方。包含TCP/UDP、HTTP、RPC、依赖注入、序列化与反序列化、数据库操作、WebSocket等功能。 一方面模块高度整合,极大的简化业务开发代码,一方面暴露大量底层,方便二次框架开发。 Java并不臃肿, 臃肿的是你自己的设计思维! 本次版本更新内容: 1、【新增】增加RestConvertCoder功能 2、【新增】增加WebSocketAction功能 3、【...

2
15
发表于服务端专区
2018/08/20 09:31

Redkale 1.9.6 发布,Java 分布式微服务

Redkale 1.9.6 发布。Redkale, 一个教科书级的框架,一个全新,完全颠覆传统思维的Java分布式服务架构,1.1M的jar可以代替传统几十M的第三方。包含TCP/UDP、HTTP、RPC、依赖注入、序列化与反序列化、数据库操作、WebSocket等功能。 一方面模块高度整合,极大的简化业务开发代码,一方面暴露大量底层,方便二次框架开发。 在Redkale世界里,一切都是为业务Service服务, 而且不是像其他框架那种刷存在感,定义各种接口,把JDK的常...

8
11
发表于AI & 大数据专区
2018/07/31 09:00

Redkale 1.9.5 发布,Java 分布式微服务

Redkale 1.9.5 发布。Redkale, 一个教科书级的框架,一个全新,完全颠覆传统思维的Java分布式服务架构,1.1M的jar可以代替传统几十M的第三方。包含TCP/UDP、HTTP、RPC、依赖注入、序列化与反序列化、数据库操作、WebSocket等功能。 一方面模块高度整合,极大的简化业务开发代码,一方面暴露大量底层,方便二次框架开发。 在Redkale世界里,一切都是为业务Service服务, 而且不是像其他框架那种刷存在感,定义各种接口,把JDK的常...

17
27
发表于开发技能专区
2018/06/28 10:14

Redkale 1.9.4 发布,Java 分布式微服务

Redkale 1.9.4 发布。Redkale, 一个教科书级的框架,一个全新,完全颠覆传统思维的Java分布式服务架构,1M的jar可以代替传统几十M的第三方。包含TCP/UDP、HTTP、RPC、依赖注入、序列化与反序列化、数据库操作、WebSocket等功能。 一方面模块高度整合,极大的简化业务开发代码,一方面暴露大量底层,方便二次框架开发。 在Redkale世界里,一切都是为业务Service服务, 而且不是像其他框架那种刷存在感,定义各种接口,把JDK的常规...

29
30
发表于服务端专区
2018/06/06 09:15

Redkale 1.9.3 发布,Java 分布式微服务

Redkale 1.9.3 发布。Redkale, 一个教科书级的框架,一个全新,完全颠覆传统思维的Java分布式服务架构,1M的jar可以代替传统几十M的第三方。包含TCP/UDP、HTTP、RPC、依赖注入、序列化与反序列化、数据库操作、WebSocket等功能。 一方面模块高度整合,极大的简化业务开发代码,一方面暴露大量底层,方便二次框架开发。 在Redkale世界里,一切都是为业务Service服务, 而且不是像其他框架那种刷存在感,定义各种接口,把JDK的常规...

5
26
发表于服务端专区
2018/04/03 08:51

Redkale 1.9.2 发布,Java 分布式微服务

Redkale 1.9.2 发布。Redkale, 一个教科书级的框架,一个全新,完全颠覆传统思维的Java分布式服务架构,1M的jar可以代替传统几十M的第三方。包含TCP/UDP、HTTP、RPC、依赖注入、序列化与反序列化、数据库操作、WebSocket等功能。 一方面模块高度整合,极大的简化业务开发代码,一方面暴露大量底层,方便二次框架开发。 在Redkale世界里,一切都是为业务Service服务, 而且不是像其他框架那种刷存在感,定义各种接口,把JDK的常规...

6
33
发表于AI & 大数据专区
2018/03/20 10:00

分布式服务架构 Redkale 1.9.1 发布,兼容 JDK9/10

Redkale, 一个教科书级的框架,一个全新,完全颠覆传统思维的Java分布式服务架构,1M的jar可以代替传统几十M的第三方。包含TCP/UDP、HTTP、RPC、依赖注入、序列化与反序列化、数据库操作、WebSocket等功能。 一方面模块高度整合,极大的简化业务开发代码,一方面暴露大量底层,方便二次框架开发。 在Redkale世界里,一切都是为业务Service服务, 而且不是像其他框架那种刷存在感,定义各种接口,把JDK的常规类再封装一层, 美其...

15
32
发表于服务端专区
2018/03/01 10:03

Redkale 1.9.0 发布,Java 分布式微服务

Redkale, 一个教科书级的框架,一个全新,完全颠覆传统思维的Java分布式服务架构,1M的jar可以代替传统几十M的第三方。包含TCP/UDP、HTTP、RPC、依赖注入、序列化与反序列化、数据库操作、WebSocket等功能。 一方面模块高度整合,极大的简化业务开发代码,一方面暴露大量底层,方便二次框架开发。 在Redkale世界里,一切都是为业务Service服务,你不用再纠结fastjson和jackson哪个好,不用再纠结hibernate和mybatis哪个好,不用...

5
35
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
发表了博客
{{o.pubDate | formatDate}}

{{formatAllHtml(o.title)}}

{{parseInt(o.replyCount) | bigNumberTransform}}
{{parseInt(o.viewCount) | bigNumberTransform}}
没有更多内容
暂无内容
发表了问答
{{o.pubDate | formatDate}}

{{formatAllHtml(o.title)}}

{{parseInt(o.replyCount) | bigNumberTransform}}
{{parseInt(o.viewCount) | bigNumberTransform}}
没有更多内容
暂无内容
暂无内容
19 评论
358 收藏
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部