开源软件名称:jetty
开源软件地址:https://gitee.com/dempe/jetty
开源软件介绍:
##Ketty 基于netty实现的服务端Nio MVC业务开发平台,提供性能监控,日志分析,动态扩展的功能。
###ketty-srv模块 基于netty实现支持自定义协议扩展的Nio MVC高性能业务框架
####协议 ####基于注解的 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模块 接口统计分析智能推荐
READ MORE |
请发表评论