Spring Cloud入门

微服务框架Spring Cloud

一:什么是Spring Cloud

Spring Cloud是一个基于Spring Boot实现的微服务架构开发工具,是一系列框架的有序集合。它为微服务架构中设计的配置管理,服务治理,断路器,智能路由,微代理,控制总线,全局锁,决策竞选,分布式会话和集群状态管理等操作提供了一种简单的开发方式。

二:Spring Cloud组件

Spring Cloud Netflix

它是核心组件,对多个Netflix OSS开源套件进行整合。

包含组件

  • Eureka:eureka是一个服务注册和发现模块。
  • Hystrix:容错管理组件,实现断路器模式,帮助服务依赖中出现的延迟和为故障提供强大的容错能力
  • Ribbon:是一个负载均衡客户端,可以很好的控制HTTP和TCP的一些行为,Feign默认集成了Ribbon
  • Feign: 基于Ribbon和Hystrix的声明式服务调用组件
  • Zuul:网关组件,提供智能路由、访问过滤等功能
  • Archaius:外部化配置组件
Spring Cloud Config

配置管理工具,支持使用Git存储配置内容,可以使用它实现应用配置的外部化存储,并支持客户端配置信息刷新,加密/解密配置内容等。

Spring Cloud Bus

事件、消息总线,用于传播集群中的状态变化或事件,以触发后续的处理,比如用来动态刷新配置。

Spring Cloud Cluster

针对ZooKeeper、Redis、Hazelcast、Consul的选举算法和通用状态模式的实现。

Spring Cloud Consul

服务发现与配置管理工具。

Spring Cloud Stream

通过Redis、Rabbit或者Kafka实现的消费微服务,可以通过简单的声明式模型来发送和接收消息。

Spring Cloud Security

安全工具包,提供在Zuul代理中对OAuth2客户端请求的中继器。

Spring Cloud Sleuth

Spring Cloud 应用的分布式跟踪实现,可以完美整合 Zipkin。

Spring Cloud ZooKeeper

基于ZooKeeper 的服务发现与配置管理组件

Spring Cloud Starters

Spring Cloud 的基础组件,它是基于Spring Boot 风格项目的基础依赖模块。

Spring Cloud优缺点

优点
  • 每个服务直接足够内聚,代码易理解
  • 开发效率高,一个服务只做一件事,适合小团队开发
  • 松耦合,有功能意义服务
  • 可以用不同语言开发,面向接口编程
  • 易于第三方集成
  • 微服务只是业务逻辑的代码,不会和HTML、CSS或其他界面结合
  • 可以灵活搭配,连接公共库/连接独立库
缺点
  • 分布式系统的责任性
  • 多服务运维难度加大
  • 系统部署依赖,
  • 服务间通信成本高
  • 数据一致性,
  • 系统集成测试
  • 性能监控

Spring Cloud和dubbo的区别

  • 服务调用方式不同:dubbo是RPC,Spring Cloud是Rest Api
  • 注册中心:dubbo是zookeeper,Spring Cloud可以是eureka,也可以是zookeeper
  • 服务网关:dubbo本身没有实现,只能通过其他第三方技术整合,Spring Cloud有Zuul路由网关,作为路由服务器,进行消费者的请求分发,Spring Cloud支持断路器,与git完美集成配置文件支持版本控制,事物总线实现配置文件的更新与服务自动装配等等一系列的微服务架构要素

微服务技术栈

  1. 维度(Spring Cloud)
  2. 服务开发:Spring Spring MVC Spring Boot
  3. 服务配置与管理:Netflix公司Archaiusm,阿里的Diamond
  4. 服务注册与发现:Eureka,Zookeeper
  5. 服务调用:Rest,RPC,gRPC
  6. 服务接口调用:Fegin
  7. 服务熔断器:Hystrix
  8. 服务负载均衡:Nginx,Ribbon
  9. 消息队列:kafka,RabbitMQ , ActiveMQ
  10. 服务配置中心管理:Spring Cloud Config
  11. 服务路由(API网关):Zuul,Gateway
  12. 事件消息总线:Spring Cloud Bus

Spring Cloud如何实现服务的注册

  1. 服务发布时,指定对应的服务名,将服务注册到注册中心eureka zookeeper
  2. 注册中心加 @EnableEurekaServer,服务用 @EnableDIscoveryClient,然后用ribbon或feign进行服务直接的调用发现
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值