Submit Search
Upload
ストリーム処理勉強会 大規模mqttを支える技術
•
7 likes
•
5,976 views
Keigo Suda
Follow
ストリーム処理勉強会 大規模mqttを支える技術
Read less
Read more
Internet
Report
Share
Report
Share
1 of 30
Download now
Download to read offline
Recommended
Kongの概要と導入事例
Kongの概要と導入事例
briscola-tokyo
Datadog による Container の監視について
Datadog による Container の監視について
Masaya Aoyama
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
Kohei Tokunaga
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
NTT DATA Technology & Innovation
初心者向けMongoDBのキホン!
初心者向けMongoDBのキホン!
Tetsutaro Watanabe
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
NTT DATA Technology & Innovation
MongoDBが遅いときの切り分け方法
MongoDBが遅いときの切り分け方法
Tetsutaro Watanabe
ここが良かったDatadog
ここが良かったDatadog
tyamane
Recommended
Kongの概要と導入事例
Kongの概要と導入事例
briscola-tokyo
Datadog による Container の監視について
Datadog による Container の監視について
Masaya Aoyama
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
Kohei Tokunaga
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
NTT DATA Technology & Innovation
初心者向けMongoDBのキホン!
初心者向けMongoDBのキホン!
Tetsutaro Watanabe
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
NTT DATA Technology & Innovation
MongoDBが遅いときの切り分け方法
MongoDBが遅いときの切り分け方法
Tetsutaro Watanabe
ここが良かったDatadog
ここが良かったDatadog
tyamane
Azure Monitor Logで実現するモダンな管理手法
Azure Monitor Logで実現するモダンな管理手法
Takeshi Fukuhara
【BS4】時は来たれり。今こそ .NET 6 へ移行する時。
【BS4】時は来たれり。今こそ .NET 6 へ移行する時。
日本マイクロソフト株式会社
ストリーム処理を支えるキューイングシステムの選び方
ストリーム処理を支えるキューイングシステムの選び方
Yoshiyasu SAEKI
GraphQLのsubscriptionで出来ること
GraphQLのsubscriptionで出来ること
Shingo Fukui
Prometheus Operator 入門(Kubernetes Novice Tokyo #26 発表資料)
Prometheus Operator 入門(Kubernetes Novice Tokyo #26 発表資料)
NTT DATA Technology & Innovation
MQTTとAMQPと.NET
MQTTとAMQPと.NET
terurou
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Toru Makabe
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理
NTT DATA Technology & Innovation
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
Shin Ohno
分散トレーシング技術について(Open tracingやjaeger)
分散トレーシング技術について(Open tracingやjaeger)
NTT Communications Technology Development
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
Amazon Web Services Japan
はじめての datadog
はじめての datadog
Naoya Nakazawa
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
Yahoo!デベロッパーネットワーク
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
NTT DATA Technology & Innovation
GitLab から GitLab に移行したときの思い出
GitLab から GitLab に移行したときの思い出
富士通クラウドテクノロジーズ株式会社
ChatGPTのデータソースにPostgreSQLを使う(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)
ChatGPTのデータソースにPostgreSQLを使う(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
マルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのこと
Amazon Web Services Japan
VPCのアウトバウンド通信を制御するためにおさえておきたい設計ポイント
VPCのアウトバウンド通信を制御するためにおさえておきたい設計ポイント
Takuya Takaseki
BuildKitの概要と最近の機能
BuildKitの概要と最近の機能
Kohei Tokunaga
Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤
Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤
Amazon Web Services Japan
IoTタグで遊んでみよう
IoTタグで遊んでみよう
Yukimitsu Izawa
Introduction to AMQP Messaging with RabbitMQ
Introduction to AMQP Messaging with RabbitMQ
Dmitriy Samovskiy
More Related Content
What's hot
Azure Monitor Logで実現するモダンな管理手法
Azure Monitor Logで実現するモダンな管理手法
Takeshi Fukuhara
【BS4】時は来たれり。今こそ .NET 6 へ移行する時。
【BS4】時は来たれり。今こそ .NET 6 へ移行する時。
日本マイクロソフト株式会社
ストリーム処理を支えるキューイングシステムの選び方
ストリーム処理を支えるキューイングシステムの選び方
Yoshiyasu SAEKI
GraphQLのsubscriptionで出来ること
GraphQLのsubscriptionで出来ること
Shingo Fukui
Prometheus Operator 入門(Kubernetes Novice Tokyo #26 発表資料)
Prometheus Operator 入門(Kubernetes Novice Tokyo #26 発表資料)
NTT DATA Technology & Innovation
MQTTとAMQPと.NET
MQTTとAMQPと.NET
terurou
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Toru Makabe
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理
NTT DATA Technology & Innovation
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
Shin Ohno
分散トレーシング技術について(Open tracingやjaeger)
分散トレーシング技術について(Open tracingやjaeger)
NTT Communications Technology Development
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
Amazon Web Services Japan
はじめての datadog
はじめての datadog
Naoya Nakazawa
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
Yahoo!デベロッパーネットワーク
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
NTT DATA Technology & Innovation
GitLab から GitLab に移行したときの思い出
GitLab から GitLab に移行したときの思い出
富士通クラウドテクノロジーズ株式会社
ChatGPTのデータソースにPostgreSQLを使う(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)
ChatGPTのデータソースにPostgreSQLを使う(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
マルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのこと
Amazon Web Services Japan
VPCのアウトバウンド通信を制御するためにおさえておきたい設計ポイント
VPCのアウトバウンド通信を制御するためにおさえておきたい設計ポイント
Takuya Takaseki
BuildKitの概要と最近の機能
BuildKitの概要と最近の機能
Kohei Tokunaga
Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤
Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤
Amazon Web Services Japan
What's hot
(20)
Azure Monitor Logで実現するモダンな管理手法
Azure Monitor Logで実現するモダンな管理手法
【BS4】時は来たれり。今こそ .NET 6 へ移行する時。
【BS4】時は来たれり。今こそ .NET 6 へ移行する時。
ストリーム処理を支えるキューイングシステムの選び方
ストリーム処理を支えるキューイングシステムの選び方
GraphQLのsubscriptionで出来ること
GraphQLのsubscriptionで出来ること
Prometheus Operator 入門(Kubernetes Novice Tokyo #26 発表資料)
Prometheus Operator 入門(Kubernetes Novice Tokyo #26 発表資料)
MQTTとAMQPと.NET
MQTTとAMQPと.NET
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
分散トレーシング技術について(Open tracingやjaeger)
分散トレーシング技術について(Open tracingやjaeger)
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
はじめての datadog
はじめての datadog
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
GitLab から GitLab に移行したときの思い出
GitLab から GitLab に移行したときの思い出
ChatGPTのデータソースにPostgreSQLを使う(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)
ChatGPTのデータソースにPostgreSQLを使う(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)
マルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのこと
VPCのアウトバウンド通信を制御するためにおさえておきたい設計ポイント
VPCのアウトバウンド通信を制御するためにおさえておきたい設計ポイント
BuildKitの概要と最近の機能
BuildKitの概要と最近の機能
Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤
Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤
Viewers also liked
IoTタグで遊んでみよう
IoTタグで遊んでみよう
Yukimitsu Izawa
Introduction to AMQP Messaging with RabbitMQ
Introduction to AMQP Messaging with RabbitMQ
Dmitriy Samovskiy
Mqttで始めるIoT
Mqttで始めるIoT
Shintaro Hosoai
MQTTでオフィスハック with RasPi
MQTTでオフィスハック with RasPi
Masahiko Kubara
WebとIoTとMake
WebとIoTとMake
Hirotaka Niisato
OpenBlocks IoTで温湿度を可視化してみた
OpenBlocks IoTで温湿度を可視化してみた
Hideki Yanagihara
動かしながら学ぶMQTT
動かしながら学ぶMQTT
Eiji Yokota
Mqttの通信を見てみよう
Mqttの通信を見てみよう
Suemasu Takashi
Raspberry pi internet of things
Raspberry pi internet of things
catmoney
ワンコインでIot入門 第二章
ワンコインでIot入門 第二章
Makoto Takahashi
20150726 IoTってなに?ニフティクラウドmqttでやったこと
20150726 IoTってなに?ニフティクラウドmqttでやったこと
Daichi Morifuji
IoT時代を支えるプロトコルMQTT技術詳解
IoT時代を支えるプロトコルMQTT技術詳解
Naoto MATSUMOTO
デバイスからクラウドへ ~組み込みエンジニアと IoT
デバイスからクラウドへ ~組み込みエンジニアと IoT
Shin-ya Koga
Viewers also liked
(13)
IoTタグで遊んでみよう
IoTタグで遊んでみよう
Introduction to AMQP Messaging with RabbitMQ
Introduction to AMQP Messaging with RabbitMQ
Mqttで始めるIoT
Mqttで始めるIoT
MQTTでオフィスハック with RasPi
MQTTでオフィスハック with RasPi
WebとIoTとMake
WebとIoTとMake
OpenBlocks IoTで温湿度を可視化してみた
OpenBlocks IoTで温湿度を可視化してみた
動かしながら学ぶMQTT
動かしながら学ぶMQTT
Mqttの通信を見てみよう
Mqttの通信を見てみよう
Raspberry pi internet of things
Raspberry pi internet of things
ワンコインでIot入門 第二章
ワンコインでIot入門 第二章
20150726 IoTってなに?ニフティクラウドmqttでやったこと
20150726 IoTってなに?ニフティクラウドmqttでやったこと
IoT時代を支えるプロトコルMQTT技術詳解
IoT時代を支えるプロトコルMQTT技術詳解
デバイスからクラウドへ ~組み込みエンジニアと IoT
デバイスからクラウドへ ~組み込みエンジニアと IoT
Similar to ストリーム処理勉強会 大規模mqttを支える技術
20181019日経xTECH EXPO講演 | 今からでも遅くない!事例に学ぶIoT導入のための技術ポイント実践講座
20181019日経xTECH EXPO講演 | 今からでも遅くない!事例に学ぶIoT導入のための技術ポイント実践講座
SORACOM,INC
北海道Io tあるじゃん1 ネクステック
北海道Io tあるじゃん1 ネクステック
Norikatsu Oishi
AI_IoTを活用する企業のあり方
AI_IoTを活用する企業のあり方
Osaka University
IETF94 IoT関連WG報告
IETF94 IoT関連WG報告
Shoichi Sakane
要求開発アライアンス 9月定例会議
要求開発アライアンス 9月定例会議
Atsushi Takayasu
20180119_5_IoT Update_20180119
20180119_5_IoT Update_20180119
IoTビジネス共創ラボ
IoTデバイスデータ収集の難しい点
IoTデバイスデータ収集の難しい点
Tetsutaro Watanabe
ラズパイでIoTをやってみよう! | なぜ今IoTなのか?
ラズパイでIoTをやってみよう! | なぜ今IoTなのか?
SORACOM,INC
先駆者に学ぶ MLOpsの実際
先駆者に学ぶ MLOpsの実際
Tetsutaro Watanabe
センサーネットワークコンソーシアム(山口さん作成)
センサーネットワークコンソーシアム(山口さん作成)
CRI Japan, Inc.
IoT通信プラットフォーム「SORACOM」概要セミナー 〜IoTに必要な通信をセキュアに組み込むには〜
IoT通信プラットフォーム「SORACOM」概要セミナー 〜IoTに必要な通信をセキュアに組み込むには〜
SORACOM,INC
IoT系標準化の動き(メモ、2016年) (in Japanese)
IoT系標準化の動き(メモ、2016年) (in Japanese)
Toshihiko Yamakami
Tier Ⅳ Tech Meetup #2 - 自動運転を作るのはCloudシステムの集合体?? 活用技術を大解剖 -
Tier Ⅳ Tech Meetup #2 - 自動運転を作るのはCloudシステムの集合体?? 活用技術を大解剖 -
Tier_IV
IOT and Lean Manifacturing
IOT and Lean Manifacturing
Osaka University
hbstudy#88 5G+MEC時代のシステム設計
hbstudy#88 5G+MEC時代のシステム設計
VirtualTech Japan Inc.
151026 東工大授業「ロボット技術」資料
151026 東工大授業「ロボット技術」資料
Noriaki Ando
Azure IoT 最前線!~ Microsoft Ignite 2019での発表と直近アップデート総まとめ ~
Azure IoT 最前線!~ Microsoft Ignite 2019での発表と直近アップデート総まとめ ~
IoTビジネス共創ラボ
Sangyo2009 05
Sangyo2009 05
Akao Koichi
IoT/M2M展基調講演 - 「IoTビジネスの新潮流」 by SORACOM玉川 (Japan IT week 2017)
IoT/M2M展基調講演 - 「IoTビジネスの新潮流」 by SORACOM玉川 (Japan IT week 2017)
SORACOM,INC
Lt4 aws@loft #11 aws io-t for smart building
Lt4 aws@loft #11 aws io-t for smart building
Amazon Web Services Japan
Similar to ストリーム処理勉強会 大規模mqttを支える技術
(20)
20181019日経xTECH EXPO講演 | 今からでも遅くない!事例に学ぶIoT導入のための技術ポイント実践講座
20181019日経xTECH EXPO講演 | 今からでも遅くない!事例に学ぶIoT導入のための技術ポイント実践講座
北海道Io tあるじゃん1 ネクステック
北海道Io tあるじゃん1 ネクステック
AI_IoTを活用する企業のあり方
AI_IoTを活用する企業のあり方
IETF94 IoT関連WG報告
IETF94 IoT関連WG報告
要求開発アライアンス 9月定例会議
要求開発アライアンス 9月定例会議
20180119_5_IoT Update_20180119
20180119_5_IoT Update_20180119
IoTデバイスデータ収集の難しい点
IoTデバイスデータ収集の難しい点
ラズパイでIoTをやってみよう! | なぜ今IoTなのか?
ラズパイでIoTをやってみよう! | なぜ今IoTなのか?
先駆者に学ぶ MLOpsの実際
先駆者に学ぶ MLOpsの実際
センサーネットワークコンソーシアム(山口さん作成)
センサーネットワークコンソーシアム(山口さん作成)
IoT通信プラットフォーム「SORACOM」概要セミナー 〜IoTに必要な通信をセキュアに組み込むには〜
IoT通信プラットフォーム「SORACOM」概要セミナー 〜IoTに必要な通信をセキュアに組み込むには〜
IoT系標準化の動き(メモ、2016年) (in Japanese)
IoT系標準化の動き(メモ、2016年) (in Japanese)
Tier Ⅳ Tech Meetup #2 - 自動運転を作るのはCloudシステムの集合体?? 活用技術を大解剖 -
Tier Ⅳ Tech Meetup #2 - 自動運転を作るのはCloudシステムの集合体?? 活用技術を大解剖 -
IOT and Lean Manifacturing
IOT and Lean Manifacturing
hbstudy#88 5G+MEC時代のシステム設計
hbstudy#88 5G+MEC時代のシステム設計
151026 東工大授業「ロボット技術」資料
151026 東工大授業「ロボット技術」資料
Azure IoT 最前線!~ Microsoft Ignite 2019での発表と直近アップデート総まとめ ~
Azure IoT 最前線!~ Microsoft Ignite 2019での発表と直近アップデート総まとめ ~
Sangyo2009 05
Sangyo2009 05
IoT/M2M展基調講演 - 「IoTビジネスの新潮流」 by SORACOM玉川 (Japan IT week 2017)
IoT/M2M展基調講演 - 「IoTビジネスの新潮流」 by SORACOM玉川 (Japan IT week 2017)
Lt4 aws@loft #11 aws io-t for smart building
Lt4 aws@loft #11 aws io-t for smart building
More from Keigo Suda
20171105 go con2017_lt
20171105 go con2017_lt
Keigo Suda
スマートファクトリーを支えるIoTインフラをつくった話
スマートファクトリーを支えるIoTインフラをつくった話
Keigo Suda
Kafka logをオブジェクトストレージに連携する方法まとめ
Kafka logをオブジェクトストレージに連携する方法まとめ
Keigo Suda
Apache Kafka & Kafka Connectを に使ったデータ連携パターン(改めETLの実装)
Apache Kafka & Kafka Connectを に使ったデータ連携パターン(改めETLの実装)
Keigo Suda
基幹業務もHadoop(EMR)で!!のその後
基幹業務もHadoop(EMR)で!!のその後
Keigo Suda
Awsでつくるapache kafkaといろんな悩み
Awsでつくるapache kafkaといろんな悩み
Keigo Suda
Lt 私の○○遍歴教えるね これまで愛したキーボードたち
Lt 私の○○遍歴教えるね これまで愛したキーボードたち
Keigo Suda
基幹業務もHadoopで!! -ローソンにおける店舗発注業務へのHadoop + Hive導入と その取り組みについて-
基幹業務もHadoopで!! -ローソンにおける店舗発注業務へのHadoop + Hive導入と その取り組みについて-
Keigo Suda
Apache drillを業務利用してみる(までの道のり)
Apache drillを業務利用してみる(までの道のり)
Keigo Suda
More from Keigo Suda
(9)
20171105 go con2017_lt
20171105 go con2017_lt
スマートファクトリーを支えるIoTインフラをつくった話
スマートファクトリーを支えるIoTインフラをつくった話
Kafka logをオブジェクトストレージに連携する方法まとめ
Kafka logをオブジェクトストレージに連携する方法まとめ
Apache Kafka & Kafka Connectを に使ったデータ連携パターン(改めETLの実装)
Apache Kafka & Kafka Connectを に使ったデータ連携パターン(改めETLの実装)
基幹業務もHadoop(EMR)で!!のその後
基幹業務もHadoop(EMR)で!!のその後
Awsでつくるapache kafkaといろんな悩み
Awsでつくるapache kafkaといろんな悩み
Lt 私の○○遍歴教えるね これまで愛したキーボードたち
Lt 私の○○遍歴教えるね これまで愛したキーボードたち
基幹業務もHadoopで!! -ローソンにおける店舗発注業務へのHadoop + Hive導入と その取り組みについて-
基幹業務もHadoopで!! -ローソンにおける店舗発注業務へのHadoop + Hive導入と その取り組みについて-
Apache drillを業務利用してみる(までの道のり)
Apache drillを業務利用してみる(までの道のり)
ストリーム処理勉強会 大規模mqttを支える技術
1.
⼤規模MQTTを⽀える技術(のための相談) ストリームデータ処理技術勉強会 2017/8/4 Future Architect Inc, Keigo
Suda
2.
どういった構成で何がポイントとなったか ü どういった課題があったか ü どのように対応したか ü
MQTTにプロトコル仕様などは話しません 物流IoTのメッセージングの話
3.
* Technology Innovation
Group * ビッグデータユニット リーダー * 最近の専⾨ -> ストリーム処理のあれこれ 須⽥桂伍 (すだ けいご) @keigodasu
4.
もくじ l 全体の概要 l メッセージングの話 l
MQTTプロダクト選定の話 l これからの課題
5.
全体の概要
6.
全体の概要 l 物流系のIoTなシステム l トラックなど⾞両等から位置情報やイベント情報を収集するための仕組み l
クラウド側(AWS)からデバイスに対する制御処理もあり l 数⼗万デバイスからの連携
7.
システムの全体像 ローデータ配置先 ストリーム 集計・広範囲スキャン アーカイブデータ配置先 時系列データ 上り受付&プロトコル変換 全システム共通バス ジオデータ サービスAPI 下り制御処理 サービス間接続 MQTTS MQTTS MQTTS MQTTS フィールド側
クラウド側
8.
システムの全体像 ローデータ配置先 ストリーム 集計・広範囲スキャン アーカイブデータ配置先 時系列データ 上り受付&プロトコル変換 全システム共通バス ジオデータ サービスAPI 下り制御処理 サービス間接続 MQTTS MQTTS MQTTS MQTTS フィールド側
クラウド側 これから話すところ(メッセージング)
9.
メッセージングの話
10.
メッセージング部分の詳細 イベント/コマンドデータ受付 センサデータ受付 バイナリデータ格納ストレージ ブリッジアプリ ブリッジアプリ MQTT MQTT HTTPS HTTPS HTTPS MQTTS MQTTS メッセージバス ストリームエンジン ブローカーにMQTTからHTTPSへ変換し連 携するブリッジアプリケーションを配置 直近の連携されたメッセージデータを永続化MQTTS 時系列データ⽣成 ジオデータ⽣成 通知データ⽣成 利⽤形態/メンテナンス単位に ストリームアプリケーションはデプロイ センサストリーム イベントストリーム センサデータの連携 イベント/コマンドデータの連携 バイナリデータの連携 センサデータ イベントデータ コマンドデータ デバイスから定常的に発⽣するデータ デバイスの状態変化などイベントをトリガーに発⽣するデータ デバイスからのクラウド側へ要求を出す際に発⽣するデータ
11.
イベント/コマンドデータ受付 センサデータ受付 定常的に発⽣するセンサデータは、都度最新のデータ を取得する、時間をおいた再送で情報を補填可能で あるため、性能を重視しQoS=0(at most once) で連携 バイナリデータ格納ストレージ ブリッジアプリ ブリッジアプリ センサデータの連携 イベント/コマンドデータの連携 バイナリデータの連携 状態の変化などイベントをトリガーに発⽣するイベント データは、当該イベントに基づいてクラウド側での判断 及び制御処理が⾏わるため、確実性を重視し QoS=1(at
least once)で連携 画像などの⼀つのサイズが⼤きいバイナリデータは、 バッファリングを⾏いながら連携する必要があるため HTTP(S)でプロトコルの機能を利⽤し連携 MQTT MQTT HTTPS HTTPS HTTPS MQTT MQTT MQTT QoS=0 QoS=1 QoS=1 データ種毎に応じた到達保証 l 連携されるデータの種類や、処理特性に応じてメッセージ到達保証を調整 l ⼊り⼝から分けてしまう⽅が扱いやすい(エラー時の切り分けとか)
12.
クラウドからのフィールド制御 l 基本はQoS=1(at least
once)で連携し、アプリケーション側でのハンドリング l プロトコルで到達保証はほどほどに フィールドトリガー フェールドからのイベントデータ/コマンドデータをもとに、 クラウド側で判断処理が⾏われ、その結果をもとに フェールドへの制御処理が⾏われるパターン。 クラウドトリガー MQTT MQTTMQTT publish publish subscribe subscribe MQTT HTTP subscribe publish MQTT HTTP 1. イベントもしくはコマンドデータが発⽣ 2. データ内容に応じた処理を実施 3. 処理結果もしくは次アクションを⽣成4. 処理結果をより取得し次アクションへ 2. プラットフォームより通知を作成3. 通知内容をプラットフォームより取得 4. 処理結果をもとにした次アクションへ (例:オブジェクトストレージからのダウンロード) 1. プラットフォームより通知処理が必要な処理が発⽣ (例:エッジからのバイナリダウンロード処理) クラウド側からエッジへ通知処理が⾏われ、その内容を もとにデバイスが次アクションを実⾏するパターン。 QoS=1 QoS=1 QoS=1 QoS=1 QoS=1 QoS=1 MQTT
13.
MQTT→Kinesisへのブリッジアプリケーション l ブリッジアプリはMQTTトピックをサブスクライブし、Kinesis Producer Library(以下KPL)を利⽤してKinesiへProduce処理を実施 Subscriber
KPL ブリッジアプリケーション MQTT HTTPS Subscribe Produce Topic
14.
ブリッジのシーケンス Subscirber KPLMQTTブローカー Kinesis Subscirber
KPLMQTTブローカー Kinesis データをSubscribe KPLへメッセージをPut KPLへメッセージをPut KPLへメッセージをPut データをSubscribe データをSubscribe メッセージをバッファリング メッセージに集約してKinesisへProduce ブリッジアプリケーション
15.
どのようにスケーラビリティを確保する? l MQTTブローカーにはクラスタリング機能を備えているものも多いが、あくまで内部 ルーティング,フォワード機能であることが多い l Apache
Kafkaと同じノリで処理性能をスケールできない(できるものもある?) MQTTブローカー#2 Publisher MQTTブローカー#3MQTTブローカー#1 topic/a Topic/b Topic/c Topic/aにPublish forward
16.
じゃあ・・・ l トピックをシャーディングする?(some-topic/1, some-topic/2
・・・) l クライアント側でシャーディングを意識する必要あり。。。 l クライアント側はロジックをあまり持たせたくない(不特定多数なので変更時の対応・・・)
17.
ストレートレスに並べていく ブリッジアプリ MQTTブローカー MQTTブローカー MQTTブローカー 同⼀名の トピック トピック 同⼀キュー名で全ブローカーにキューを作成 どのノードにもパブリッシュできるようにする ローカルのキューのみをサブスクライブし、 KinesisへメッセージをProduce オートスケーリング時はトピックキュー情報を取得し、 同⼀の構成に初期化後参加する 構成情報管理 MQTT 全システム共通バス ブリッジアプリトピック ブリッジアプリトピック
18.
オートスケール時のステップ 1. EC2起動 2.
初期化 3. スケールアウト 4. スケールイン 1 2 1 2 1 2 負荷状況をもとにアラームが発⽕し、 オートスケーリング(スケールアウト)が発動 EC2が新たに起動し、Lifecycle hook発⽕ 1 2 MQTTブローカー上に存在するキュー情報を取得 取得したキュー情報をもとに同⼀のキューを作成 1 キュー作成後、ELBにアタッチされ処理を開始 1 2 負荷状況をもとにアラームが発⽕し、 オートスケーリング(スケールイン)が発動 EC2がELBから外され、Lifecycle hookが発⽕ 3 Lifecycle hookでキュー内の未処理データを 全てKafkaへProduce後、Terminate 2 1 1 3
19.
MQTTプロダクト選定
20.
プロダクト選定にあたっての⽐較ポイント l ⽐較の際によく取り上げらえるポイント l 対応しているMQTTバージョン l
サポートされているQoSレベル l SSL/TLS対応 l Retain対応 l Will対応 l WebSocket対応 l クラスタリング機能 etc
21.
実際のところ(今回の場合) l よく違いがでるのはサポートするQoSレベルとクラスタリング可能か、それ以外はだいたいサポートされて いることが多い(と思う)。 l Exactly
Onceの保証はそもそも難しい。(メッセージング/ストリーム処理でいつも話題にあがるあれ) l 前述したようにデータ種や処理に応じてメッセージ到達保証はどのみち妥協しなくちゃいけない。 l となると、QoSは0,1さえサポートされていれば⼗分で、クラスタリング可能かどうかは前述したとおり重 要ではなかった。(リトライ/冪等/アプリで重複排除・・・)
22.
選定候補 l 実績、情報が多いものから優先的に選択(ただでさえ情報少ないのに・・・) l スクラッチも考えたが、ただでさえ情報が少ないなか冒険かと思い⼀旦除外 vs
23.
負荷実施条件を記載 l メッセージサイズ 1KB l
クライアント数 1,000 l リクエスト数 10req/sec(1クライアントあたり) l Retainはなし l Gatling + MQTTプラグイン+ ECSでクライアント数を調整(すごい便利!!) MQTT MQTT MQTT MQTT MQTT
24.
実施結果 ブローカー インスタンスタイプ QoS=0 QoS=1 CPU
Ave 99th CPU Ave 99th c4.large (2 vCPU) 70% 0msec 1msec 70% 100msec 639msec c4.xlarge (4 vCPU) 20% 0msec 1msec 20% 4msec 4msec c4.xlarge (2 vCPU) 100% 終わらず 打ち切り 終わらず 打ち切り 100% 終わらず 打ち切り 終わらず 打ち切り c4.xlarge (4 vCPU) 100% 0msec 1msec 100% 999msec 4,753msec
25.
それぞれの特徴(QoS=0の時) Mosquitto(c4.large) RabbitMQ(c4.large) 処理がはけきれず途中で打ち切り
26.
RabbitMQのMQTTプラグイン l MQTTプラグインは、RabbitMQのExchange/Queueの仕組みの上で動く l Exchangeでの配送⽅法はTopic l
この機構が原因?調査しきれず。。。
27.
いろいろプロダクトいじってみてのつらみ l ノウハウ少ない。。(本当にこれでいいのか常に不安) l チューニングポイントのあたりをつけるところから⼿探りでスタート l
詳細な事例も少ないので構成パターンの検討も⼿探りでスタート l パラメータが少ない。。 l いざパラメーターチューニングをはじめだすと設定できる箇所が少ない l ⼿持ちが少なすぎて性能が頭打ちになった時に毎回詰んだ気持ちになる
28.
課題とまとめ
29.
結構⼼配。。。 l 暖気なしELBがどれぐらい安定してリクエスト受け切れるか。。。 l ELBが暖気なし状態でさばける具合の探りが必要 l
IoTってアクセスピーク特性ってあるようなないような
30.
ありがとうございました!!
Download now