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

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

电子游戏争议再起,要防的是沉迷而不是游戏近日,电子游戏再度引发舆论风波,有人认为这是精神鸦片,导致大量青少年沉迷也有人表示,该论调杞人忧天,没什么东西能毁掉一代人。一时间,各种观点在网上激烈交锋。电子游戏究竟是洪水猛兽还多文明并存的洪荒时代!网易首款自由交易SLG手游洪荒文明洪荒文明作为一款网易多文明策略游戏大作,与之前的SLG游戏区别最大的是游戏背景,其将游戏的背景设定为不同地区的神话故事,玩家可控制获取的英雄变为了神话故事中的各种人物。与以往的SL天涯明月刀武侠世界很精彩?武林志2小贩都可能身怀绝技说到好玩的武侠端游,不少人可能就会想到九阴真经天涯明月刀等游戏。比方说天涯明月刀,凭借着精美的画面和有趣的江湖设定吸引了很多武侠爱好者的兴趣,游戏内还存在着十多种门派,有着极为宏伟王者最稀有的英雄是什么?目前来说就是艾琳最稀有了!艾琳是怎么获得的?看看王者荣耀前世今生(部分内容转载)我是在15年在朋友推介才开始玩这个游戏的,记得那时候里面的英雄还很少,模式也只是有1v13v3而已(任天堂新主机实锤了!E3前后公布,性能增强年底发售关于任天堂的新主机,我们大概在今年初就已经爆料过相关的信息。现在越来越多的证据显示,这款主机是肯定存在的,不出意外的话年底就会发售。甚至于任天堂自己都已经瞒不住这个信息,很大概率会疫情红利消耗殆尽?视频游戏4月销量同比降低2智通财经APP获悉,根据NDP集团的调查数据显示,2021年4月,视频游戏销量14个月来首次同比下降,该行业经历了自2020年4月以来最艰难的时期。2020年4月的销量较2019年为什么传奇类游戏那么吸引人呢?假使说到中国游戏产业之前,哪一款手机游戏可以称之为一款游戏,我觉得应该没有人会绕过这一款游戏。毕竟当时手机游戏还算不上什么作品,绕过一款手机游戏刚开始玩很久就吸引了不少玩家,而在那10部4399小游戏,深处的童年回忆,能否触动你的DNA?闲来无事,忽然想起了陪伴了童年很长一段时间的4399网页小游戏,写一些出来跟大家分享一下,看看这些游戏大家有没有玩过,能不能触动你的DNA。这十部也许不是最经典的,但却是小编印象最魔兽世界铭牌如何获取铭牌怎么获得攻略技巧分享魔兽世界铭牌怎么获得?最近魔兽世界中开放了特殊的活动可以让玩家获取魔兽世界铭牌,而有些玩家可能还不知道魔兽世界铭牌要怎么入手。下面就让小编为大家分享,魔兽世界燃烧的远征铭牌获取活动和平精英主播奇葩阵亡,成为最大倒霉蛋,观众看完又学会了一招和平精英作为一款非常考验玩家技术和操作的游戏,有非常多的玩家都把来到战神段位作为自己当前的最大愿望,毕竟即使1天打10局游戏,能有2局游戏吃鸡就不错了,其他8局都可能以不同的姿势变这个最具争议的二次元IP,居然被国内团队改成了手游造就平成最屑动画的烫手山芋。文依光流国内二次元游戏总会给人一些出乎意料的变数。前不久关注到一款新游的动态,令我有些诧异的是一个国内团队拿了兽娘动物园的IP授权,正在制作一款手游。而
游戏王卡组分享,黑魔术少女终于能和师傅一起玩了ygopro不久前更新了20ac的卡,这个包里的新卡说实话基本都很咸鱼,但重要的是师徒的牵绊的登场,让黑魔术卡组能投入黑魔术少女了。少女终于能追随师傅放上卡组卡组文字版主卡组黑魔术穿越火线官方不敢删的4张图,最后一张,300万鼠标梦开始的地方哈喽,大家好这里是大能有话说,今天大能哥来和大家聊聊,穿越火线官方不敢删的四张地图,最后一张是300万鼠标梦开始的地方第一张地图生化金字塔生化金字塔这张地图,相信很多老玩家都非常的这是一个宝藏特别多的地方,同时也非常的危险你想要得到宝藏吗?相信不管是是现实还是游戏,每个人都想要的吧。不过在现实中想要找到宝藏就不太实际了,你可以在这款游戏里面找,想要宝藏的话,来这4个地方准没错的,保证里面绝对有宝藏,DNF一管疲劳只出三件史诗装备,但为何却让无数玩家羡慕嫉妒恨?这个问题你是在显示你的欧皇之气吗?如果说出三件装备能让人羡慕嫉妒恨的,我首先想到的是恍惚套一管疲劳齐了,或者装逼三件套一管疲劳齐了,这种欧皇没被打我不信。恍惚套恍惚套是全职业毕业首DNF最大的败笔是极品装备平民化,史诗装备获取太容易,导致玩家脱坑,你觉得呢?玩过DNF的朋友们都知道,如今这款游戏的热度可谓是一天不如一天了,不管策划推出什么样的活动,勇士们都漠不关心,反正不回坑就是了。既然DNF快要凉了,大家必然必然会去找这其中的原因。10款好玩的沙盒游戏推荐,方块方舟玩家穿戴酷炫机甲到处飞所谓沙盒游戏,就是沙盘模拟游戏,最大的特征就是高自由度。近年来沙盒游戏和各类题材相结合,涌现出来了不少新颖独特的玩法,引人注目。接下来就来推荐十款好玩的沙盒游戏吧。第一款为方块方舟植物大战僵尸2评测沿袭经典植物防御僵尸玩法,保护植物园游戏介绍打开百度APP看高清图片植物大战僵尸2是植物大战僵尸的全新续作。在沿袭了经典的植物防御僵尸玩法的基础上,新增了植物能量手势道具僵尸设定图及游戏关卡的选择场景,玩家将可以体验传奇手游屠龙再现世竟是一场蓄谋已久的营销?盛大套路了所有人大家好,我是传奇小白。第一把屠龙的问世可谓是掀起了巨大风浪,太子丹虽然获得了屠龙,但是最终盛大官方以开挂的理由回收并且他的账号也受到禁封。由于昙花一现,屠龙更是成为了玩家们心心念念盟重英雄冰雪装备全靠打盟重英雄冰雪登录器冰雪版本的传奇手游,冰雪之城第三大陆都是百分百还原的。盟重英雄冰雪登录器所有装备全靠打,刷怪爆的装备都是无绑定的,这样大家也可以拿去交易,没有任何限制。其中施毒术大哥传奇一刀传世h5血脉天赋加点攻略一刀传世二转起号攻略嗨,各位朋友们大家好呀,我是你们最亲爱的朋友毓儿欢迎来到公众号H5手游页游中心今天露露给大家分享下一些游戏心得哦一刀传世h5辅助搬砖扛米攻略!一刀传世小资二转起号攻略及血脉天赋加点魔咒之地预购奖励与数字豪华版内容详情曝光LuminousProductions为旗下新作魔咒之地(Forspoken)提供了预购奖励与两种数字版本,分别是数字标准版和数字豪华版。预购Steam版的玩家可以获得独特装备与道