Skip to content

Java based application,rpc,message,rtmp,game,sip,rtp,relay,webrtc,webssh,proxy server

Notifications You must be signed in to change notification settings

icecooly/JazminServer

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

# 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
    • apache 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登陆

部署机器人

About

Java based application,rpc,message,rtmp,game,sip,rtp,relay,webrtc,webssh,proxy server

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Java 65.6%
  • JavaScript 28.1%
  • CSS 5.5%
  • Shell 0.3%
  • Swift 0.2%
  • Python 0.1%
  • Other 0.2%