springcloud 面试知识学习

**微服务是什么? **

微服务化的核心就是将传统的一站式应用,根据业务拆分一个一个的服务,彻底的去耦合,每一个微服务提供单个业务功能的服务,一个服务做一件事,从技术角度看就是一种小而独立的处理过程,类似进程概念,能够自行单独启动或销毁,拥有自己独立的数据库

微服务技术栈有哪些?

  • 服务开发 Springboot,Spring,SpringMVC
  • 服务配置与管理 NetfLix公司的Archaius,阿里的Diamond等
  • 服务发现与注册 Eureka,Consul,Zookeeper等
  • 服务调用 Rest,RPC,gRPC
  • 服务熔断器 Hystrix,Envoy等
  • 负载均衡 Ribbon ,Nginx等
  • 服务接口调用 Feign等
  • 消息队列 Kafka,RabbitMQ,ActiveMQ等
  • 服务配置中心管理 SpringCloudConfig,Chef等
  • 服务路由 Zuul等
  • 服务监控 Zabbix,Nagios,Metrics,Spectator等
  • 全链路追踪 Zipkin,Brave,Dapper等
  • 服务部署 Docker,OpenStack,Kubernetes等
  • 数据流操作开发包 SpringCloud Stream

springcloud是什么?

springcloud=分布式微服务架构下的一站式解决方案,是各个微服务架构落地技术的集合体,俗称微服务全家桶

Springboot和springcloud是什么关系?

springBoot专注于快速方便的开发单个个体微服务,SpringCloud是关注全局的微服务协调整理治理框架,它将Springboot开发的一个个单体微服务整合并管理起来,为各个微服务之间提供配置管理,服务发现,断路器,路由,微代理,事件总线,全局锁,决策竞选,分布式会话等等集成服务

Springboot可以离开springcloud独立使用开发项目,但是springcloud离不开springboot,属于依赖关系

SpringCloud VS DUBBO

                                  Dubbo                                        SpringCloud
 服务注册中心                      Zookeeper                                 Springcloud Netflix  Eureka
服务调用方式                         RPC                                           REST API
服务监控                         Dubbo -monitor                                 SpringBoot Admin
断路器                             不完善                                   SpringCloud Neflix Hystrix
服务网关                             无                                        SpringCloud Netflix Zuul
分布式配置                           无                                        SpringCloud Config
服务跟踪                             无                                         SpringCloud Sleuth
消息总线                             无                                         SpringCloud Bus
数据流                               无                                        SpringCloud Stream
批量任务                             无                                         SpringCloud Task

Eureka包含两个组件:Eureka Server和Eureka Client

Eureka Server提供服务注册服务, 各个节点启动后,会在EurekaServer中进行注册,这样EurekaServer中的服务注册表中将会存储所有可用服务节点的信息,服务节点的信息可以在界面中直观的看到

Eureka Client是一个Java的客户端,用于简化Eureka Server的交互,客户端同时也具备一个内置的使用轮询负载算法的负载均衡器.在应用启动后,将会向Eureka Server发送心跳(默认周期为30秒).如果Eureka Server在多个心跳周期内没有接收到某个节点的心跳,Eureka Server将会从服务注册表中把这个服务节点移出(默认90秒)

在分布式架构中往往伴随CAP的理论.因为分布式的架构,不再使用传统的单机架构,多机为了提供可靠服务所以需要沉余数据因而会存在分区容忍性P

沉余数据的同时会在复制数据的同时伴随着可用性A和强一致性C的问题.是选择停止可用性达到强一致性还是保留可用性选择最终一致性.通常会选择后者

其中zookeeper和eureka分别是注册中心的CP Ap的两种的实践.他们都提供服务注册中心的功能.建议使用Ap,不强求数据的强一致性,达成数据的最终一致性

Eureka AP

Eureka保证了可用性,实现了最终一致性
Eureka各个节点都是平等的,几个节点挂掉不会影响正常节点的工作,剩余的节点依然可以提供注册和查询服务,而Eureka的客户端在向某个Eureka注册或如果发现连接失败,则会自动切换至其他节点,只要还有一台Eureka还在,就能保证注册服务可用(保证可用性),只不过查到的信息可能不是最新的(不保证强一致性),其中说明了,Eureka是不满足强一致性的,但是还是会保证最终一致性

zookeeper CP

zookeeper在选举leader时,会停止服务,直到选举成功之后,才会再次对外提供服务,这个时候说明了服务不可用,但是在选举成功之后,因为一主多从的结构,zookeeper在这时还是一个高可用的注册中心,只是在优先保证一致性的前提下,zookeeper才会顾及到可用性

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值