Maison développement back-end Golang Créez des microservices à l'aide du framework Web Iris et de Docker de Golang

Créez des microservices à l'aide du framework Web Iris et de Docker de Golang

Jun 24, 2023 pm 01:11 PM
docker golang iris框架

Avec le développement continu des applications Internet, l'architecture des microservices devient un modèle d'architecture de plus en plus populaire. L'architecture des microservices conçoit les applications en petits services indépendants les uns des autres et pouvant être mis à jour et déployés régulièrement. Avec le développement du cloud computing, du big data et de l’Internet des objets, l’application de l’architecture de microservices va devenir de plus en plus répandue.

Cet article expliquera comment utiliser le framework Web de Golang, Iris et Docker, pour créer des microservices.

1. Introduction à Iris

Iris est un framework web écrit en Go Il est créé et maintenu par l'équipe Kataras. Le code d'Iris est concis et facile à lire, offre d'excellentes performances, prend en charge les styles de programmation asynchrone et synchrone et prend en charge les architectures MVC et RESTful. Iris est un framework Web émergent qui vise à devenir le « framework Web de nouvelle génération ».

2. Introduction à Docker

Docker est une plateforme de conteneurisation open source qui permet aux développeurs de créer, déployer et exécuter rapidement des applications. Grâce à Docker, vous pouvez inclure votre application et toutes ses dépendances dans un seul conteneur, ce qui rend le déploiement d'applications plus facile et plus fiable. Docker améliore non seulement la portabilité des applications, mais réduit également l'utilisation des ressources d'exécution et les conflits.

3. Utilisez Iris et Docker pour créer des microservices

Dans cet article, nous présenterons comment utiliser Iris et Docker pour créer un microservice simple. Le service fournira deux points de terminaison API : /hello et /time . Le point de terminaison /hello renverra le message « Hello, World ! » et le point de terminaison /time renverra l’heure actuelle.

  1. Créer un projet Golang

Tout d'abord, créez un projet Golang. Créez un projet Iris à l'aide de la commande suivante :

$ go get -u github.com/kataras/iris/v12
Copier après la connexion

Assurez-vous que les variables d'environnement sont définies dans l'espace de travail Go.

Créez le fichier main.go et ajoutez le code suivant :

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"))
}
Copier après la connexion

Dans main.go, nous utilisons iris.New() pour créer une nouvelle instance d'application Iris et utilisons la méthode app.Get() pour définir deux routeurs différents . Le point de terminaison /hello du routeur renverra le message « Hello, World ! » et le point de terminaison /time renverra l'heure actuelle. Enfin, exécutez la méthode app.Run() pour démarrer le service et écoutez les connexions sur le port par défaut 8080.

  1. Créer un Dockerfile

Ensuite, créez un fichier appelé Dockerfile. Un Dockerfile est un fichier texte qui contient une série d'instructions permettant de créer une image Docker.

Ajoutez le code suivant dans le 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"]
Copier après la connexion

Ce Dockerfile construira notre application basée sur l'image Golang 1.16.3-alpine3.13. Nous avons d'abord mis à jour le package d'installation Alpine3.13 et ajouté les packages bash, git et openssh requis. Ensuite, nous définirons le répertoire de travail, copierons notre code d'application dans le répertoire de travail et téléchargerons les dépendances. Enfin, nous exécutons la commande go build pour créer le fichier exécutable binaire et copions le fichier exécutable binaire dans l'image Alpine3.13 pour créer l'image Docker finale.

  1. Créez et exécutez le conteneur

Dans le répertoire Dockerfile, utilisez la commande suivante pour créer l'image Docker :

$ docker build -t my-app .
Copier après la connexion

Cette commande créera une image Docker nommée my-app. Nous pouvons utiliser la commande suivante pour exécuter un conteneur Docker :

$ docker run -p 8080:8080 my-app
Copier après la connexion

Cette commande démarrera le conteneur et mappera le port par défaut 8080 au port 8080 de l'hôte à l'aide de l'indicateur -p. Avec l'API publique de l'application exécutée dans le conteneur, nous pouvons tester cette API à l'aide de la commande suivante :

$ curl http://localhost:8080/hello
{"message":"Hello, World!"}
$ curl http://localhost:8080/time
{"time":"2021-05-27T14:14:22+08:00"}
Copier après la connexion

Maintenant, nous avons réussi à créer un microservice simple en utilisant Iris et Docker. Dans les applications réelles, nous pouvons diviser le service en plusieurs microservices pour mieux gérer et faire évoluer l'application.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment lire et écrire des fichiers en toute sécurité avec Golang ? Comment lire et écrire des fichiers en toute sécurité avec Golang ? Jun 06, 2024 pm 05:14 PM

Lire et écrire des fichiers en toute sécurité dans Go est crucial. Les directives incluent : Vérification des autorisations de fichiers Fermeture de fichiers à l'aide de reports Validation des chemins de fichiers Utilisation de délais d'attente contextuels Le respect de ces directives garantit la sécurité de vos données et la robustesse de vos applications.

