Spring Cloud学习笔记1

概念

提供一系列开发组件和框架,帮助开发者迅速搭建一个分布式的微服务系统

常用组件

Eureka:

服务注册与发现

Hystrix:

熔断组件

Ribbon:

负载均衡

Zuul:

路由网关

Spring Cloud Config:

配置文件统一管理

Spring Cloud Securty:

用户认证和权限认证

一般与Spring Cloud OAuth2一起使用

Spring Cloud Sleuth:

分布式链路追踪组件

Spring Cloud Stream:

数据流操作包

消息的接收与发送

项目

Spring Cloud Config:管理所有服务的配置文件

Spring Cloud Netflix:Spring Cloud核心组件:Erueka、Hystrix、Zuul、Archaius

Eureka:服务注册与发现

Hystrix:熔断器组件

Zuul:智能路由网关

Feign:声明式远程调用组件

Ribbon:负载均衡组件

Archaius:配置管理API组件,主要用于多配置的动态获取

Spring Cloud Bus:消息总线组件,与配置服务一起使用,动态刷新服务配置

Spring Cloud Sleuth:服务链路追踪组件,实时监控服务的链路调用情况

Spring Cloud Data Flow:大数据操作组件,混合计算模型,通过命令行方式操作数据流

Spring Cloud Security:安全模块组件,通常与OAuth2使用

Spring Cloud Consul:服务注册与发现组件

Spring Cloud Zookeeper:服务注册与发现组件

Spring Cloud Stream:数据流操作组件,发送和接收消息,封装Redis、RabbitMQ、Kafka

Spring Cloud CLI:以命令行方式,快速运行和搭建容器

Spring Cloud Task:任务调度和管理

Spring Cloud Connectors:Paas云平台连接到后端

功能

注册与发现

服务注册:向服务注册中心注册一个服务实例,服务提供者将自己的服务信息告知服务注册中心

服务发现:服务消费者需要消费另一个服务时,通过服务注册中心获得所要消费服务的实例信息

服务信息:服务名、IP

注册组件:提供服务健康状况查看UI界面

负载均衡

注册服务信息:服务提供者,向注册中心注册服务信息

获得服务支持列表:服务提供者,获取中心持有所有服务的注册信息

                                服务提供者集成的负载均衡组件,通过服务消费者获取服务的注册信息

                                 定时刷新服务的注册信息

消费服务:负载均衡策略,选择一个服务提供者实例,消费服务

网关

意义:

网关统一聚合所有服务的API接口资源,并对外统一暴露;防止外界直接调用和暴露服务的敏感信息

可作身份认证、权限认证;防止非法请求,保护内部服务

实现监控功能,实时日志输出,记录请求

监控流量,高流量时,服务降级

API接口从内部服务分离,方便测试

容错

解决雪崩效应

熔断器:程序故障时,切断请求,保护整个系统

             打开:服务请求失败次数大于设定阙值

             关闭:服务请求失败次数小于设定阙值

            半打开:打开时,一段时间后半打开

                          执行一定量请求,都快速失败,打开

                          执行一定量请求,成功,关闭

优点:资源隔离、服务降级、自我修复

配置管理

过程:

配置文件仓库的配置信息,放置本地或远程仓库

配置服务启动,读取配置文信息,放入内存

启动业务服务,指定读取配置服务的配置信息 

修改服务的配置信息,向配置服务发送POST请求刷新重写,服务向配置服务重新读取配置信息

链路追踪

跟进一个请求的参与服务、参与顺序,快速定位问题

与Dubbo

Dubbo

阿里巴巴开源的一个分布式服务系统

核心内容:

RPC远程调用:多线程

集群容错:负载均衡、失败容错

服务发现:服务注册与发现

流程:

服务提供者向注册中心注册

服务消费者订阅服务

服务消费者发现服务

服务消费者远程调度服务提供者进行消费

服务消费者和服务提供者,在内存中记录服务的调用信息,定时刷新监控中心数据

优点:

连通性:注册中心、服务消费者和服务提供者长连接

健壮性:监控中心宕机,不影响其他服务;

              注册中心集群,宕机不影响注册中心使用

              实例服务集群,宕机不影响服务使用

伸缩性:动态增减注册中心和服务的实例数量

升级性:服务集群升级,不对现有架构造成压力

区别

微服务组件                                Spring Cloud                                       Dubbo

配置管理                                        Config         

服务发现                         Eureka、Consul、Zoopkeeper                  Zoopkeeper   

负载均衡                                   Ribbon                                                   自带

网关                                           Zuul     

分布式追踪                              Spring Cloud Sleuth         

容错                                         Hystrix                                                    不完善

通信方式                                  HTTP、Message                                     RPC

安全模块                                  Spring Cloud Security

与Kubernetes

Kubernetes

一个容器集群管理系统

特点:

大容量:容器数量不断增加

永不过时:灵活地满足各种复杂要求,稳定的提供服务

随时随地运行:自由利用基础组件进行部署

功能:

自动包装:自动配置容器

自我修复:容器失败自动重启;死机、替代、恢复

横向扩展:根据CPU调整容器数量,命令行操作

服务发现和负载均衡:一个虚拟网络环境,每个容器有IP和DNS名称,容器间实现负载均衡

自动部署或回滚:滚动更新模式;逐步替换程序和配置,同时监视程序运行状况,不同时杀死所有实例;出现问题,支持回滚更改。

配置管理:部署或更新配置,不镜像

存储编排:自动安装所选择的存储系统

批量处理:服务,和CI的工作负载

区别

微服务组件                                Spring Cloud                                       Kubernetes

配置管理                                        Config                                         Kubernetes ConfigMap

服务发现                         Eureka、Consul、Zoopkeeper                  Kubernetes Service   

负载均衡                                   Ribbon                                              Kubernetes Service   

网关                                           Zuul                                                  Kubernetes Service   

分布式追踪                              Spring Cloud Sleuth                           Open tracing

容错                                         Hystrix                                              Kubernetes Health Check

通信方式                                  HTTP、Message                               

安全模块                                  Spring Cloud Security                               

分布式日志                                ELK                                                        ELK          

任务管理                                  Spring Batch                                       Kubernetes Jobs 

SpringCloud:优点:基于java,快速开发;

                                 大量类库资源

                        缺点: 基于java,不支持跨语言;

                                   代码关注微服务的功能点

   Kubernetes:优点:支持多语言,应用于多场合;

                                    提供微服务构件功能,以及管理程序的功能;是一个平台

                         缺点:DevOps技术人员,学习成本高

                                   新平台,需要不断学习                             

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值