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

一款国产开源的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  。

如果王者荣耀橘右京用金币买值多少钱?hi,我是威威,七岁拿着家人的钱玩红警,不开外挂打通关十岁开始玩cs,盲狙,爆头样样精通十三岁开始玩问道,道行千年不吹泡泡十六岁开始玩cf,二级跳,白刃小僵尸将近十六年的游戏生涯,盘点植物大战僵尸魔改的几款游戏版本hello,各位小伙伴们大家好呀今天咱们就来盘点一下植物大战僵尸的魔改版本吧,但如果没有盘点到你熟悉的魔改版本那就对不起啦,那么废话不多说,开始吧!第一款95版本制作者冥谷川恋(那死寂一款免费的国产独立制作者的丧尸游戏hello,各位小伙伴们大家好呀今天又来推荐一下国产独立游戏制作者谌嘉诚大佬的恐怖丧尸游戏吧,他本人在黑盒和有b站都是有账号的有兴趣的小伙伴可以去了解一下,那么废话不多说,我们开始明日之后一款让我又爱又恨的游戏hello,各位小伙伴们大家好呀今天就让我们来聊聊明日之后这款游戏吧,这款游戏对于我来说感触还是很多的,我想说说我的经历已经这个游戏吧,那么废话不多说,开始吧!因为这个游戏给我印象EPIC永劫无间卡顿延迟高跳ping掉帧解决办法epic圣诞节的打折相信大家不会放过这个机会的,许多小伙伴都如愿以偿的下载到了永劫无间,但是紧接着就出现了问题,玩游戏的时候卡顿,延迟高,掉帧等等的问题,今天我来教一下大家怎么有效炉石传说下个补丁大概率被削弱的卡组是这些,快来囤卡理财吧全球总决赛在如火如荼地进行中,选手提交的卡组大多是上版本就盛行的otk卡组(吸血瞎,锁喉贼)。上版本的卡组影响到了新版本环境,新版本就像暴风城2。0。这并不是设计师所希望的,设计师战舰世界船新版本,全球同步给你好看如果你还不知道战舰世界这款游戏,那就out了。战舰世界是一款模拟真实海战的老牌端游,拥有数量庞大的粉丝用户,是深受军武迷和战舰迷追捧的一款游戏。临近年末战舰世界又出来搞事情,开启全DNF110版本飞升在即,人均斗帝不稀奇,3。0斗神成新追求虽然110版本的内容才刚爆料出来,但是已经传出部分装备的属性图。这一期并不去讨论属性的问题,而是先讲一下DNF之牌面名望。完全没有想到,105级装备的名望高得吓人,目前已知最低11英雄联盟手游2。6A版本福利活动提前了解今天我们迎来了2。6A版本的更新,一起来看看游戏内精心准备了哪些版本更新福利活动吧!特别提醒各位召唤师,所有活动需要更新版本后才能参与噢版本更新活动时间12月22日12月26日活动究极绿宝石5上线,口袋妖怪众多改版游戏,本作到底有哪些亮点口袋妖怪究极绿宝石5已经于今日,在究极绿宝石官方贴吧内发布了,作为经典的口袋妖怪系列作品,当然有很多的同人作品出现,在这一众作品当中,前几年的漆黑的魅影和近些年的究极绿宝石系列,都S26半肉输出流兰陵王火了,爆发增加100,成为脆皮的梦魇大家好,我是超大神兽。原创不易,期待您的关注。大家都知道,在游戏中,打野英雄无疑是游戏的核心位置。对于一个团队来说,打野英雄通常需要比较强力的爆发能力,同时还要对局势有比较深刻的理
游戏不仅是娱乐,也是解决问题的手段,看00后大学生的游戏创作路千禧年出生的00后,是见证了我国数字行业发展的一代人,他们相伴成长,是土生土长的数字原住民。从小就和游戏相生相伴的他们,在长大成年后,与游戏又会擦出怎样的火花呢?20岁的温昕阳就是用户规模增长几近停滞,2022年游戏行业增量往哪儿找?仅靠少数长板,已经不足以成功了。文依光流如果用一个词形容2021年的游戏市场,葡萄君觉得是存量。当互联网人口红利衰减,对用户的争夺,让游戏市场内部竞争加速,游戏公司的内卷游戏研发成吃鸡将至尊金龙丢地上会怎样?总算看懂了,原来错过好多次欢迎诸位小伙伴们来到天哥开讲的和平精英精英小课堂提到至尊金龙这4个字,对于这款游戏的老玩家们而言,足可以用家喻户晓来形容。没办法,这套衣服虽然登场3年多之久,但是拥有者几乎全都是大英雄惺惺相惜!TES组成中野兄弟联盟!从出道到现在的CP英雄联盟2022LPL春季赛即将迎来全新的征程,对于新赛季的来临,相信很多玩家都非常的期待,因为在之前的转会期,LPL很多队伍都迎来了变局,补强的补强抱团的抱团,这也意味着新赛的争外媒评英雄联盟S11赛季,最令人失望签约蛇蛇,牛宝和欧成上榜英雄联盟S11赛季,在TES德杯夺冠之后,就正式宣告结束。LPL赛区的S12春季赛,即将在元旦过后,2022LPL春季赛,将于1月10日17点正式开赛。在春季赛尚未开赛的休赛期,全英雄联盟手游嫌皮肤不够酷炫?源计划系列你值得拥有在英雄联盟里,要说哪个系列的皮肤最受欢迎,无疑是源计划系列皮肤。作为一款皮肤,它不仅酷炫而且充满了浓厚的科技风。技能特效不仅是T0级别,而且在操作手感上更是让无数玩家爱不释手。源计和平精英新皮肤有猫尾?斗鱼6大主播连麦pk,活动排面拉满喜欢玩吃鸡手游的玩家想必都知道和平精英,目前类目最火的休闲游戏,游戏地图会根据一些节日来进行调整,比如说情人节,春节,万圣节等各种节日。有时候还会联动一些大的IP比如之前的奥特曼,三国志战略版平民玩家如何应对满红?白板阵容推荐前言首先说明一下,本篇只面向平民玩家如何应对满红。不能指望白板阵容胜率有多少,事实上有选择性应对,败率不到三分之二就可以拿来说说。那么正式开始对手分析满红喜欢用什么阵容?就目前的P外媒评选年度最佳阵容DK包揽中野EDG下路双人组上榜前言众所周知,每一年的英雄联盟总决赛过后,各赛区以及各大赛区的媒体都开始进行汇总分析,最终评选出来年度选手的名单。我们LPL在前段时间也是公布了结果,EDG除了上单圣枪哥外其他人各TES。A爆冷不敌Wz,遭粉丝痛斥这都挑战者杯了,快醒醒吧挑战者杯的选拔赛已经开始了,赛程安排还是非常紧凑的,短短几天的时间就要打完36场BO1的比赛,对于各队伍来说都是一个挑战。参赛队伍一共有9个,包含了3支KPL队伍,3支KGL队伍以狼队对阵GK海报出炉,Fly在远处观望,3点钟的狼队让粉丝惧怕挑战者杯的淘汰赛已经开始,在第一轮交手中,狼队就要遭遇到GK战队。这场比赛也是世冠决赛的再次上演,当时的狼队完胜GK,夺得了冠军。但是这次交手,双方队伍都有着较大变动,狼队的小胖以