eventsourcing go
1.0.0
당신이 아마 꽃에서 영감을 받은 Fairflax Media 라는 대형 뉴스 출판사에서 일하고 있다고 상상해 보십시오(물론 Fairfax Media와 착각하지 마십시오).
여러분은 거대한 모놀리스 시스템을 마이크로서비스로 나누고 모든 것을 Kuberentes로 옮기는 임무를 맡았습니다. 도메인 기반 디자인을 선호하며 각 데이터베이스는 단일 애플리케이션에서만 소유해야 한다고 생각합니다. 하지만 시간이 지나면서 많은 서비스에 공통 데이터가 필요하다는 사실을 알게 됩니다. 모든 서비스에서 데이터가 일관되고 쿼리 성능이 합리적인지 확인해야 합니다.
master
브랜치에는 초기 상태, 즉 긴밀하게 결합된 서비스가 포함되어 있습니다.event-sourcing
분기에는 독립적이고 테스트하기 쉬운 비동기 서비스를 포함하는 이벤트 소싱 + CQRS 구현이 포함되어야 합니다.이 프로젝트는 Golang을 사용하여 비동기식 마이크로서비스 아키텍처로 전환하려는 모든 사람을 대상으로 합니다.
1.9 이상으로 이동
$GOPATH
설정되었습니다.
종속성 관리를 위한 dep
Mac OSX에서는 brew
사용합니다 ...
$ brew install dep
$ brew upgrade dep
다른 플랫폼에서는 install.sh 스크립트를 사용할 수 있습니다.
$ curl https://raw.githubusercontent.com/golang/dep/master/install.sh | sh
PATH에 $GOPATH/bin이 포함되어 있는지 확인하세요.
$ go help gopath
$ export PATH=$PATH:$GOPATH/bin
$ go get -u github.com/pavelnikolov/eventsourcing-go/demo-articles
$ go get -u github.com/pavelnikolov/eventsourcing-go/demo-graph
$ go get -u github.com/pavelnikolov/eventsourcing-go/demo-sitemap
$ go get -u github.com/pavelnikolov/eventsourcing-go/demo-rss
어느 하나:
$ go get -u github.com/pavelnikolov/eventsourcing-go/...
또는:
$ mkdir -p $GOPATH/github.com/pavelnikolov
$ cd $GOPATH/github.com/pavelnikolov
$ git clone github.com/pavelnikolov/eventsourcing-go
그런 다음 종속성을 설치합니다.
$ dep ensure
네 가지 터미널 창에서 실행:
go install ./cmd/demo-articles && demo-articles
go install ./cmd/demo-graph && demo-graph
go install ./cmd/demo-rss && demo-rss
go install ./cmd/demo-sitemap && demo-sitemap
브라우저에서 앱으로 이동합니다.
protobuf 컴파일러 설치
protoc Go 플러그인 설치
$ go get -u github.com/golang/protobuf/protoc-gen-go
생성된 Go 코드를 다시 빌드합니다.
$ go generate github.com/pavelnikolov/eventsourcing-go/...
또는 grpc 플러그인을 사용하여 protoc
명령을 실행하세요.
$ protoc -I publishing/ publishing/publishing.proto --go_out=plugins=grpc:publishing