Comment configurer le pool de connexions pour la connexion à la base de données Golang ? Comment configurer le pool de connexions pour la connexion à la base de données Golang ? Jun 06, 2024 am 11:21 AM

Comment configurer le pool de connexions pour les connexions à la base de données Go ? Utilisez le type DB dans le package base de données/sql pour créer une connexion à la base de données ; définissez MaxOpenConns pour contrôler le nombre maximum de connexions simultanées ; définissez MaxIdleConns pour définir le nombre maximum de connexions inactives ; définissez ConnMaxLifetime pour contrôler le cycle de vie maximum de la connexion ;

Enseignement du nœud PI: Qu'est-ce qu'un nœud PI? Comment installer et configurer le nœud PI? Enseignement du nœud PI: Qu'est-ce qu'un nœud PI? Comment installer et configurer le nœud PI? Mar 05, 2025 pm 05:57 PM

Explication détaillée et guide d'installation pour les nœuds de pignon Cet article introduira l'écosystème de pignon en détail - nœuds PI, un rôle clé dans l'écosystème de pignon et fournir des étapes complètes pour l'installation et la configuration. Après le lancement du réseau de test de la blockchain pèse, les nœuds PI sont devenus une partie importante de nombreux pionniers participant activement aux tests, se préparant à la prochaine version du réseau principal. Si vous ne connaissez pas encore Pinetwork, veuillez vous référer à ce qu'est Picoin? Quel est le prix de l'inscription? PI Utilisation, exploitation minière et sécurité. Qu'est-ce que Pinetwork? Le projet Pinetwork a commencé en 2019 et possède sa pièce exclusive de crypto-monnaie PI. Le projet vise à en créer un que tout le monde peut participer

Comment installer Deepseek Comment installer Deepseek Feb 19, 2025 pm 05:48 PM

Il existe de nombreuses façons d'installer Deepseek, notamment: Compiler à partir de Source (pour les développeurs expérimentés) en utilisant des packages précompilés (pour les utilisateurs de Windows) à l'aide de conteneurs Docker (pour le plus pratique, pas besoin de s'inquiéter de la compatibilité), quelle que soit la méthode que vous choisissez, veuillez lire Les documents officiels documentent soigneusement et les préparent pleinement à éviter des problèmes inutiles.

Pourquoi une erreur se produit-elle lors de l'installation d'une extension à l'aide de PECL dans un environnement Docker? Comment le résoudre? Pourquoi une erreur se produit-elle lors de l'installation d'une extension à l'aide de PECL dans un environnement Docker? Comment le résoudre? Apr 01, 2025 pm 03:06 PM

Causes et solutions pour les erreurs Lors de l'utilisation de PECL pour installer des extensions dans un environnement Docker Lorsque nous utilisons un environnement Docker, nous rencontrons souvent des maux de tête ...

Comment enregistrer les données JSON dans la base de données dans Golang ? Comment enregistrer les données JSON dans la base de données dans Golang ? Jun 06, 2024 am 11:24 AM

Les données JSON peuvent être enregistrées dans une base de données MySQL à l'aide de la bibliothèque gjson ou de la fonction json.Unmarshal. La bibliothèque gjson fournit des méthodes pratiques pour analyser les champs JSON, et la fonction json.Unmarshal nécessite un pointeur de type cible pour désorganiser les données JSON. Les deux méthodes nécessitent la préparation d'instructions SQL et l'exécution d'opérations d'insertion pour conserver les données dans la base de données.

Golang Framework vs Go Framework : comparaison de l'architecture interne et des fonctionnalités externes Golang Framework vs Go Framework : comparaison de l'architecture interne et des fonctionnalités externes Jun 06, 2024 pm 12:37 PM

La différence entre le framework GoLang et le framework Go se reflète dans l'architecture interne et les fonctionnalités externes. Le framework GoLang est basé sur la bibliothèque standard Go et étend ses fonctionnalités, tandis que le framework Go se compose de bibliothèques indépendantes pour atteindre des objectifs spécifiques. Le framework GoLang est plus flexible et le framework Go est plus facile à utiliser. Le framework GoLang présente un léger avantage en termes de performances et le framework Go est plus évolutif. Cas : gin-gonic (framework Go) est utilisé pour créer l'API REST, tandis qu'Echo (framework GoLang) est utilisé pour créer des applications Web.

Comment trouver la première sous-chaîne correspondant à une expression régulière Golang ? Comment trouver la première sous-chaîne correspondant à une expression régulière Golang ? Jun 06, 2024 am 10:51 AM

La fonction FindStringSubmatch recherche la première sous-chaîne correspondant à une expression régulière : la fonction renvoie une tranche contenant la sous-chaîne correspondante, le premier élément étant la chaîne entière correspondante et les éléments suivants étant des sous-chaînes individuelles. Exemple de code : regexp.FindStringSubmatch(text,pattern) renvoie une tranche de sous-chaînes correspondantes. Cas pratique : Il peut être utilisé pour faire correspondre le nom de domaine dans l'adresse email, par exemple : email:="user@example.com", pattern:=@([^\s]+)$ pour obtenir la correspondance du nom de domaine [1].

See all articles