An open API service indexing awesome lists of open source software.

https://github.com/lostsky3000/ejnode

A lightweight server framework in java with nodestyle, 像nodejs一样写简单的java代码
https://github.com/lostsky3000/ejnode

asynchronous-programming asyncio game-server java-server loadbalance node redis-client

Last synced: 8 months ago
JSON representation

A lightweight server framework in java with nodestyle, 像nodejs一样写简单的java代码

Awesome Lists containing this project

README

          

[![MIT licensed](https://img.shields.io/badge/license-MIT-blue.svg)](./LICENSE)

# ejnode(Easy-Java-Node)

一句话概括:

ejnode是一个业务逻辑单线程,非业务功能(io,timer等)多线程的异步事件处理框架,正如nodejs做的那样。

将业务逻辑回归简洁,让开发者摆脱多线程编程的心智负担,但又可以在io等方面享受多线程带来的性能优势。

如其名: 像node一样写简单的java代码。

## ejnode 有哪些特性

- 业务逻辑只用单线程处理 (可扩展多个业务线程来实现负载均衡)

- 每个业务线程对应专属io线程组,避免高并发下"多业务线程对多io线程"加剧锁竞争的情况

- 所有io操作无阻塞(基于netty),全异步

- 经过优化的定时器,支持海量定时任务

- 提供 http,websocket 等常用网络服务

- 提供 redis异步驱动(RESP2协议)

## 示例

[Startup](src/test/java/fun/lib/ejnode/example/Startup.java) 启动ejnode

[Exit](src/test/java/fun/lib/ejnode/example/Exit.java) 关闭ejnode

[Timeout](src/test/java/fun/lib/ejnode/example/Timeout.java) 定时器用法

[Schedule](src/test/java/fun/lib/ejnode/example/Schedule.java) 定时任务用法

[Process](src/test/java/fun/lib/ejnode/example/ProcessTest.java) Process相关用法

[HttpServer](src/test/java/fun/lib/ejnode/example/HttpServerTest.java) http服务器示例

[HttpClient](src/test/java/fun/lib/ejnode/example/HttpClientTest.java) http客户端示例

[WebsocketServer](src/test/java/fun/lib/ejnode/example/WebsocketServerTest.java) websocket服务器示例

[RedisClient](src/test/java/fun/lib/ejnode/example/RedisClientTest.java) redis客户端示例

[Logger](src/test/java/fun/lib/ejnode/example/LoggerTest.java) 日志示例

## 社区&支持

E-Mail: 296821855@qq.com