Стоит ли в Java использовать библиотеку Netty?

Всем привет. Я стою перед выбором, использовать библиотеку Netty, или проще использовать обычный сервер на блокирующем IO с множеством потоков. Объясню точнее мой сервер - это сервер небольшой Android App, которая должна подключаться к серверу делать запрос, а сервер должен проанализировать этот запрос, сделать запрос в базу данных и дать ответ клиенту. Все довольно просто и в принципе вся работа должна идти на запрос к базе данных. ТАк вот, на сколько я знаю (я новичек) делать запрос к базе данных в Hander-ре Netty нельзя, ибо это затормозит всю систему, получается нужно создавать дополнительный поток... Но тогда какая суть в netty? В таком случае, если основная загрузка сервера будет на работу с базой данных, стоит ли вообще парится с Netty?
  • Вопрос задан
  • 10710 просмотров
Пригласить эксперта
Ответы на вопрос 4
FanKiLL
@FanKiLL
public static final EventExecutorGroup group = new DefaultEventExecutorGroup(16);

pipeline.addLast(group, "handler", new MyBusinessLogicHandler());


Business Logic Handler - performs the actual business logic (e.g. database access)

Вы можете указать чтобы ваш handler выполнялся в другом Execut'оре.
Читайте комментарии в этом файле
Ответ написан
virpool
@virpool
девелопер
В таком случае нужно искать драйвер, поддерживающий асинхронность "из коробки" и желательно Netty-based. Однако, гуглится только что-то наподобие https://github.com/mauricio/postgresql-async (Async, Netty based, database drivers for PostgreSQL and MySQL), и то на Scala.
Но на вашем месте я бы не стал париться с Netty, задачу можно решить вполне "старым дедовским способом".

P.S. Ну или воспользовался модным Node.js (если на стороне сервера всё не завязано на джаве), если нужна асинхронность "без головной боли", и если нет особо сложной бизнес-логики.
Ответ написан
FanKiLL
@FanKiLL
Или возьмите любую имплементацию JAX-RS 2.0 там есть асинхронные rest endpoint's
Ответ написан
risik
@risik
Программист
Сильно зависит от нагрузки. Если нагрузка предполагается низкая, то необходимости в netty нет и проще сделать так как быстрее/проще/дешевле. Когда/если нагрузка начнет повышаться, тогда и следует решать проблему.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы