Updated iteration of two months, Kratos v0.1.0 has been officially released.
Kratos is a set of open source bilibili Go Micro Services Framework, it contains a large number of micro-services framework and related tools.
The name comes from: "God of War" game to Greek mythology tells the tale of a mortal become God of War Kratos (Kratos) became the god of war and adventure unfold killing God killings.
Goals
We are committed to providing full service micro-development experience, the integration framework and associated tools, micro-management-related service may no sense part of the overall business development cycle, which is more focused on service delivery. Each of the developers, the entire frame is also a good learning Kratos warehouse, you can understand and reference to bilibili accumulated technology and experience in micro-services.
Features
- HTTP Blademaster: Core-based gin modular design, easy to use, lightweight core sufficient;
- GRPC Warden: Based on official gRPC development, integrated discovery service discovery and integration of P2C load balancing;
- Cache: elegant interface design, very convenient cache serialization, proxy mode is recommended in conjunction with Overlord ;
- Database: Integrated MySQL / HBase / TiDB, add fuse protection and statistical support, can quickly find the data layer pressure;
- Config: easy to use Paladin sdk , can be used with remote configuration center for configuration management and version updates;
- Log: Similar zap the log database field to achieve high performance, combined with remote log-agent log management;
- Trace: Based opentracing, integrated full link trace support (gRPC / HTTP / MySQL / Redis / Memcached);
- Kratos Tool: tool chain, can quickly generate standard projects, or generate code through Protobuf, very convenient to use gRPC, HTTP, swagger document;
Quick start
Requirments
Go version>=1.12 and GO111MODULE=on
Installation
go get -u github.com/bilibili/kratos/tool/kratos cd $GOPATH/src kratos new kratos-demo
By kratos new
quickly generate the code based kratos scaffold libraries, such as generating kratos-demo
Build & Run
cd kratos-demo/cmd go build ./cmd -conf ../configs
Open a browser to access: HTTP: // localhost: 8000 / a Kratos-Demo / Start , you will see outputGolang 大法好 !!!