トークハウスファミリーに参加しますか? | WeBRTCベースのピアツーピア音声、ビデオ通話、メッセージングWebアプリのMernStackを使用してビルド
Express、TypeScript、Nats-Streaming、next.jsを使用して作成されたイベント駆動型の非同期通信ベースのマイクロサービスArchitectured e-Commerceアプリ
これは、マイクロサービスアーキテクチャに基づいて、市内で行われているさまざまなライブや楽しいイベントのチケットを売買するための電子商取引ベースのWebアプリです。アプリは、イベントバスを介してイベントを公開することで互いに話し合う複数の個別のサービスに分類されています。各サービスは、Auth Service Handles認証、注文サービスの注文、支払いサービスを実装するなど、アプリの特定の機能の処理と実装を担当します。ユーザーの支払い、およびこれらのすべてのサービスは、イベントバス(NATSストリーミング)を介して非同期的に動作し、非同期に通信します。
Microservicesアーキテクチャを使用して、Monoloithパターンに依存しないと、アプリがより耐久性があり、フォールトトレラントで高度に利用可能になり、アプリのアップ時間が増加します。したがって、サービスの1つがクラッシュした場合、アプリの他の部分はまだ機能し、ユーザーが利用できるようになります。マイクロサービスと分散システムは、最新のソフトウェアとバックエンドエンジニアリングの中心です。
Next.jsExpress.js 、バックエンドの構築に使用されますMongodbMongooseTypescript 、バックエンドは、ヒントなしでイベントの数が流れている場合に得られる頭痛を防ぐために、完全にタイプスクリプトで記述されていますStripeJest and SupertestDockerKubernetesSkaffoldコマンドラインツール。 KubernetesとさまざまなKubernetesサービスと展開と展開の操作と管理をはるかに簡単にします。NATS Streaming 、さまざまなサービスによって放出されるイベントを公開および処理するためのイベントバスまたはメッセージキューとして使用されます。Bull.jsは、高速で堅牢なキューシステムです。支払いの有効期限タイマーを実装するために使用されます。このアプリは、アプリの特定の機能と機能を処理および実装する7つのサービスに分割されています。
auth 、アプリの認証と承認全体を処理します。 JWTおよびCookieベースの認証が使用されます。expiration 、支払い有効期限タイマーを処理して、指定された時間枠内でユーザーが支払うことを確認します。orderspaymentstickets (作成、更新、フェッチ)。この電子商取引アプリは、製品を販売する代わりに、市内で行われているさまざまなライブイベントのチケットを販売しています。commonすべての一般的な機能は、異なるサービスで共有されている他のミドルウェアやその他のミドルウェアや機能がグループ化されています。このサービスはNPMパッケージとして公開され、使用する他のサービスにインストールされます。client 、アプリのフロントエンドを処理および実装します。infra 、アプリを実行する実行を実行するすべてのKubernetes展開およびサービス(.yaml)ファイルを管理します各サービス、MogongoDBデータベース、およびNATSストリーミングサーバーは、DockerコンテナとしてDockerizedです。 Docker Conatinersは、Infraディレクトリ内のそれぞれのKubernetes Deployment.yamlファイルによって管理および調整されます。異なるKuberentesの展開間の通信は、Service ObjectTypeによって管理されます。最後に、Ingress-Nginx(Nginxを使用したKubernetesのIngressコントローラー)をリバースプロキシとして使用し、ロードバランサーを使用して、 ticketing.devの下でそれぞれのサービスにプロキシまたは直接着信要求を使用します。 Skaffoldは、Skaffold.yamlファイルを使用する単一のコマンドskaffold devを使用して、すべてのKubernetesの展開とサービスを稼働させるために使用されます。
このプロジェクトをローカルマシンで稼働させることは、悪名高いdfficultタスクです。 DockerとKubernetesの生態系の知識が必要です。あなたがまだ挑戦のために起きている場合、またはあなたが人生を持っていない場合は、それを機能させてみてください。 Docker、Kubernetes、Skaffoldがインストールされていることを確認してください。必要な環境変数を設定し、次のコマンドを実行します。
skaffold dev
ブームアプリは稼働し、追加のセットアップと依存関係は必要ありません。
Skaffoldによって展開されたリソースを削除し、すべての展開、サービス、コンテナの実行を停止する
skaffold delete
あなたが人生を持っていない場合にのみ、ローカルで実行してテストしてみてください。そうでなければ、私はあなたがあなたの頭を掻くのを責める人ではありませんか?このマイクロサービスを理解しようとしている間、イベント主導のコミュニケーションの混乱はサービスを提供しますか?