ketty基于netty实现的服务端Nio MVC业务开发
Ketty
基于 netty 实现的服务端 Nio MVC 业务开发平台,提供性能监控,日志分析,动态扩展的功能。
ketty-srv模块
基于netty实现支持自定义协议扩展的Nio MVC高性能业务框架
协议
Http
Ketty(自定义私有协议)
基于注解的 mvc
@Inject注入
@Path 路径支持
@Param参数自动注入value
支持方法调用频率限制RateLimiter
@Actionpublic class SimpleAction { @Inject private UserService userService; // 每秒最多可调用100次,超过100次丢弃, @Rate(value=100) @Interceptor(id = "echoInterceptor") @Path public User getUserByUid(@Param String uid) { return userService.getUserByUid(uid); }}
拦截器 example
@Aroundpublic class EchoInterceptor extends BaseInterceptor { private final static Logger LOGGER = LoggerFactory.getLogger(EchoInterceptor.class); @Override public boolean before() { LOGGER.info("==============EchoInterceptor before========="); return true; } @Override public boolean after() { LOGGER.info("==============EchoInterceptor after========="); return true; }}
KettyServer example
// nio mvc 业务server启动类examplenew KettyServer.Builder() .tcpNoDelay(true) .soKeepAlive(true) .setHttpProtocol() .host("localhost") .port(8888) .build() .start();// 测试jetty客户端public class JettClientTest { public static ClientSender clientSender = new ClientSender("localhost", 8888); public static void main(String[] args) throws Exception { KettyRequest request = new KettyRequest(); request.setUri("/simpleAction/getUserByUid"); JSONObject params = new JSONObject(); params.put("uid", "12345677"); request.setParameter(params); String result = clientSender.sendAndWait(request); System.out.println("result : " + result); }}
HttpServer example
// nio mvc 业务server启动类examplepublic class SimpleServer { public static void main(String[] args) throws Exception { new KettyServer.Builder() .setKettyProtocol() .port(8888) .build() .start(); }}
TODO
支持自定义协议扩展
安全验证
性能优化
WebSocket协议的实现
ketty-client模块
KettyServer高可用NIO客户端
High availability
支持多个节点,节点不可用自动移除
Client pool
支持连接池
断链自动重连
自动维护心跳
ketty-codec模块
编解码框架
KettyRequest
header | body | ||||
---|---|---|---|---|---|
size | len | uri | msgId | paramsMap | body |
short(2byte) | short(2byte) | string | int(4byte) | map | JSONString |
KettyResponse
header | body | |||
---|---|---|---|---|
size | len | msgId(消息id) | resCode(消息返回码) | body |
short(2byte) | short(2byte) | int(4byte) | short(2byte) | JSONString |
ketty-router模块
服务代理模块,提供路由分发功能
ketty-monitor模块
性能监控 报警
ketty-analysis模块
接口统计分析 智能推荐
评论
CorMVC基于jQuery实现的MVC开发框架
corMVC是一个基于jQuery实现的MVC开发框架,简洁、易用、资源占用少。可用于开发单页面应用程序。
CorMVC基于jQuery实现的MVC开发框架
0
BeeFramework基于 MVC 的快速开发框架
BeeFramework是一款iOS平台的MVC应用快速开发框架,使用Objective-C开发。其早期原型曾经被应用在QQ空间、QQ游戏大厅等多款精品APP中。BeeFramework从根本上解决了
BeeFramework基于 MVC 的快速开发框架
0
Arsenals基于PHP的MVC开发框架
Arsenals采用了基于MVC的架构,同时支持Service层的扩展。系统采用了PHP5.3开始支持的命名空间,在开发过程中,可以实现业务代码的灵活组织,非常简单的实现HMVC架构,以便对业务逻辑进
Arsenals基于PHP的MVC开发框架
0
PHP-CAS-Server基于 Laravel 的 CAS 服务端实现
PHP CAS Server是一个基于Laravel框架开发的CAS服务端实现,旨在解决使用PHP技
PHP-CAS-Server基于 Laravel 的 CAS 服务端实现
0
ZRPC基于 Netty 实现的 RPC 框架
ZRPC基于Netty实现的RPC框架服务端 RpcServer server = new RpcServer("127.0.0.1",1234); HelloServiceImpl impl =
ZRPC基于 Netty 实现的 RPC 框架
0