Базирующаяся на Netty платформа для разработки серверной части NIO MVC с возможностями мониторинга производительности, анализа логов и динамического расширения.
Высокопроизводительный фреймворк, базирующийся на Netty, для разработки MVC приложений NIO с поддержкой расширяемых пользовательских протоколов.
@Inject
— внедрение зависимости@Path
— поддержка маршрутов@Param
— автоматическое внедрение значений параметров@Action
public 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);
}
}
@Around
public 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;
}
}
// Пример запуска сервера NIO MVC
new KettyServer.Builder()
.tcpNoDelay(true)
.soKeepAlive(true)
.setHttpProtocol()
.host("localhost")
.port(8888)
.build()
.start();
```// Пример тестового клиента Jetty
```java
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);
}
}
// Пример запуска сервера NIO MVC
public class SimpleServer {
public static void main(String[] args) throws Exception {
new KettyServer.Builder()
.setKettyProtocol()
.port(8888)
.build()
.start();
}
}
KettyClient высоконагруженный NIO-клиент
Поддерживает несколько узлов, автоматически удаляет недоступные узлы
Поддерживает пулинг соединений
Кодирование и декодирование
шапка | тело | ||||
---|---|---|---|---|---|
размер | длина | URI | ID сообщения | paramsMap | тело |
short(2 байта) | short(2 байта) | строка | int(4 байта) | словарь | JSONString |
Шапка | Тело | |||
---|---|---|---|---|
Размер | Длина | ID сообщения (идентификатор сообщения) | Код ответа (код возврата сообщения) | Тело |
short(2 байта) | short(2 байта) | int(4 байта) | short(2 байта) | JSONString |
Модуль прокси-сервера, предоставляющий функцию маршрутизации
Мониторинг производительности
Уведомления
Статистический анализ API
Интеллектуальное рекомендование
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )