范文健康探索娱乐情感热点
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

一款国产开源的Go微服务框架

  学习 Go 语言的朋友看过来!这里有一个非常厉害的 Go 微服务框架推荐给你!
  这个框架的名字叫做 Kratos,目前已经在 Github 上收货了 14k+ 的 star,一共有 110+人为其做了贡献。
  这个项目的作者一定是一个游戏爱好者。项目的名字就是起源于一款以希腊神话为背景的游戏—《战神》,Kratos 是其中一位任人物的名字,他从凡人成为了战神!
  项目目标
  这个项目的目标是提供完整的微服务研发体验,整合相关框架及工具后,微服务治理相关部分可对整体业务开发周期无感,从而更加聚焦于业务交付。对每位开发者而言,整套 Kratos 框架也是不错的学习仓库,可以了解和参考到微服务方面的技术积累和经验。  设计原则
  整个框架的设计原则如下:  简单:不过度设计,代码平实简单;  通用:通用业务开发所需要的基础库的功能;  高效:提高业务迭代的效率;  稳定:基础库可测试性高,覆盖率高,有线上实践安全可靠;  健壮:通过良好的基础库设计,减少错用;  高性能:性能高,但不特定为了性能做 hack 优化,引入 unsafe ;  扩展性:良好的接口设计,来扩展实现,或者通过新增基础库目录来扩展功能;  容错性:为失败设计,大量引入对 SRE 的理解,鲁棒性高;  工具链:包含大量工具链,比如 cache 代码生成,lint 工具等等;
  特性APIs:协议通信以 HTTP/gRPC 为基础,通过 Protobuf 进行定义;  Errors:通过 Protobuf 的 Enum 作为错误码定义,以及工具生成判定接口;  Metadata:在协议通信 HTTP/gRPC 中,通过 Middleware 规范化服务元信息传递;  Config:支持多数据源方式,进行配置合并铺平,通过 Atomic 方式支持动态配置;  Logger:标准日志接口,可方便集成三方 log 库,并可通过 fluentd 收集日志;  Metrics:统一指标接口,可以实现各种指标系统,默认集成 Prometheus;  Tracing:遵循 OpenTelemetry 规范定义,以实现微服务链路追踪;  Encoding:支持 Accept 和 Content-Type 进行自动选择内容编码;  Transport:通用的 HTTP/gRPC 传输层,实现统一的 Middleware 插件支持;  Registry:实现统一注册中心接口,可插件化对接各种注册中心;  Validation: 通过Protobuf统一定义校验规则,并同时适用于HTTP/gRPC服务.  SwaggerAPI: 通过集成第三方Swagger插件能够自动生成Swagger API json并启动一个内置的Swaager UI服务.  架构
  使用方法环境要求go  protoc  protoc-gen-go  下载安装
  go get 安装: go get github.com/go-kratos/kratos/cmd/kratos/v2@latest kratos upgrade
  源码编译安装: git clone https://github.com/go-kratos/kratos cd kratos make install 创建一个服务
  使用  kratos new  新建项目时所使用结构,其中包括了开发过程中所需的配套工具链( Makefile 等),便于开发者更高效地维护整个项目,本项目亦可作为使用 Kratos 构建微服务的工程化最佳实践的参考。
  # 创建项目模板 kratos new helloworld  cd helloworld # 拉取项目依赖 go mod download  # 生成proto模板 kratos proto add api/helloworld/helloworld.proto # 生成proto源码 kratos proto client api/helloworld/helloworld.proto # 生成server模板 kratos proto server api/helloworld/helloworld.proto -t internal/service  # 生成所有proto源码、wire等等 go generate ./...  # 运行程序 kratos run
  生成的目录结构如下:    . ├── Dockerfile   ├── LICENSE ├── Makefile   ├── README.md ├── api // 下面维护了微服务使用的proto文件以及根据它们所生成的go文件 │   └── helloworld │       └── v1 │           ├── error_reason.pb.go │           ├── error_reason.proto │           ├── error_reason.swagger.json │           ├── greeter.pb.go │           ├── greeter.proto │           ├── greeter.swagger.json │           ├── greeter_grpc.pb.go │           └── greeter_http.pb.go ├── cmd  // 整个项目启动的入口文件 │   └── server │       ├── main.go │       ├── wire.go  // 我们使用wire来维护依赖注入 │       └── wire_gen.go ├── configs  // 这里通常维护一些本地调试用的样例配置文件 │   └── config.yaml ├── generate.go ├── go.mod ├── go.sum ├── internal  // 该服务所有不对外暴露的代码,通常的业务逻辑都在这下面,使用internal避免错误引用 │   ├── biz   // 业务逻辑的组装层,类似 DDD 的 domain 层,data 类似 DDD 的 repo,repo 接口在这里定义,使用依赖倒置的原则。 │   │   ├── README.md │   │   ├── biz.go │   │   └── greeter.go │   ├── conf  // 内部使用的config的结构定义,使用proto格式生成 │   │   ├── conf.pb.go │   │   └── conf.proto │   ├── data  // 业务数据访问,包含 cache、db 等封装,实现了 biz 的 repo 接口。我们可能会把 data 与 dao 混淆在一起,data 偏重业务的含义,它所要做的是将领域对象重新拿出来,我们去掉了 DDD 的 infra层。 │   │   ├── README.md │   │   ├── data.go │   │   └── greeter.go │   ├── server  // http和grpc实例的创建和配置 │   │   ├── grpc.go │   │   ├── http.go │   │   └── server.go │   └── service  // 实现了 api 定义的服务层,类似 DDD 的 application 层,处理 DTO 到 biz 领域实体的转换(DTO -> DO),同时协同各类 biz 交互,但是不应处理复杂逻辑 │       ├── README.md │       ├── greeter.go │       └── service.go └── third_party  // api 依赖的第三方proto     ├── README.md     ├── google     │   └── api     │       ├── annotations.proto     │       ├── http.proto     │       └── httpbody.proto     └── validate         ├── README.md         └── validate.proto 编写代码import "github.com/go-kratos/kratos/v2" import "github.com/go-kratos/kratos/v2/transport/grpc" import "github.com/go-kratos/kratos/v2/transport/http"  httpSrv := http.NewServer(http.Address(":8000")) grpcSrv := grpc.NewServer(grpc.Address(":9000"))  app := kratos.New(     kratos.Name("kratos"),     kratos.Version("latest"),     kratos.Server(httpSrv, grpcSrv), ) app.Run()
  更多关于这个项目的使用介绍,推荐朋友们看看这个项目的官方文档: https://go-kratos.dev/docs/getting-started/start  。

王者荣耀全英雄台词6(C2)十六嫦娥落花倒影寒月公主1到这儿来2夜晚的太阳,保护属于它的人3月祭降临4你在找什么(后羿),找我的兔子(嫦娥)5和火焰露水在一起6以前,我有一座花园7我们,以温柔驱遣强者8不需要迷你世界游戏里我的N种挂法我玩游戏,属于菜鸟中的菜鸟。像王者荣耀啊吃鸡啊,我基本不敢玩,肯定是拖后腿的存在。迷你世界是看孩子玩,我问简单吗?孩子说如果当单机玩的话,简单。OK,下载游戏,登录。什么?看攻略?永别了,伴随我16年的魔兽世界十六年来我们一见钟情,浅尝辄止,如胶似漆,若即若离,藕断丝连,旧情复燃,如此几番。然繁华千万,终抵不过岁月流年,如今我这残破之身再也不能伴你驰骋天下。终于到了说再见的时候。在一个这和女足一样激动人心,电竞史上四大逆转翻盘当中国女足2月6日在亚洲杯决赛中,以3比2逆转击败韩国队,时隔16年再次捧起亚洲杯冠军奖杯,无数国人为之振臂欢呼。不到最后一刻决不放弃,这是体育精神的最佳诠释,也是电竞精神的最好注为什么某音上的纪念品龙狙比全世界加起来还要多?在如今这短视频火热的时代,XDM闲来无事往往会打开某音刷点视频,刷的久了可能会发现个奇怪的现象为什么某音上CSGO高端饰品这么多?一发入魂崭新迈阿密是基操,崭新龙狙暗金咆哮人手一把XYG楼塌了,主教练突然辞职,张大仙亲自解释,理念不合分道扬镳XYG战队,是KPL人气前几的队伍,而这支队伍的流量几乎全部来自张大仙。大仙为圆自己的职业梦,创建了XYG战队,作为老板,大仙为这支战队付出了无数的心血。XYG的成绩也非常不错,粗永劫无间免费周末现已上线2月22日结束近日,永劫无间官方微博宣布免费试玩周末活动开启,试玩活动2月19日0时开始持续至2月22日24时结束。期间,试玩玩家之间将会优先互相匹配。期间产生的所有数据都将被永久保留,可随时通体验一下VR游戏,在虚拟世界里走一回又到周末休息日了,宝宝们除了学习外,也要增加点学习以外的乐趣。小编尽量在每个周日,发送一篇有关于北京好吃好玩的地方,让宝爸宝妈们带娃娃也可以有地方休闲娱乐一下。VR游戏发展到现在也LOL0掀翻RNG喜提三连胜北京时间2月22日,LPL春季赛第六周第二日的首场对决由2连胜的东区第一RA挑战排名第五的RNG!首局RA上单Cube选出格温,对线期两度单杀了Bin的贾克斯,RA从上路打开突破口万物皆可狼人杀(一)12人水上蹦极蹦极僵尸铁门僵尸2普通僵尸水草睡莲猫尾草海喷菇4向日葵蹦极僵尸夜间不与其他僵尸见面,不知道其他僵尸的身份,每晚所有角色行动前,可查验一名角色的具体身份,如果验到水草,明日之后等了一年的新武器终于上线,狙击手要飞了?如果要票选明日之后玩家最期待的新武器,那进化狙一定榜上有名。早在一年前,进化狙要上线的消息就已经传得沸沸扬扬,等了那么久,本来以为不太可能出了,甚至有UP主断言根本不可能出进化狙。
小白主播我的世界从0开始挑战困难生存模式第一天小白主播从0开始挑战困难生存模式第一天哇,现在已经进入我的世界了,运气不错啊,出生在了一个树木茂盛的地方。树木多动物就会多,这样就解决了木头跟食物的问题了。玩我的世界首先要记住的一或将搭载2。0T发动机?斯柯达明锐Sportline亮相斯柯达明锐Pro刚刚亮相不久,在海外斯柯达又为明锐推出了全新车型斯柯达明锐Sportline,不仅带来了类似奥迪RS的外形设计,更重要的是,这款斯柯达明锐Sportline或将有可广汽埃安品牌充电第一站落成,正式开启能源生态时代4月18日,广汽埃安品牌充电第一站上海虹桥机场品牌充电站正式落成,标志着广汽埃安能源生态时代的正式开启,具有里程碑式的意义。虹桥机场出口即达充电免费停车免费,尊享用车无忧一直以来,真凡尔赛本赛,上海车展看东风雪铁龙凡尔赛C5X真香凡尔赛大家见怪不怪了,不过说实话想要真凡尔赛一把,实力是必须要具备的,车企中就有一直在凡尔赛的。但是今年上海车展,来自凡尔赛的故乡法国汽车品牌雪铁龙就推出了一款命名为凡尔赛C5X的服务贯彻用户品质定义未来特斯拉口碑销量双收虽然特斯拉相关话题不断,但各类数据证明其已在全球掀起一股不可抵挡的热潮。近日,特斯拉官方公布,特斯拉全球一季度累计交付18,4800辆,超出机构预期,同时也打破去年第四季度创造的销宝马5系好还是es300好?为什么修车师傅建议买雷克萨斯宝马5系与雷克萨斯es300,其实在价位品牌以及车辆驾驶感受上还是有所区别的,将这两款车作比较的情况不多,我们来看一下到底有什么区别。宝马5系的价位在4255万之间,我们今天的对比弹车试驾ID。4X,能否开启上汽大众年轻态的新篇章?年轻态,已经成为众多车企造车的共同话题,毕竟00后都开始准备考虑买车了,而对于上汽大众这样老牌的车企来说,如何将车做的更加年轻也是非常重要的。但是不得不承认的是,无论是热销的朗逸,携手重走长征路全新4008带你追忆红色岁月!今年恰逢建党100周年,多地迎来红色旅游打卡热。适逢周末,拉上好友驱车前往革命圣地,不仅可以瞻仰革命先驱的精神,还可以感受新中国山河之美。而长征路更成了缅怀先驱的最佳路线。近日,东眼中的红色奇迹,紫禁城的衣食咽喉,全新4008挂壁公里游公元1607年的六月,黑森森的阴云中闪电劈里啪啦作响,暴雨已经下了20多天,丹房中的万历帝正在聚精会神的炼制新一炉丹药,两侧宫女若有若无的摇着孔雀扇。此时,司礼监掌印太监锦衣卫指挥王者荣耀3号版本更新,碎片商店更新,西施龙族公主即将登场,5款皮肤优化超炫酷。王者荣耀每年都会出很多品质比较好的皮肤,除了直接在商店购买之外,还可以通过碎片商店兑换一些超值的史诗皮肤,毕竟像露娜的紫霞仙子李白的千年之狐韩信的街头霸王都曾在碎片商店出现过,距离王者荣耀六周年限定返场25款皮肤,马超神威呼声最高不知不觉中王者荣耀已经陪伴了我们五年多了,今年是王者荣耀上架的第六年,在六周年庆的时候官方肯定会返场多款以前的皮肤,今年的周年庆也快到了,玩家们也是纷纷期待着自己喜欢的皮肤能返场,