@ -1,40 +1,35 @@ |
|||||||
# Kratos |
# Kratos |
||||||
|
|
||||||
Kratos是bilibili开源的一套Go微服务框架,包含大量微服务相关框架及工具。 |
Kratos是bilibili开源的一套Go微服务框架,包含大量微服务相关框架及工具。 |
||||||
|
|
||||||
### Goals |
### Goals |
||||||
|
|
||||||
我们致力于提供完整的微服务研发体验,整合相关框架及工具后,微服务治理相关部分可对整体业务开发周期无感,从而更加聚焦于业务交付。对每位开发者而言,整套Kratos框架也是不错的学习仓库,可以了解和参考到bilibili在微服务方面的技术积累和经验。 |
我们致力于提供完整的微服务研发体验,整合相关框架及工具后,微服务治理相关部分可对整体业务开发周期无感,从而更加聚焦于业务交付。对每位开发者而言,整套Kratos框架也是不错的学习仓库,可以了解和参考到bilibili在微服务方面的技术积累和经验。 |
||||||
|
|
||||||
### Principles |
### Principles |
||||||
|
|
||||||
* 简单:不过度设计,代码平实简单 |
* 简单:不过度设计,代码平实简单 |
||||||
* 通用:通用业务开发所需要的基础库的功能 |
* 通用:通用业务开发所需要的基础库的功能 |
||||||
* 高效:提高业务迭代的效率 |
* 高效:提高业务迭代的效率 |
||||||
* 稳定:基础库可测试性高,覆盖率高,有线上实践安全可靠 |
* 稳定:基础库可测试性高,覆盖率高,有线上实践安全可靠 |
||||||
* 健壮:通过良好的基础库设计,减少错用 |
* 健壮:通过良好的基础库设计,减少错用 |
||||||
* 高性能:性能高,但不特定为了性能做hack优化,引入unsafe |
* 高性能:性能高,但不特定为了性能做hack优化,引入unsafe |
||||||
* 扩展性:良好的接口设计,来扩展实现,或者通过新增基础库目录来扩展功能 |
* 扩展性:良好的接口设计,来扩展实现,或者通过新增基础库目录来扩展功能 |
||||||
* 容错性:为失败设计,大量引入对SRE的理解,鲁棒性高 |
* 容错性:为失败设计,大量引入对SRE的理解,鲁棒性高 |
||||||
* 工具链:包含大量工具链,比如cache代码生成,lint工具等等 |
* 工具链:包含大量工具链,比如cache代码生成,lint工具等等 |
||||||
|
|
||||||
### Features |
### Features |
||||||
* HTTP Blademaster:核心基于[gin](https://github.com/gin-gonic/gin)进行模块化设计,简单易用、核心足够轻量; |
* HTTP Blademaster:核心基于[gin](https://github.com/gin-gonic/gin)进行模块化设计,简单易用、核心足够轻量; |
||||||
* GRPC Warden:基于官方gRPC开发,集成[discovery](https://github.com/bilibili/discovery)服务发现,并融合P2C负载均衡; |
* GRPC Warden:基于官方gRPC开发,集成[discovery](https://github.com/bilibili/discovery)服务发现,并融合P2C负载均衡; |
||||||
* Cache:优雅的接口化设计,非常方便的缓存序列化,推荐结合代理模式[overlord](https://github.com/bilibili/overlord); |
* Cache:优雅的接口化设计,非常方便的缓存序列化,推荐结合代理模式[overlord](https://github.com/bilibili/overlord); |
||||||
* Database:集成MySQL/HBase/TiDB,添加熔断保护和统计支持,可快速发现数据层压力; |
* Database:集成MySQL/HBase/TiDB,添加熔断保护和统计支持,可快速发现数据层压力; |
||||||
* Config:方便易用的[paladin sdk](config-paladin.md),可配合远程配置中心,实现配置版本管理和更新; |
* Config:方便易用的[paladin sdk](config-paladin.md),可配合远程配置中心,实现配置版本管理和更新; |
||||||
* Log:类似[zap](https://github.com/uber-go/zap)的field实现高性能日志库,并结合log-agent实现远程日志管理; |
* Log:类似[zap](https://github.com/uber-go/zap)的field实现高性能日志库,并结合log-agent实现远程日志管理; |
||||||
* Trace:基于opentracing,集成了全链路trace支持(gRPC/HTTP/MySQL/Redis/Memcached); |
* Trace:基于opentracing,集成了全链路trace支持(gRPC/HTTP/MySQL/Redis/Memcached); |
||||||
* Kratos Tool:工具链,可快速生成标准项目,或者通过Protobuf生成代码,非常便捷使用gRPC、HTTP、swagger文档; |
* Kratos Tool:工具链,可快速生成标准项目,或者通过Protobuf生成代码,非常便捷使用gRPC、HTTP、swagger文档; |
||||||
|
|
||||||
|
|
||||||
<br> |
------------- |
||||||
|
|
||||||
------------- |
> 名字来源于:《战神》游戏以希腊神话为背景,讲述由凡人成为战神的奎托斯(Kratos)成为战神并展开弑神屠杀的冒险历程。 |
||||||
|
|
||||||
> 名字来源于:《战神》游戏以希腊神话为背景,讲述由凡人成为战神的奎托斯(Kratos)成为战神并展开弑神屠杀的冒险历程。 |
|
||||||
|
|
||||||
------------- |
|
||||||
|
|
||||||
[文档目录树](summary.md) |
|
@ -1,8 +1,7 @@ |
|||||||
# Summary |
|
||||||
|
|
||||||
* [介绍](README.md) |
* [介绍](README.md) |
||||||
* [快速开始](quickstart.md) |
* [快速开始](quickstart.md) |
||||||
* [案例](https://github.com/go-kratos/kratos-demo) |
* [案例](https://github.com/go-kratos/kratos-demo) |
||||||
|
* [FAQ](FAQ.md) |
||||||
* [http blademaster](blademaster.md) |
* [http blademaster](blademaster.md) |
||||||
* [bm quickstart](blademaster-quickstart.md) |
* [bm quickstart](blademaster-quickstart.md) |
||||||
* [bm module](blademaster-mod.md) |
* [bm module](blademaster-mod.md) |
Before Width: | Height: | Size: 9.7 KiB After Width: | Height: | Size: 9.7 KiB |
Before Width: | Height: | Size: 31 KiB After Width: | Height: | Size: 31 KiB |
Before Width: | Height: | Size: 24 KiB After Width: | Height: | Size: 24 KiB |
Before Width: | Height: | Size: 34 KiB After Width: | Height: | Size: 34 KiB |
Before Width: | Height: | Size: 7.3 KiB After Width: | Height: | Size: 7.3 KiB |
Before Width: | Height: | Size: 7.8 KiB After Width: | Height: | Size: 7.8 KiB |
Before Width: | Height: | Size: 5.8 KiB After Width: | Height: | Size: 5.8 KiB |
Before Width: | Height: | Size: 661 KiB After Width: | Height: | Size: 661 KiB |
Before Width: | Height: | Size: 19 KiB After Width: | Height: | Size: 19 KiB |
Before Width: | Height: | Size: 64 KiB After Width: | Height: | Size: 64 KiB |
@ -0,0 +1,22 @@ |
|||||||
|
<!DOCTYPE html> |
||||||
|
<html lang="en"> |
||||||
|
<head> |
||||||
|
<meta charset="UTF-8"> |
||||||
|
<title>Document</title> |
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" /> |
||||||
|
<meta name="description" content="Description"> |
||||||
|
<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"> |
||||||
|
<link rel="stylesheet" href="//cdn.jsdelivr.net/npm/docsify/lib/themes/vue.css"> |
||||||
|
</head> |
||||||
|
<body> |
||||||
|
<div id="app"></div> |
||||||
|
<script> |
||||||
|
window.$docsify = { |
||||||
|
loadSidebar: true, |
||||||
|
name: 'go-kratos/kratos', |
||||||
|
repo: 'https://github.com/go-kratos/kratos' |
||||||
|
} |
||||||
|
</script> |
||||||
|
<script src="//cdn.jsdelivr.net/npm/docsify/lib/docsify.min.js"></script> |
||||||
|
</body> |
||||||
|
</html> |