構想 - japankun/bbs.jpnkn.com GitHub Wiki
長期的な目標
中期的な目標
バックエンドをMQTTベースに変えたい。
なぜ?単一サーバーPHP+Apache+Nginx構成では限界があると思っている。
HTTP/HTTPSを処理するフロントエンド、つまり読み出しの性能はリバースプロキシやロードバランサーで余裕を作ることができる。ではバックエンドサーバーも簡単に増やせるかというと、現在はマスターデータがローカルファイルシステムを利用しているため制約が生じ、分割ができない状態になっている。
現状から性能をスケール可能にするには根本的な解決が必要であり、基幹部分をMQTTに置き換えるのが適当だと考える。HTTP/HTTPSの読み込み部分は何らかのファイルシステムを経て読み出し、書き込み部分は処理した内容をMQTTサーバーに投げることで性能の余裕を簡単に作れる。2chの考えで言うところのbbs.cgi/bbsdのような関係性。
- MQTTで受信した書き込みデータをS3のようなファイルシステムに保存する。
- 保存した書き込みデータはフロントがS3のようなファイルシステムから読み出す。
- HTTP/HTTPSのフロントエンドにロードバランサーを入れる。
- MQTTサーバーは[0-9]{1}.mqtt.jpnkn.comのようにする。
- これで全部重いみたいな自体が避けれると思う。