基于spring cloud 的微服务实践-模块介绍

当前微服务架构逐渐成为系统开发的主流方向,搭建微服务方式可以有多种,例如springcloud、dubbo、k8s等,本系列文章将基于本人参与的实际项目,来介绍基于springcloud搭建微服务的方式,Spring Cloud是一个基于Spring Boot实现的云应用开发工具,它为基于JVM的云应用开发中涉及的配置管理、服务发现、断路器、智能路由、微代理、控制总线、全局锁、决策竞选、分布式会话和集群状态管理等操作提供了一种简单的开发方式。其主要模块有:

  1. eureka: 是springcloud体系结构中的服务治理模块,spring cloud eureka 由两个模块组成,Eureka服务器Eureka客户端Eureka服务器充当微服务架构体系中的服务注册中心。其他的微服务,使用 Eureka 客户端连接到 Eureka Server,并维持心跳连接,系统维护人员可以通过 Eureka Server 来监控系统中各个微服务是否正常运行。
  2. zuul:充当微服务架构中api网关对外进行统一暴露,起到限流、动态路由等作用,此处可以根据需要进行扩展,实现日志记录、权限验证等系统级功能;
  3. ribbon:Spring Cloud Ribbon 是一个基于Http和TCP的客服端负载均衡工具,它是基于Netflix Ribbon实现的。它不像服务注册中心(eureka)、API网关(zuul)那样独立部署,但是它几乎存在于每个微服务的基础设施中,当Ribbon可以方便的从注册中心中获取已有服务的列表,因此可以方便的实现服务的负载均衡
  4. feign:Spring Cloud Feign是一套基于Netflix Feign实现的声明式服务调用客户端,它使得编写Web服务客户端变得更加简单
    ,只需要创建接口并用注解来进行配置,既可以实现对
    其他微服务的访问;
  5. 熔断器hystrix:微服务架构中,可能会存在多个微服务的级联调用,例如 A为服务提供者,B即消费A服务,也为C和D提供服务;这时,如果A不可用,不仅仅会造成B服务不可用,也会将不可用传到至C和D;从而造成雪崩效应
    image.png

    熔断器的原理与电路中的保险丝很强,其实本质就是快速失败;当一定时间内,hystrix检测到一定数量的相同错误,会强迫之后的访问快速失败,不需要系统资源浪费在等待超时连接上;防止造成整个系统的崩溃;

  6. Spring Cloud Config:为分布式应用或微服务提供外部的配置支持。其分为客户端和服务端2部分。服务端也可以称之为分布式配置中心,可以作为一个单独的微服务进行部署,用来连接配置仓库,并为客户端提供配置信息访问接口;
  7. spring cloud bus:通过消息中间件连接微服务中的各个节点,他可以用于推送配置文件变更通知或节点间的通讯。其本质是利用MQ广播机制在节点间传送信息
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,404评论 19 139
  • 微服务架构模式的核心在于如何识别服务的边界,设计出合理的微服务。但如果要将微服务架构运用到生产项目上,并且能够发挥...
    程序员技术圈阅读 7,697评论 10 27
  • 1 为什么需要服务发现 简单来说,服务化的核心就是将传统的一站式应用根据业务拆分成一个一个的服务,而微服务在这个基...
    谦小易阅读 25,195评论 4 93
  • 前言 现在研发的项目启动今已近一年之久,期间从项目属性、人员规模、系统定位等方面都发生了很大的变化,而且是越变越好...
    孙振强阅读 14,215评论 1 58
  • 胸里无法养竹自然领悟不了事件的发展趋势,之所以有人能看清未来局势,也许已经占领了高地,从高处往下俯瞰,尽在视...
    平常非常阅读 861评论 0 0