Amazon Kinesis vs AWS Manage Service Kafka (MSK) - (Соединение с локального сервера) - PullRequest
0 голосов
/ 05 марта 2020

Я оцениваю AWS Kinesis vs Managed Service Kafka (MSK). Наше требование - отправлять некоторые сообщения (JSON) на AWS из локальной системы (система разрабатывается с использованием c ++). Затем нам нужно сохранить вышеупомянутые сообщения в реляционной базе данных, например PostgreSQL, и в то же время нам нужно передать данные выше в некоторые другие микросервисы (java), которые размещены в AWS.

У меня есть следующие запросы:

i) Как я могу получить доступ (подключить и отправить сообщения) к AWS Kinesis из моей локальной системы? Есть ли C ++ API, поддерживающий это? (Существует java клиентский API, но наша локальная система написана на C ++)

ii) Как я могу получить доступ (подключиться и отправить сообщения) к AWS MSK из моей локальной системы?

iii) Можно ли интегрировать MSK с другой службой AWS (например, лямбда, Redshift, EMR и т. Д. c)?

iv) Для сохранения данных в базе данных мы можем использовать AWS лямбда? (AWS Kinesis, поддерживающий эту функцию, как насчет AWS MSK)

v) Наша скорость передачи сообщений составляет 50 мсг / с, и что является экономически эффективным решением?

1 Ответ

1 голос
/ 05 марта 2020

Если говорить прямо, ваш вариант использования звучит просто, и 50 сообщений в секунду - это очень низкая скорость.

Kinesis - это пожарный шланг, где вам нужна соломинка. Kinesis предназначен для приема, преобразования и обработки терабайт движущихся данных. ]

Вы предпочли посмотреть на SQS или Amazon MQ? И то, и другое значительно проще в использовании и управлении, чем Kafka или Kinesis. Из ваших вопросов ясно, что вы вообще не общались с Кафкой, поэтому у вас будет крутая кривая обучения. SQS - это простая система организации очередей на основе API - вы публикуете sh в очереди SQS и используете из очереди. Если вам не нужно беспокоиться о порядке, маршрутизации и т. Д. c, это постоянная и надежная (если неуклюжая) технология, которую многие люди используют с большим успехом.

Чтобы ответить на ваши реальные вопросы:

  1. Amazon публикует C ++ SDK для своих сервисов - я был бы ошеломлен, если бы среди них не было клиента Kinesis. Вам потребуется либо открытая конечная точка Kinesis, либо частная конечная точка Kinesis, доступная через какой-либо туннель или шлюз между вашей локальной сетью и вашей AWS vp c.

  2. мск это кафка. Вам нужен клиент Apache Kafka C ++, и, как и в случае с кинезисом выше, вам понадобится какой-то туннель или шлюз от вашей локальной сети до AWS vp c, где вы предоставили MSK

  3. Это возможно, но вряд ли есть какие-либо решения под ключ. Вам придется написать какое-то программное обеспечение для моста через Kafka -> Другие системы

  4. Возможно, вы можете использовать Lambda, если вы обслуживаете сбои, тайм-ауты и другие режимы сбоев. Если честно, лучше использовать автономного потребителя, работающего в качестве службы в вашем vp c или on-prem.

  5. SQS или Amazon MQ, как упоминалось ранее, вероятно, будет проще и экономичнее, чем MSK, и почти наверняка будет дешевле, чем Kinesis.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...