Go-kit介绍及构建微服务

摘要:
Go工具包简介Go工具包不是一个微服务框架,而是一组微服务工具集。我们可以使用工具Go工具包为Go创建微服务,包括包和接口。它类似于JAVASpringBoot,但功能不那么强大。微服务架构意味着构建分布式系统,这带来了许多挑战。Go Kit可以为在大多数业务场景中实现微服务软件架构提供指导和解决方案。Go Kit安装gogetgithub.com/Go-Kit/kitGo-Kit三层架构GoKit框架分层图基于Go Kit的应用程序架构由三个主要部分组成:传输层、接口层和服务层。

Go-kit简介

  Go-kit 并不是一个微服务框架,而是一套微服务工具集,我们可以用工具Go-kit为 Go 创建微服务,包含包和接口,有点类似于JAVA Spring Boot,但是没那么强大。可以利用Go-kit提供的API和规范可以创建健壮的,可维护性高的微服务体系,它提供了用于实现系统监控和弹性模式组件的库,例如日志记录、跟踪、限流和熔断等,这些库可以协助开发人员提高微服务架构的性能和稳定性。

  Go-kit官网地址: https://gokit.io/

  Go-kit 当前集成的组件

功能组件
circuit breaker断路器hystrix-gogobreakerhandy breaker
Metrics 指标prometheus, dogstatsd, influx,graphite 等多个平台
服务发现consul, dnssrv, etcd, eureka, lb, zookeeper
Request TracingOpentracing, LightStep, AppDash, Zipkin

Go-Kit与Go-Micro对比

  Go-Kit 是一个微服务的标准库。它可以提供独立的包,通过这些包,开发者可以用来组建自己的应用程序。微服务架构意味着构建分布式系统,这带来了许多挑战,Go-Kit 可以为多数业务场景下实施微服务软件架构提供指导和解决方案。

  Go-Micro 是一个面向微服务的可插拔 RPC 框架,可以快速启动微服务的开发。Go-Micro 框架提供了许多功能,无须重新“造轮子”,所以开发者可以花更多的时间在需要关注的业务逻辑上。但是 Go-Micro 在快速启动微服务开发的同时,也牺牲了灵活性,并且将 gRPC 强制为默认通信类型,更换组件不如 Go-Kit 简便。
 
Go-Kit安装
go get github.com/go-kit/kit

 Go-Kit三层架构

  Go-kit介绍及构建微服务第1张

          Go Kit 框架分层示意图

  基于Go-Kit 的应用程序架构由三个主要部分组成:传输层、接口层和服务层。

   1.传输层Transport): 用于网络通信,服务通常使用 HTTP 或 gRPC 等网络传输方式,或使用 NATS 等发布订阅系统相互通信。除此之外,Go-Kit 还支持使用 AMQP 和 Thrift 等多种网络通信模式。。

   2.接口层(EndPoint): 定义Request、Response格式,并可以使用装饰器(闭包)包装函数,以此来实现各个中间件嵌,比如在请求响应的时候添加日志等。 在Go-Kit中,服务中的每个对外提供的接口方法都会被定义为一个端点,以便在服务器和客户端之间进行网络通信。每个端点通过使用 HTTP 或 gRPC 等具体通信模式对外提供服务。

   3.服务层(Service): 这里就是我们具体的业务逻辑实现,包括核心业务逻辑、接口等相关信息存放,。它不会也不应该进行 HTTP 或 gRPC 等具体网络传输,或者请求和响应消息类型的编码和解码。。

免责声明:文章转载自《Go-kit介绍及构建微服务》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Andon系统最完整的介绍HTTP协议---HTTP请求中的常用请求字段和HTTP的响应状态码及响应头下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

04-SQLServer中链接服务器用法--连接Excel

一、总结 1、使用这个SQLServer读取Excel里面的数据,首先要安装Access驱动程序。 2、如果查不到数据的话,检查一下访问接口的允许进程内是否选中。(我测试的时候,不选中也能查出来结果) 二、操作步骤 1、安装AccessDatabaseEngine_X64.exe驱动程序 (1)一直下一步安装就行 下载地址:https://www.mic...

设计模式之外观模式(门面模式)以及如何利用到接口设计中

什么是外观模式   外观模式(Facade),他隐藏了系统的复杂性,并向客户端提供了一个可以访问系统的接口。这种类型的设计模式属于结构性模式。为子系统中的一组接口提供了一个统一的访问接口,这个接口使得子系统更容易被访问或者使用。  外观模式应用场景 简单来说,该模式就是把一些复杂的流程封装成一个接口供给外部用户更简单的使用。这个模式中,设计到3个角色。...

.NetCore,WebApi简易开发框架搭建

1.首先,新建一个.NetCoreWeb开发项目,选择WebApi 如图所示,新建几个文件夹 本框架使用的ORM为Sqlsugar,直接在依赖项--->管理nuget程序包,搜索Sqlsugar,选择SqlsugarCore,安装 安装好ORM后,我们开始连接数据库 首先写DbContext类 public class DbContext...

【postman】postman访问后端的post接口,设置Cookie的记录,设置Pre-request Script

postman访问后端的post接口,设置Cookie的记录,设置Pre-request Script 设置示例: pm.request.headers.add({ key: 'Cookie', value: 'ticket=CD7933EA05CC76573068CBC182D57DB907955093D8A2133B60BB3ECB48...

高通创始人复盘30年发展历程

美国西海岸时间12月12日,在圣迭戈高通总部,我们见到了久违的艾文·雅各布(Irwin Jacobs,以下简称艾文)。   这是一位已经被写入传奇的老人。   最早,他在大学学习的是酒店管理,但只学了一年半,就果断转学电子工程,最终在麻省理工学院取得博士学位后留校任教。1968年,他辞去做了13年的老师工作,与两位同伴共同创业,成立了一家知名的技术咨询公司...

websocket通信 h5flash 兼容ie

H5新功能websocket不用说了,现代浏览器都支持,拿起来就可以用。接下来主要分享下socket通信兼容ie: 方案:flash socket; 前段代码:https://github.com/gimite/web-socket-js; 主要用到里面的3个文件:swfobject.js;web_socket.js;WebSocketMain.swf/W...