A simple note service built with Kitex and Hertz which is divided into three microservices.
| Service Name | Usage | Framework | protocol | Path | IDL |
|---|---|---|---|---|---|
| api | HTTP interface | kitex/hertz | http | cmd/api | idl/api.thrift |
| comment | comment data management | kitex/gorm | thrift | cmd/comment | idl/comment.thrift |
| favorite | favorite data management | kitex/gorm | thrift | cmd/favorite | idl/favorite.thrift |
| feed | feed data management | kitex/gorm | thrift | cmd/feed | idl/feed.thrift |
| message | message data management | kitex/gorm | thrift | cmd/message | idl/message.thrift |
| publish | publish data management | kitex/gorm | thrift | cmd/publish | idl/publish.thrift |
| relation | relation data management | kitex/gorm | thrift | cmd/relation | idl/relation.thrift |
| user | user data management | kitex/gorm | thrift | cmd/user | idl/user.thrift |
- Hertz
- Use
thriftIDL to define HTTP interface - Use
hzto generate code - Use
Hertzbinding and validate - Use
obs-opentelemetryandjargerfortracing,metrics,logging - Middleware
- Use
requestid,jwt,recovery,pprof,gzip
- Use
- Use
- Kitex
- Use
thriftIDL to defineRPCinterface - Use
kitexto generate code - Use
thrift-gen-validatorfor validating RPC request - Use
obs-opentelemetryandjargerfortracing,metrics,logging - Use
registry-etcdfor service discovery and register
- Use
| catalog | introduce |
|---|---|
| handler | HTTP handler |
| service | business logic |
| rpc | RPC call logic |
| dal | DB operation |
| pack | data pack |
| pkg/mw | RPC middleware |
| pkg/consts | constants |
| pkg/errno | customized error number |
| pkg/configs | SQL and Tracing configs |
docker-compose upcd cmd/user
sh build.sh
sh output/bootstrap.shcd cmd/user
sh build.sh
sh output/bootstrap.shcd cmd/user
sh build.sh
sh output/bootstrap.shcd cmd/user
sh build.sh
sh output/bootstrap.shcd cmd/user
sh build.sh
sh output/bootstrap.shcd cmd/user
sh build.sh
sh output/bootstrap.shcd cmd/user
sh build.sh
sh output/bootstrap.shcd cmd/api
go run .Visit http://127.0.0.1:16686/ on browser
Visit http://127.0.0.1:3000/ on browser
The following is a list of API requests and partial responses.