2017-10-14 29 views
1

私はかなり単純ではありますが、負荷分散されrdsデータベースとs3ストレージを使用するスプリングブートでRESTマイクロサービスを構築しました。したがって、私のサービスはステートレスなので、データベースとストレージのスケーリングはawsクラウドで管理されます。PHP - DBとビジネスロジックがスケーラブルなREST APIの背後にある場合のWebサイトのスケーリング

セッションは、ステートレスになり、アクセストークンによって管理されます。ユーザーは2つの異なるマシンからログインすることができ、サービスは「知らないか気にしません」。

私のマイクロサービスはすべてJavaで書かれていて、いくつかの理由からPHP SymfonyフレームワークにフロントエンドWebクライアントを書いています。なぜなら、できるだけawsから1つ少ないサービスを保ちたいからで、 PHPのアクセシビリティとコスト(jvmsやクラウドサービスのホスティングを比較するとかなり高価です)。

私が説明した状況では、すべてのアクション(dbコールとビジネスロジック)がAPIゲートウェイを介して接続されたスケーラブルで負荷分散されたサービスで行われる場合、このアプローチには特に問題があります。予想以上に多くのトラフィックが得られれば、それ以上の問題はありますか?

経験のある人からのアドバイスは本当に感謝しています。

答えて

0

私はあなたのシステムにどのようにマッチする問題がありません。しかし、いくつかの注意を払う価値があると思う:

  • バランスベットウィンあなたのmircoservice。負荷(データベース、RAM)のバランスをとる必要があります。
  • ロガーサービス(kibanaまたはgraylog)を作成する必要があります。一度渡れば、あなたはすぐにproblevを特定することができないからです。私はlogserverを持っていなかった時には、大胞子嚢に多くの問題があります。
  • システム内のすべてのリクエストログ。
  • お使いのシステムのユーザキャッシュが、そのための高速ストアを使用する(RedisMemcached
  • Symfony PRODにおけるキャッシュ(および:)それを明確foggetしていない)自体を持っています。
  • Symfonyは素晴らしいフレームワークです。しかし、エントリーの閾値は大きいです。
  • Symfonyは、バンドル上でロジック部分を分割することができます。バンドル - symfonyの主なアイデアです。
  • symfonyのサービスメインparthも。
関連する問題