专栏电商日志财经减肥爱情
投稿投诉
爱情常识
搭配分娩
减肥两性
孕期塑形
财经教案
论文美文
日志体育
养生学堂
电商科学
头戴业界
专栏星座
用品音乐

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

任天堂不给友商留活路!盘点2022年Switch上最为重量级的10款游戏伴随着2021年的落幕,2022年悄然而至。作为玩家的我们,在新的一年里最关心的当然是今年会推出什么让人振奋人心的大作啦。恰好任天堂在近日就表示在2022年将会发售大量独占作品,因正式服1月6日s26赛季更新帽子跌落王座,泣血六年来首次加强在王者荣耀正式服s26赛季的更新中,对诸多装备进行了调整,在本文中姐夫将根据在体验服和抢先服中的测试为大家分析这波调整所带来的影响。注正式服更新内容和抢先服又有很大不同,主要是法装王者赛季S26即将来袭,提前了解版本变动,有助上分赛季即将来袭,明天就是开启新一轮的赛季,现在的你段位在什么阶段了呢?在全新的赛季中,又准备冲刺到哪个阶段?新赛季又有不少更新的地方,了解这些后,希望对你上分更加有帮助!众所周知,每新赛季明日开启后羿变相加强,10分钟主宰绝不容放过大家好,我是大宝备。新赛季将会在明天,也就是1。6开启。今天继续来重点分析一下新版本中峡谷生物防御塔等方面的变化。兵线方面调整4分钟时一波线会新增一个弩车兵,用来替换掉炮车,而炮车塞伯利亚之谜之前的世界4月1日正式发售支持简体中文此前跳票的解密游戏塞伯利亚之谜之前的世界近日公布准确发售日期,该作预计将于4月1日正式登陆Steam平台,支持简体中文,感兴趣的玩家可以进入商店页面。游戏宣传片优酷视频云游戏角色介回到了1982年,玩家团队将我的世界改造成复古街机版提起电子游戏的历史,可以追溯到上世纪四五十年代,所以满打满算发展到现在也不足百年的时间。虽然电子游戏历史不算长,但是回顾了一下以前的复古游戏后,我们都知道游戏技术已经发生了天翻地覆魔兽副本介绍剃刀沼泽在一万年前的古代战争中,万能的半神阿迦玛甘和燃烧军团进行了激战。虽然这头巨大的猪在战斗中倒下了,但是他的努力最终拯救了艾泽拉斯大陆免遭涂炭。虽然已经过去了很久,但是在它血液流淌的地DK新阵容不理想?监督两名新上单都存在不足之处从整个S11赛季看DK可以说是LCK的霸主,DK不仅斩下了春夏双冠,全球总决赛还顺利杀进决赛,离冠军仅差一步之遥,是LCK赛区中成绩最好的队伍。不过,S12赛季的DK可能会步入低谷国产暗黑风银河恶魔城觉醒异刃Steam商店页面上线由黑鸽科技工作室开发的觉醒异刃是一款国产暗黑童话风格的银河恶魔城游戏,游戏目前已上架Steam页面,发售日暂未公布。在游戏中,你可以根据喜好决定故事的走向。与被异兽寄生的少女洛雷塔同一个游戏,为何PC版文件往往比主机版大?如果你是跨平台玩家,可能发现了一个现象同样一个游戏,PC版文件可能比主机版大得多,这是为什么呢?以Epic才送的古墓丽影暗影为例,其PC版大小超过40GB,但在XSX上,只有23。格斗游戏中有哪些让人笑到喷饭的必杀技?整容杀出处罪恶装备xrd角色浮士德变性杀出处SNKVSCAPCOMCHAOS角色迪米特里虐狗杀出处痛快行进曲角色韦斯特菲尔德PSNEOGEO上的一个游戏,模拟器上可以下到。乱入杀出
DNF中,什么样的才是蛇皮C蛇皮奶?本命不到3000真的就是蛇皮吗?首先感谢悟空问答!自从DNF推出团本以后,玩家实力逐渐开始划分为三六九等,安徒恩时期由于输出装备极其繁多,玩家之间还能保持淡定,而到了卢克阶段,史诗普及,也就出现了门槛的说法。门槛DNF女大枪劝退三连的装备都有哪些?说到女大枪这个职业玩家肯定在熟悉不过了,天界的母老虎,曾经是第一个卢克二阶段未开通能源单技能秒杀卢克BOSS的职业,不过想要玩好这个职业可不简单,因为装备的昂贵再加上绝版以及难以获英雄联盟皇子插旗就可以获得助攻,还有哪些更容易混助攻的英雄吗?英雄联盟里的英雄都有鲜明的个性特征和独特的技能机制,想要发育得更快,除了击杀之外,助攻也是必不可少。然而混助攻也是种学问,皇子插旗就可以轻松获得助攻,还有比他更容易混助攻的英雄吗?LOL剑魔对白,为什么剑魔连神都嘲讽但却对贾克斯的实力这么肯定呢?我们排除游戏内的内容来看看英雄的背景故事。剑魔曾经是恕瑞玛的一位飞升者,在对抗虚空裂缝袭来的虚空生物时,导致恕瑞玛损失惨重,其中就有一位飞升者被虚空所感染,这位飞升者就是剑魔,至于经典街机恐龙快打中的火把武器,掉进水中会发生什么事?你怎么看?这个问题很有意思,那就由小编来尝试一下吧!在很多街机游戏中都是有水中场景的,这些场景中都是有一些场景特效的,像是恐龙快打的食物和道具掉进水中就会出现不散的波浪三国志的水中不能骑马不lol有哪些看起来没输出实则输出爆炸的英雄呢?英雄联盟中有些英雄看起来比较无害,但是他们的伤害都非常之高,一个不小心就有可能会被他打掉很多血量。哪些英雄看起来无害,但是却能打出高额伤害呢?第一位正义巨像加里奥加里奥给人一种坦克曾卓君在国外游戏玩家眼中是什么地位?小孩曾卓君在街机格斗游戏界可谓是鼎鼎大名!尤其是拳皇系列更是罕有敌手,那么他在国外游戏玩家的眼中是什么地位呢?接下来我们就一起聊聊!曾卓君曾卓君在国外的名气非常大,经常包揽各种格斗6。2体验服更新,反甲降温,马可波罗半重塑昨天,体验服进行了一次重大更新。装备调整痛苦面具被动折磨伤害频率0。4秒0。5秒看法痛苦面具突然被降温,是因为魔石的上线,使得部分法师的前中期输出收益变高很多,已经严重的挤压了其他恐怖逃生恐怖冰淇淋4,Boss抓走全村的胖子,竟是为了榨汁?罗德是小镇中冰淇淋工厂厂长,总是带走小镇中的孩子,把他们做成各种口味的冰淇淋。某一天,你的朋友们不幸被带走了,在拯救他们的过程中,你也落入了罗德的手中作为系列的第四部,恐怖冰淇淋4涅克罗蒙达赏金猎人IGN5分总有不玩它的理由游戏封面游戏名称涅克罗蒙达赏金猎人英文名称NecromundaHiredGun游戏类型FPS游戏制作StreumOnStudio游戏发行FocusHomeInteractive游戏吃鸡经典加入3款新载具,反重力摩托很离谱,越来越魔幻了大家好,欢迎来到由小鱼干开讲的吃鸡新鲜事速报,如果不是粉丝的提醒,小鱼干是真的不知道,原来6月的体验服已经悄悄开启了,因此小鱼干就晚了很多才进行体验。不过这回的版本是重启未来主题,
友情链接:快好知快生活快百科快传网中准网文好找聚热点快软件