インターネット アプリケーションの継続的な開発に伴い、マイクロサービス アーキテクチャはますます人気のあるアーキテクチャ モデルになってきています。マイクロサービス アーキテクチャでは、アプリケーションを互いに独立した小さなサービスに設計し、定期的に更新してデプロイできます。クラウド コンピューティング、ビッグ データ、モノのインターネットの発展に伴い、マイクロサービス アーキテクチャの適用はますます普及するでしょう。
この記事では、Golang の Web フレームワークである Iris と Docker を使用してマイクロサービスを構築する方法を紹介します。
1. Iris の概要
Iris は Go で書かれた Web フレームワークで、Kataras チームによって作成および保守されています。 Iris のコードは簡潔で読みやすく、優れたパフォーマンスを備え、非同期および同期プログラミング スタイルをサポートし、MVC と RESTful アーキテクチャの両方をサポートします。 Iris は、「次世代 Web フレームワーク」を目指す新興 Web フレームワークです。
2. Docker の概要
Docker は、開発者がアプリケーションを迅速に作成、デプロイ、実行できるようにするオープン ソースのコンテナ化プラットフォームです。 Docker を使用すると、アプリケーションとそのすべての依存関係を 1 つのコンテナーに含めることができるため、アプリケーションのデプロイがより簡単かつ信頼性が高くなります。 Docker はアプリケーションの移植性を向上させるだけでなく、ランタイム リソースの使用量と競合も削減します。
3. Iris と Docker を使用してマイクロサービスを構築する
この記事では、Iris と Docker を使用して簡単なマイクロサービスを構築する方法を紹介します。このサービスは、 /hello と /time の 2 つの API エンドポイントを提供します。 /hello エンドポイントは「Hello, World!」メッセージを返し、/time エンドポイントは現在時刻を返します。
まず、Golang プロジェクトを作成します。次のコマンドを使用して Iris プロジェクトを作成します。
$ go get -u github.com/kataras/iris/v12
環境変数が Go ワークスペースに設定されていることを確認します。
main.go ファイルを作成し、次のコードを追加します:
package main import ( "github.com/kataras/iris/v12" "time" ) func main() { app := iris.New() app.Get("/hello", func(ctx iris.Context) { ctx.JSON(iris.Map{"message": "Hello, World!"}) }) app.Get("/time", func(ctx iris.Context) { ctx.JSON(iris.Map{"time": time.Now().Format(time.RFC3339)}) }) app.Run(iris.Addr(":8080")) }
main.go では、iris.New() を使用して新しい Iris アプリケーション インスタンスを作成し、アプリを使用します。 () メソッドは 2 つの異なるルーターを定義します。ルーターの /hello エンドポイントは「Hello, World!」メッセージを返し、/time エンドポイントは現在時刻を返します。最後に、app.Run() メソッドを実行してサービスを開始し、デフォルトのポート 8080 で接続を待機します。
次に、Dockerfile というファイルを作成します。 Dockerfile は、Docker イメージを構築するための一連の手順が含まれるテキスト ファイルです。
Dockerfile に次のコードを追加します。
FROM golang:1.16.3-alpine3.13 AS build RUN apk update && apk upgrade && apk add --no-cache bash git openssh WORKDIR /go/src/app COPY . . RUN go get -d -v ./... RUN go install -v ./... RUN go build -o /usr/local/bin/app FROM alpine:3.13 COPY --from=build /usr/local/bin/app /usr/local/bin/app ENTRYPOINT ["/usr/local/bin/app"]
この Dockerfile は、Golang 1.16.3-alpine3.13 イメージに基づいてアプリケーションを構築します。まず、Alpine3.13 インストール パッケージを更新し、必要な bash、git、openssh パッケージを追加しました。次に、作業ディレクトリを定義し、アプリケーション コードを作業ディレクトリにコピーして、依存関係をダウンロードします。最後に、 go build コマンドを実行してバイナリ実行可能ファイルをビルドし、そのバイナリ実行可能ファイルを Alpine3.13 イメージにコピーして、最終的な Docker イメージを作成します。
Dockerfile ディレクトリで、次のコマンドを使用して Docker イメージを構築します:
$ docker build -t my-app .
このコマンドはコンテナを作成しますmy- アプリの Docker イメージという名前。次のコマンドを使用して Docker コンテナを実行できます。
$ docker run -p 8080:8080 my-app
このコマンドはコンテナを起動し、-p フラグを使用してデフォルトのポート 8080 をホストの 8080 ポートにマップします。コンテナー内でアプリケーションのパブリック API を実行すると、次のコマンドを使用してこの API をテストできます:
$ curl http://localhost:8080/hello {"message":"Hello, World!"} $ curl http://localhost:8080/time {"time":"2021-05-27T14:14:22+08:00"}
これで、Iris と Docker を使用して単純なマイクロサービスを正常に作成できました。実際のアプリケーションでは、サービスを複数のマイクロサービスに分割して、アプリケーションの管理と拡張を適切に行うことができます。
以上がGolang の Web フレームワーク Iris フレームワークと Docker を使用してマイクロサービスを構築するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。