Сколько обновлений на пользователя вы ожидаете в секунду? Если каждый пользователь обновляется только один раз в час, вы будете отправлять 10 ^ 12 сообщений в час - каждое отправленное сообщение приводит к еще 1 000 000 отправкам. Это 277 миллион сообщений в секунду. Иными словами, если каждый пользователь отправляет сообщение в час, то получается 277 входящих сообщений в секунду или 277 миллионов исходящих сообщений.
Так что я думаю, что ваш базовый дизайн имеет недостатки. Но основной вопрос: «Как передать одно и то же сообщение множеству пользователей» остается в силе, и я рассмотрю его.
Как вы обнаружили, Channel Channel не очень хорош в вещании, потому что каждый вызов занимает около 50 мс. Вы могли бы обойти это с несколькими задачами, выполняющимися параллельно.
Для подобных случаев - множество клиентов, которым нужны точно такие же данные без сохранения состояния , я бы посоветовал вам использовать опрос, а не API канала, поскольку каждый клиент будет получать точно такой же информация - нет необходимости отправлять индивидуальные сообщения каждому клиенту. Определите приемлемую среднюю задержку (например, 1 секунду) и выполните опрос с удвоенной частотой (например, 2 секунды). Напишите очень легкий сервлет с поддержкой memcache, чтобы просто получить самый последний блок данных и позволить клиентам дуплетировать.