Okra 是一个构建在 Netty 框架和 Disruptor 框架之上轻量级 JAVA 服务器框架。 使用 Netty 实现高性能,可灵活扩展的网络通信,使用 Disruptor 实现高吞吐量,低延迟的并发。
点击阅读Okra-Ax设计说明
Okra 是一个构建在 Netty 框架和 Disruptor 框架之上轻量级 JAVA 服务器框架。 使用 Netty 实现高性能,可灵活扩展的网络通信,使用 Disruptor 实现高吞吐量,低延迟的并发。
如何将 Okra 应用到实际开发中?
本文旨在帮助初次接触 Okra 框架的用户上手使用 Okra 框架.
1. 下载 Okra-x.y.z.jar
首先我们需要下载 Okra 框架最新的稳定版本.Jar:下载地址.
目前 Okra 没有推送到 Maven 仓库,使用 Okra-x.y.z.jar 需要手动添加类库引用.
2. 导入工程
本文以 Intellij IDEA 2016.1.2 为例. IDEA 提供多种多样的添加类库的途径. 本段只做简单的举例示范.
方法一: 设置通用类库导入
- 打开工程设置. “File” -> “Project Structure…” 或者使用快捷键(Ctrl + Alt + + Shift + S).
- 选择”Global Libraries”, 点击符号”+”,添加 Okra-x.y.z.jar 为通用类库.
- 添加 Okra 到工程中, 选中新添加的 Okra-x.y.z.jar 点击鼠标右键 -> “Add to Modules” 选中对应的模块, 最终”Ok”, 完成导入
方法二: 在 Modules 界面设置导入
- 打开工程设置. “File” -> “Project Structure…” 或者使用快捷键(Ctrl + Alt + + Shift + S).
- 选择”Modules”, 选中需要添加 Okra 的模块, 点击”Dependencies”, 点击符号”+”.
- 点击”JARs or directories”选择 Okra 文件或所在目录按照提示完成添加
3. Okra 框架的依赖
Okra 核心是整合 Netty 和 Disruptor 两个框架. 以便于快速开发高并发, 低延迟,高吞吐量, 灵活可扩展的网络服务器.
(required) :
1
2
3
4
5
6
7
8
9
10
<dependency>
<groupId>io.netty</groupId>
<artifactId>netty-all</artifactId>
<version>4.0.36.Final</version>
</dependency>
<dependency>
<groupId>com.lmax</groupId>
<artifactId>disruptor</artifactId>
<version>3.3.2</version>
</dependency>
(optional) :
-
Spring 框架支持
使用 Spring 框架, 除了 Spring 框架自身带来的 IOC 等便利之外, 还可以快速集成大量优秀的类库, 例如: Hibernate, Mybatis, BoneCP, HikariCP 等等.
1 2 3 4 5
<dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>4.2.2.RELEASE</version> </dependency>
-
Flex 通信支持
Flex 客户端和 Java 服务端的通信支持依赖于BlazeDS类库.
1 2 3 4 5 6 7 8 9 10
<dependency> <groupId>org.apache.flex.blazeds</groupId> <artifactId>flex-messaging-core</artifactId> <version>4.7.2</version> </dependency> <dependency> <groupId>org.apache.flex.blazeds</groupId> <artifactId>flex-messaging-common</artifactId> <version>4.7.2</version> </dependency>
4. 项目中使用
示例 1: Okra 框架搭建 HTTP 服务器
示例 2: Okra 框架搭建 Socket 服务器
Java 服务器 Demo: okra-demo
5. 总结
本文旨在帮助初次接触 Okra 框架的用户,快速搭建基于 Okra 的网络服务器. 提供了两个简单的示例和一个相对来说比较完整的服务端 demo. 用户在实际开发过程中遇到问题或者 BUG 欢迎反馈到issues.
本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。欢迎转载、使用、重新发布,但务必保留文章署名 TinyZ Zzh (包含链接: https://tinyzzh.github.io ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。 如有任何疑问,请 与我联系 (tinyzzh815@gmail.com) 。
评论