zoukankan      html  css  js  c++  java
  • 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-go gobreaker handy breaker
    Metrics 指标 prometheus, dogstatsd, influx,graphite 等多个平台
    服务发现 consul, dnssrv, etcd, eureka, lb, zookeeper
    Request Tracing Opentracing, 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 框架分层示意图

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

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

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

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

  • 相关阅读:
    【转】iOS:AvPlayer设置播放速度不生效的解决办法
    【转】 Android xml中 @和?区别,style和attr小结
    【转】Android 旋转动画,停止和持续旋转
    【转】Android SDK,ADT,API 版本的对应关系
    【转】说说Android中的style和theme
    【转】 Android中selector的使用
    【转】[置顶] 在Android中显示GIF动画
    mysql if case条件更新
    117. Populating Next Right Pointers in Each Node II
    116. Populating Next Right Pointers in Each Node
  • 原文地址:https://www.cnblogs.com/songgj/p/13028930.html
Copyright © 2011-2022 走看看