Maison > développement back-end > Golang > le corps du texte

Go : Disposition du référentiel pour les microservices avec code partagé

王林
Libérer: 2024-02-09 09:33:28
avant
795 Les gens l'ont consulté

Go : Disposition du référentiel pour les microservices avec code partagé

Go est un langage de programmation puissant qui est devenu de plus en plus populaire dans l'architecture des microservices ces dernières années. Sa simplicité, son efficacité et sa simultanéité le rendent idéal pour créer des applications hautes performances. Lors de la création de microservices avec Go, la disposition du référentiel est une considération importante. Dans cet article, PHP Editor Banana présentera une présentation de référentiel de microservices avec du code partagé pour vous aider à mieux organiser et gérer votre code.

Contenu des questions

Nous avons récemment commencé à utiliser go pour développer de nouveaux microservices. Chaque microservice est un module go et nous les gérons comme un référentiel unique :

/
  services/
    s1/
      go.mod
      main.go
    s2/
      go.mod
      main.go
Copier après la connexion

Cela fonctionne bien, mais nous devons maintenant partager du code entre s1s2 - certaines structures utilisées par les deux services, les fonctions téléchargées sur s3, etc.

Quelle est la bonne façon de gérer cette situation ? Idéalement, j'aurais un répertoire common (un frère de services) à la racine du référentiel et j'y mettrais le code commun - mais lors de la compilation common 目录(services 的同级目录)并将公共代码放在那里 - 但是在编译 s1s2, comment vais-je récupérer le code De là?

Solution de contournement

Je pense que ce que vous demandez est en réalité simplement "Comment créer une application Go pour générer plusieurs binaires ? ".

Vous pouvez déplacer go.mod vers le répertoire de niveau supérieur pour renommer afin d'obtenir la disposition suivante :

.
├── common
│   └── common.go
├── go.mod
└── services
    ├── s1
    │   └── main.go
    └── s2
        └── main.go
Copier après la connexion

Il y a aussi un go.mod qui commence comme :

module mymodule
Copier après la connexion

Si common/common.go ressemble à ceci :

package common

func commonfunction() string {
    return "this is a common function"
}
Copier après la connexion

Puis dans le module services/s1/main.go中,可以导入common :

package main

import (
        "mymodule/common"
        "fmt"
)

func main() {
        res := common.commonfunction()
        fmt.println(res)
}
Copier après la connexion

Vous construirez le service s1 comme ceci :

go build ./services/s1
Copier après la connexion

Construire s2 Similaire à :

go build ./services/s2
Copier après la connexion

Vous disposerez généralement d'un niveau supérieur makefile pour créer automatiquement plusieurs services.

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!

Étiquettes associées:
source:stackoverflow.com
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!