понедельник, 5 июня 2017 г.

[prog.thoughts] Внезапное осознание момента в модели publish/subscribe и топиков с wildcard-ами в именах.

Внезапно поймал себя вот на чем: есть publish/subscribe, которая доступна посредством разнообразных MQ-шных брокеров (т.к. IBM WebSphere MQ, RabbitMQ или mosquitto). Там можно подписываться на топики, в именах которых есть wildcard-ы (спецсимволы вроде +, * и #). Например, кто-то публикует сообщение в топике с именем /temperature_sensors/floor/1/n001/value. А приходит это сообщение к тем, кто подписался на топики /temperature_sensor/floor/+/+/value и /temperature_sensors/floor/#.

Так вот, внезапно осознал, что в 90% случаев (а может и в 99.9%) при использовании wildcard-ов нужно иметь точное имя топика, в котором сообщение опубликовано. Т.е. в 90% случаев нужно не только уметь подписаться на /temperature_sensors/floor/+/+/value, но нужно еще обязательно вместе с сообщением получить и имя топика (будь то temperature_sensors/floor/1/n001/value или temperature_sensors/floor/10/n100_10_03/value). Без знания точного имени нет пользы от самого лишь сообщения из топика.

PS. Понятно, что я старый тормоз. Но когда пользуешься готовыми MQ-брокерами, в которых имя топика-источника сообщения есть всегда, то об этом не задумываешься. А вот когда размышляешь о чем-то таком собственном, то вдруг осознаешь, что этой "мелочи" раньше даже и не замечал.

PPS. А вообще это пост на тему о том, как полезно использовать "проектирование на бумаге" с очень ранними прикидками того, как то, что ты хочешь сделать, должно будет использоваться. На реальных или более-менее похожих на реальные примерах.

Комментариев нет: