ホームページ  >  記事  >  バックエンド開発  >  Golang の Web フレームワーク Iris フレームワークと Docker を使用してマイクロサービスを構築する

Golang の Web フレームワーク Iris フレームワークと Docker を使用してマイクロサービスを構築する

WBOY
WBOYオリジナル
2023-06-24 13:11:51808ブラウズ

インターネット アプリケーションの継続的な開発に伴い、マイクロサービス アーキテクチャはますます人気のあるアーキテクチャ モデルになってきています。マイクロサービス アーキテクチャでは、アプリケーションを互いに独立した小さなサービスに設計し、定期的に更新してデプロイできます。クラウド コンピューティング、ビッグ データ、モノのインターネットの発展に伴い、マイクロサービス アーキテクチャの適用はますます普及するでしょう。

この記事では、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 エンドポイントは現在時刻を返します。

  1. Golang プロジェクトの作成

まず、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 で接続を待機します。

  1. Dockerfile の作成

次に、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 イメージを作成します。

  1. コンテナの構築と実行

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。