Привет! Удивительно, но первая часть статьи даже кому-то понравилась.
Отдельное спасибо за ваши отзывы и комментарии. У меня для вас плохая хорошая новость: нам ещё есть о чём поговорить! А если точнее, то о некоторых деталях работы Reactor.
Рубрика «nio»
Java и Project Reactor. Эпизод 2
2018-05-24 в 7:34, admin, рубрики: async, flow, flux, funcorp, ifunny, java, Mono, netty, nio, open source, Reactive Streams, reactor, spring, WebFlux, Блог компании FunCorp, параллельное программирование, ПрограммированиеJava и Project Reactor
2018-03-13 в 7:56, admin, рубрики: async, flow, flux, funcorp, ifunny, java, Mono, netty, nio, open source, Reactive Streams, reactor, spring, WebFlux, Блог компании FunCorp, параллельное программирование, ПрограммированиеВсем привет! Меня зовут Лёха, и я работаю бэкенд-разработчиком в FunCorp. Сегодня мы поговорим про реактивное программирование, библиотеку Reactor и немного про веб.
Реактивное программирование часто «подвергается упоминанию», но если вы (как и автор статьи) всё ещё не знаете, что это такое — устраивайтесь поудобнее, попробуем разобраться вместе.
Java-бенчмарки: случайные паттерны и закономерные результаты
2016-10-02 в 20:21, admin, рубрики: java, nand, nio, ssd, ПрограммированиеЗависит ли производительность mass storage устройства от содержимого записываемых файлов? Во времена, когда монополия на реализацию внешней памяти вычислительных систем принадлежала накопителям на магнитных дисках, такой вопрос показался бы странным. Очевидно, в таких устройствах, время передачи файла определяется его размером, а также фрагментацией, заставляющей устройство выполнять дополнительное позиционирование. И нет причин для возникновения зависимости скорости от содержимого, если говорить исключительно об аппаратной производительности, не принимая во внимание программные драйверы, выполняющие архивацию или шифрование данных на уровне файловой системы. А как обстоят дела с данным вопросом у твердотельных дисков? Читать полностью »
Высокопроизводительный SUN/ONCRPC сервер на Java NIO
2013-10-27 в 19:14, admin, рубрики: concurrency, grizzly, java, nio, высокая производительность, Программирование, метки: concurrency, grizzly, java, nioВ статьe о dCache рассказано о том, как использовать его в качестве NFS сервера. Но функциональной совместимости с существующими клиентами недостаточно, чтобы системой можно было пользоваться. Производительность тоже должна быть на высоте. Рабочей лошадкой NFS протокола является ONCRPC протокол. В dCache мы используем собственную реализацию, основанную на grizzly nio framework.
Немного истории для молодых
ONC RPC (Open Network Computing Remote Procedure Call) — протокол, созданный Sun Microsystems в конце 80х и опубликован в 1995г вместе с NFSv2. ONCRPC получил быстрое распространение и широко использовался, пока в начале 2000 не был вытеснен модными альтернативами, как CORBA, SOAP, а позже REST и JSON-RPC. Тем не менее, ONCRPC всё ещё используется, где простота и скорость важнее моды — в сетевых файловых системах.
Реализация
Чтобы не изобретать очередной велосипед, вначале мы использовали реализацию Remote Tea, но вскоре столкнулись с ограничениями, которые не могли легко решить: IPv6, GSSAPI, NIO. Так что велосипед пришлось изобретать, но не с нуля. Мы максимально сохранили совместимость с RemoteTea и адаптировали уже написанный код.
Разбираемся с java.nio.*
2013-08-12 в 9:39, admin, рубрики: java, nio, Программирование, метки: java, nio, ПрограммированиеЭтот пакет был добавлен еще в Java 1.4, однако многие разработчики о нем либо не знают, либо не умеют пользоваться. В сети мало материалов на эту тему, особенно на русском.
Введение
Java New IO — «новая» реализация IO. Ее предназначение — решить проблемы производительности стандартного блокирующего IO. Почти все методы чтения-записи без блокировок, они читают или записывают лишь уже доступную информацию. Это позволяет в одном или нескольких потоках обрабатывать любое количество подключений.
Продолжение под хабракатом
Читать полностью »
Контейнер серверного java-кода с поддержкой постоянного соединения
2013-07-28 в 11:43, admin, рубрики: java, nio, tomcat, контейнер, сервер, сокеты, метки: java, nio, tomcat, контейнер, сервер, сокетыDisclaimer
Все, описанное в статье, является личным практическим опытом и не претендует на звание «истины в последней инстанции».
Преамбула
Здравствуйте. Я увлекаюсь созданием компьютерных игр. Моим любимым направлением, в котором я постоянно стараюсь совершенствоваться и узнавать что-то новое, являются браузерные многопользовательские игры.
Для создания прототипа для одной идеи в качестве контейнера сервлетов используется Apache Tomcat. Он общается с клиентской частью по http протоколу. Для такого типа игры схема вполне действующая, причем достаточно простая в реализации.
Но одной из преждевременных оптимизаций(да, это плохо, но тут я решил себе это позволить) стала идея использовать постоянное соединение между сервером и клиентом, т.к. в такой схеме не тратится время на открытиезакрытие соединения в каждом запросе. Для реализации схемы рассматривалось WebSocket API для Tomcat, но стало интересно написать свой велосипед, поэтому, встречайте рассказ о разработке под катом. Читать полностью »