基于netty实现的服务端Nio MVC业务开发 ketty
- 授权协议: GPL
- 开发语言: Java
- 操作系统: 跨平台
- 软件首页: http://zhizus.com/blog/2015/10/ketty.html
- 软件文档: http://git.oschina.net/dempe/jetty
软件介绍
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模块
接口统计分析 智能推荐
图解密码技术(第3版)
[日] 结城浩 / 周自恒 / 人民邮电出版社 / 2016-6 / 89.00元
本书以图配文的形式,详细讲解了6种最重要的密码技术:对称密码、公钥密码、单向散列函数、消息认证码、数字签名和伪随机数生成器。 第1部分讲述了密码技术的历史沿革、对称密码、分组密码模式(包括ECB、CBC、CFB、OFB、CTR)、公钥、混合密码系统。第2部分重点介绍了认证方面的内容,涉及单向散列函数、消息认证码、数字签名、证书等。第3部分讲述了密钥、随机数、PGP、SSL/TLS 以及密码技......一起来看看 《图解密码技术(第3版)》 这本书的介绍吧!
