>  기사  >  백엔드 개발  >  Go: 공유 코드가 있는 마이크로서비스를 위한 저장소 레이아웃

Go: 공유 코드가 있는 마이크로서비스를 위한 저장소 레이아웃

王林
王林앞으로
2024-02-09 09:33:28792검색

Go: 공유 코드가 있는 마이크로서비스를 위한 저장소 레이아웃

Go는 최근 몇 년 동안 마이크로서비스 아키텍처에서 점점 인기를 얻고 있는 강력한 프로그래밍 언어입니다. 단순성, 효율성 및 동시성으로 인해 고성능 애플리케이션을 구축하는 데 이상적입니다. Go로 마이크로서비스를 구축할 때 저장소의 레이아웃은 중요한 고려 사항입니다. 이 기사에서 PHP Editor Banana는 공유 코드가 포함된 마이크로서비스 저장소 레이아웃을 소개하여 코드를 더 잘 구성하고 관리하는 데 도움을 줍니다.

질문 내용

저희는 최근 새로운 마이크로서비스를 개발하기 위해 go를 사용하기 시작했습니다. 각 마이크로서비스는 Go 모듈이며 우리는 이를 단일 저장소로 관리합니다.

으아악

이것은 잘 작동하지만 이제 s1s2 두 서비스에서 사용되는 일부 구조, s3에 업로드된 함수 등 일부 코드를 공유해야 합니다.

이 상황을 처리하는 올바른 방법은 무엇입니까? 이상적으로는 저장소 루트에 common 디렉터리(services의 형제)를 두고 거기에 공통 코드를 넣습니다. 하지만 common 目录(services 的同级目录)并将公共代码放在那里 - 但是在编译 s1s2 컴파일할 때 코드를 어떻게 얻을 수 있나요? 거기에서?

해결 방법

제 생각에 당신이 요구하는 것은 실제로 "여러 바이너리를 생성하는 Go 애플리케이션을 구축하는 방법은 무엇입니까? "인 것 같습니다.

다음 레이아웃을 갖도록 go.mod을 최상위 디렉터리 이름 바꾸기로 이동할 수 있습니다.

으아악

다음과 같이 시작하는 go.mod도 있습니다.

으아악

만약 common/common.go이 다음과 같다면:

으아악

그런 다음 services/s1/main.go中,可以导入common 모듈에서:

으아악

다음과 같이 s1 서비스를 구축하게 됩니다.

으아악

빌드 s2 유사:

으아악

일반적으로 여러 서비스를 자동으로 구축하기 위한 최상위 수준 makefile이 있습니다.

위 내용은 Go: 공유 코드가 있는 마이크로서비스를 위한 저장소 레이아웃의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 stackoverflow.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제