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
thrift
IDL to define HTTP interface - Use
hz
to generate code - Use
Hertz
binding and validate - Use
obs-opentelemetry
andjarger
fortracing
,metrics
,logging
- Middleware
- Use
requestid
,jwt
,recovery
,pprof
,gzip
- Use
- Use
- Kitex
- Use
thrift
IDL to defineRPC
interface - Use
kitex
to generate code - Use
thrift-gen-validator
for validating RPC request - Use
obs-opentelemetry
andjarger
fortracing
,metrics
,logging
- Use
registry-etcd
for 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 up
cd cmd/user
sh build.sh
sh output/bootstrap.sh
cd cmd/user
sh build.sh
sh output/bootstrap.sh
cd cmd/user
sh build.sh
sh output/bootstrap.sh
cd cmd/user
sh build.sh
sh output/bootstrap.sh
cd cmd/user
sh build.sh
sh output/bootstrap.sh
cd cmd/user
sh build.sh
sh output/bootstrap.sh
cd cmd/user
sh build.sh
sh output/bootstrap.sh
cd 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.