Фон
В моем java-приложении у меня достаточно большие объемы данных, хранящиеся в ConcurrentHashMap.
Теперь мне нужно передать эти данные клиентскому клиенту в формате XML, когда клиент подключается к моему приложению через порт TCP.
Итак, в двух словах - у меня есть TCP-сервер, к которому подключается клиент. Как только клиент подключается, я должен прочитать все данные на карте и выложить их в формате XML (настраиваемый) на порт TCP. Данные на карте обновляются автоматически откуда-то еще, используя рабочие потоки и т. Д., Поэтому мне приходится снова и снова отправлять свежие данные клиенту через этот порт tcp.
Я хочу реализовать решение, которое эффективно использует память и процессор - в основном, я бы предпочел не создавать слишком много неизменяемых объектов в куче. .
ПРИМЕЧАНИЕ. В будущем мне может потребоваться поддержка нескольких форматов вывода (например, через запятую, Json, HL7 и т. Д.) Для простоты, скажем, есть другой порт TCP, который клиент может подключить для определенного формата.
Вопрос
С учетом сказанного - я искал лучшее решение для моей реализации TCP-сервера и процесса преобразования данных из ConcurrentHashMap в XML.
Для TCP-сервера люди говорят о
Мой клиент будет сторонним, так что я думаю, что kryonet отсутствует, поскольку клиент не будет заниматься "регистрацией", необходимой Kryonet. Так что из MINA и NETTY, что является масштабируемым и легче для понимания? Любое другое предложение?
ДЛЯ преобразования данных из ConcurrentHashMap в XML я думал об использовании XSTREAM
Любое другое предложение?
Спасибо