Maison >développement back-end >Golang >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.
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
Cela fonctionne bien, mais nous devons maintenant partager du code entre s1
和 s2
- 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
的同级目录)并将公共代码放在那里 - 但是在编译 s1
和 s2
, comment vais-je récupérer le code De là?
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
Il y a aussi un go.mod
qui commence comme :
module mymodule
Si common/common.go
ressemble à ceci :
package common func commonfunction() string { return "this is a common function" }
Puis dans le module services/s1/main.go
中,可以导入common
:
package main import ( "mymodule/common" "fmt" ) func main() { res := common.commonfunction() fmt.println(res) }
Vous construirez le service s1
comme ceci :
go build ./services/s1
Construire s2
Similaire à :
go build ./services/s2
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!