JazminServer
JazminServer is a Java based application/message/rpc/sip/rtmp/udp relay server.
Docs
JazminServer Introduction
JazminServer Setup
JazminServer Arch
Main features
- Core
- Log
- AopDispatcher
- JobScheduler
- ApplicationLoader
- BootLoader
- JobScheduler
- TaskScheduler
- Drivers
- HttpDriver
- JDBCDriver
- LuceneDriver
- MemcachedDriver
- RPCDriver
RedisDriver
InfluxdbDriver
- RPCServer
- Server push message to client
- Client proxy
- MessageServer
- Session management
- Asyc service
- Continuation service
- Oneway service
- Invoke frequency restrict
- AMF/json/zjson message format
- udp(kcp)/tcp/websocket
- WebServer
- Jetty based webserver
- Simple MVC framework
- FTPServer
- ConsoleServer
- SSH based monitor server
- Piped command
- REPL env
- RTMPServer
- RTMP Streaming Server
- Video On Demand, seek and pause support
- Publish / Broadcast live streams
- FLV, F4V / MP4 / H.264 support
- SipServer
- Sip Message Codec
- Sip Application container
- Used for VOIP System
- RelayServer
- UDP relay
- TCP relay
- WebRTC(DTLS-SRTP) to RTP relay
- Used for NAT through
- WebSshServer
- WebSocket Ssh turnel
- htrm.js
Demo
Start a rpc server and register remote service
Jazmin.addServer(new ConsoleServer());
RpcServer rpcServer=new RpcServer();
rpcServer.registerService(new TestRemoteServiceImpl());
Jazmin.addServer(rpcServer);
Jazmin.start();
JazminServer介绍
JazminServer是基于Java语言开发的统一中间件系统,她为开发者提供了统一的开发平台,帮助开发者快速开发基于Java的大型分布式应用。JazminServer可以被配置成Web服务器,RPC服务器,消息服务器,WebSocket服务器,监控服务器,RTMP流媒体服务器,SIP网关服务器,UDP 中继服务器等多种服务器,向客户端提供高效,稳定的服务。并且还集成了声明式事务,依赖注入,AOP日志,JOB/TASK调度等开发中常用的功能。JazminServer还提供了基于Web的自动化配置管理工具和自动化部署工具。
JazminServer适合被用作大型多人在游戏的服务器、物联网系统的后台服务器、大型网站系统的后台服务器等。
JazminServer帮助开发者实现了众多的底层功能,基于JazminServer提供的API,开发者可以更专注于业务逻辑实现,快速的构建属于自己的应用。
文档
特性列表
- Core
- Log 统一的全局日志系统
- Dispatcher 统一的多线程调度器
- JobScheduler 基于CRON表达式的Job调度器
- ApplicationLoader 从自定义格式的二进制分发包加载插件
- BootLoader 基于JavaScript的启动配置文件
- TaskScheduler 定时任务调度器
- Drivers
- HttpDriver 基于NIO的Http客户端,可用于大并发量的爬虫系统
- JDBCDriver 声明式事务的JDBC连接池
- LuceneDriver Lucene搜索引擎包装
- MemcachedDriver Memcached包装
- RPCDriver RPC客户端
- RPCServer
- Request/Response RPC call 基于请求响应方式的RPC调用
- Server push message to client 服务器主动推送消息到客户端
- Client proxy 基于动态代理的客户端编程模型
- Async Call 异步RPC调用
- MessageServer
- Session management 会话管理
- Asyc service 异步消息调用
- Continuation service continuation消息
- Oneway service 无响应消息
- Invoke frequency restrict 调用频率限制
- AMF/json/zjson message format 支持AMF、JSON、ZJSON等多种消息格式
- udp(kcp)/tcp/websocket 支持udp模式(使用kcp保证可靠传输),tcp,websocket 连接
- WebSocketMessageServer
- WebSocket message service 提供基于WebSocket的消息服务
- WebServer
- Jetty based webserver 基于Jetty内核
- Simple MVC framework 提供简单的MVC框架支持
- FTPServer
- apache ftpserver 集成apache ftpserver
- ConsoleServer
- SSH based monitor server 基于SSH协议的监控控制台
- Piped command 支持管道命令
- REPL env 有完整的交互式的命令行环境
- RTMPServer
- RTMP 流媒体服务器
- Video On Demand, seek and pause support 实时视频播放
- Publish / Broadcast live streams 流媒体直播
- FLV, F4V / MP4 / H.264 support 支持flv,f4v,mp4,h264格式
- SipServer
- Sip Message Codec SIP协议编解码
- Sip Application container SIP应用程序容器
- Used for VOIP System 可以用在VOIP系统中
- RelayServer
- UDP relay UDP包中转
- TCP relay TCP包中转
- WebRTC(DTLS-SRTP) to RTP relay WebRTC(DTLS-SRTP)包转换成RTP包,用于WebRTC客户端和传统sip软电话互联
- Used for NAT through 可以帮助客户端穿透NAT
- WebSshServer
- 使用WebSocket作为传输中继
- 前端使用hterm.js
- MySQLProxyServer
- 解析MySQL协议,支持对用户进行第三方用户名密码认证
架构图
部署结构图
ConsoleServer-TPS监控
ConsoleServer
ConsoleServer-SQL分析
自动部署系统
Sql控制台
WebSSH登陆
部署机器人