Операция экспорта/импорта IBM Streams внутри экземпляра по сравнению с двумя экземплярами

Чем отличается операция экспорта/импорта, когда она выполняется в одном и том же экземпляре, а не между двумя разными экземплярами. Есть ли разница в производительности между двумя?


person Ankit Sahay    schedule 14.03.2018    source источник


Ответы (1)


Я подозреваю, что может возникнуть путаница в отношении того, что такое экземпляр. Экземпляр Streams отвечает за управление некоторым набором хостов и заданий. Задания отправляются экземпляру Streams, и экземпляр развертывает эти задания на некоторых хостах, которыми управляет этот экземпляр.

Импорт/экспорт работает только между заданиями в одном экземпляре; задания в отдельных экземплярах не знают друг о друге. Таким образом, часть вашего вопроса невозможна: нет импорта/экспорта между заданиями в разных экземплярах.

Если вы хотели спросить о разнице в производительности между импортом/экспортом в одном и том же заданиях и в разных заданиях, то их нет. Однако редко бывает веская причина использовать импорт/экспорт внутри одного и того же задания, поскольку цель импорта/экспорта — обеспечить связь между заданиями.

person Scott S    schedule 15.03.2018
comment
Я хотел спросить разницу между оператором экспорта/импорта и оператором TCP Source/TCPSink. TCPSource/Sink можно использовать для передачи данных между разными экземплярами. Мой вопрос заключается в том, что данные между двумя заданиями могут передаваться, когда они находятся в одном экземпляре (с использованием оператора экспорта/импорта), а для другого экземпляра (оператор TCPSource/Sink) необходимо использовать. Эти два метода одинаковы? Есть ли среди них более ресурсоемкая операция? - person Ankit Sahay; 16.03.2018
comment
Эти два метода не одинаковы. На самом деле, я бы рассматривал использование TCPSource/Sink для обеспечения связи между приложениями в разных экземплярах как анти-шаблон: если двум приложениям Streams необходимо взаимодействовать, они должны быть в одном экземпляре. Импорт/экспорт дает вам богатую семантику публикации-подписки, включая фильтры. Для TCPSource/Sink, если вы используете один из текстовых форматов (csv, txt или line), тогда будет больше накладных расходов на отправку и получение по сравнению с Import/Export или TCPSource/Sink с форматами bin или block. - person Scott S; 16.03.2018
comment
Это то, что я подозревал, большие накладные расходы. Есть ли способ измерить или количественно оценить накладные расходы? Или измерить разницу в производительности между этими двумя методами? Вся причина этого заключается в том, чтобы использовать разные экземпляры одинаково, а не развертывать большинство заданий в 1 экземпляре, но тогда в будущем может возникнуть необходимость в обмене данными между экземплярами. - person Ankit Sahay; 16.03.2018
comment
Самый простой способ измерить разницу в производительности — написать простые приложения, использующие импорт/экспорт, и простые приложения, использующие TCPSource/TCPSink, и измерить их соответствующую пропускную способность. Но, опять же, позвольте мне повторить: я думаю, вы собираетесь применить антишаблон. Экземпляры предназначены для выполнения нескольких заданий. Почему вы считаете необходимым использовать разные экземпляры одинаково? Я беспокоюсь, что вы перепутали экземпляры с хостами. У одного экземпляра может быть много хостов. Единственная причина иметь разные задания в разных экземплярах — держать их изолированными, часто из соображений безопасности. - person Scott S; 17.03.2018
comment
У меня есть 3 экземпляра. В одном экземпляре выполняется около 100 заданий, а в третьем экземпляре выполняется только 1 задание. Разве это не неравномерное использование ресурсов? Не будет больше нагрузки на instance1? - person Ankit Sahay; 17.03.2018
comment
Да, но, вероятно, не так, как вы думаете об этом. Экземпляр — это набор служб управления и узлов приложений. Да, у служб управления будет больше работы по мере увеличения количества заданий и связанных с ними действий в экземпляре. Но это не обязательно большая нагрузка на хосты приложений. Вы можете назначать хосты приложений своим экземплярам; если вы даете экземпляру много хостов, чтобы он мог вместить множество запущенных заданий, все должно быть в порядке. - person Scott S; 18.03.2018
comment
Спасибо, Скотт, за ответы. Как вы думаете, будет ли лучше удалить 3-й экземпляр и использовать ресурсы для добавления хостов приложений к экземпляру 1? - person Ankit Sahay; 18.03.2018
comment
Да, я думаю, что это лучшее направление. Единственная причина не делать это таким образом — это если объем работы, связанной с работой, настолько высок, что ваши службы управления перегружены. Но я сомневаюсь, что это так, и я бы начал создавать отдельные экземпляры только после того, как вы докажете, что ваши службы управления перегружены. Более простое решение (один экземпляр со многими хостами для всех ваших приложений) должно быть тем, что вы попробуете в первую очередь. - person Scott S; 19.03.2018
comment
Есть ли способ узнать нагрузку на службы управления? Как узнать нагрузку на него? - person Ankit Sahay; 19.03.2018