Go语言云原生与微服务(三)Kratos微服务框架学习

本文介绍了Go语言中的微服务框架,包括Go Kit和Go Micro,并重点讲解了Kratos微服务框架,它是bilibili开源的用于构建微服务的工具包。Kratos的目标是提供完整的微服务研发体验,具有简单、通用、高效、稳定和健壮等特点。文中还详细阐述了在Mac环境下安装Kratos的基本步骤,包括安装brew、git、protoc和Go环境,以及如何使用Kratos工具创建项目。
摘要由CSDN通过智能技术生成

前言

常见的微服务框架

一、Go Kit框架

这是一个工具包的集合,可以帮助攻城狮构建强大、可靠和可维护的微服务。提供了用于实现系统监控和弹性模式组件的库,例如日志、跟踪、限流、熔断等。
基于这个框架的应用程序架构由三个主要的部分组成:

- 传输层:用于网络通信,服务通常使用HTTP或者gRPC等网络传输协议,或者使用NATS等发布订阅系统相互通信。
- 接口层:是服务器和客户端的基本构建块。每个对外提供的接口方法都会定义为一个Endpoint,一遍在服务器和客户端之间进行网络通信,每个端点使用传输层通过HTTP或gRPC等具体通信模式对外提供服务
- 服务层:具体的业务逻辑实现

二、Go Micro框架

这是一个基于Go语言实现的插件化RPC微服务框架。提供了服务发现、负载均衡、同步传输、异步通信以及事件驱动等机制,尝试简化分布式系统之间的通信,让开发者更专注于自身业务逻辑的开发。

GoMicro的设计哲学是可插拔的架构理念,提供了可快速构建系统的组件,并且可以根据自身的需求对GoMicro提供的默认实现进行定制。所有插件都可在仓库github.com/micro/go-plugins 中找到。

Why Kratos

Kratos是bilibili开源的一套Go微服务框架,包含大量微服务相关框架及工具。

名字来源于:《战神》游戏以希腊神话为背景,讲述由凡人成为战神的奎托斯(Kratos)成为战神并展开弑神屠杀的冒险历程。

Goals:

致力于提供完整的微服务研发体验,整合相关框架及工具后,微服务治理相关部分可对整体业务开发周期无感,从而更加聚焦于业务交付。对每位开发者而言,整套Kratos框架也是不错的学习仓库,可以了解和参考到bilibili在微服务方面的技术积累和经验。Github地址:https://github.com/go-kratos/kratos

Principles:

简单:不过度设计,代码平实简单
通用:通用业务开发所需要的基础库的功能
高效:提高业务迭代的效率
稳定:基础库可测试性高,覆盖率高,有线上实践安全可靠
健壮:通过良好的基础库设计,减少错用
高性能:性能高,

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值