- 什么是微服务
架构模式或者架构风格,单一应用划分为一组小的服务,每个服务运行在独立的自己的进程中。
将系统根据业务拆分成一个一个的服务,每一个微服务提供单个业务功能的服务。
优点:
- 每个服务足够内据,代码容易理解这样焦距一个制定的业务功能或者业务需求
- 开发简单、效率高
- 可以小团队单独开发
- 送耦合的,独立
- 可以使用不同的语言
- 易于集成,
缺点:
- 运维复杂
- 部署依赖
- 通讯成本
- 数据一致性
- 性能监控
微服务之间是如何独立通讯
springcloud和dubbo的区别
通信:dubbo 是采用rpc,cloud是采用restful,牺牲性能,但避免了rpc的问题,更加的灵活。服务提供放和调用放的依赖依靠一直契约,不存在代码级别的强依赖,更加快速的迭代和演化
dubbo是rpc的框架,springcloud是为服务框架下的一站式解决方案
- springboot和springcloud,谈谈理解
SpringBoot,可以用于为服务的开发的基础组件,提供spring的相关支持,简化了配置,开发单体微服务
SpringCloud,基于SpringBoot提供了一套为服务解决方案,将一个个为服务整合管理,提供了包含服务注册与发现,配置中心,全链路监控,网管,负载均衡,熔断器,事件总线,全局锁,决策竞选,分布式会话等集成服务。依赖springboot的关系,
什么是服务荣段?什么是服务降级
微服务的优缺点,项目中的坑是啥
你知道的微服务的技术栈有哪些
服务治理、服务注册、服务调用、服务负载均衡、服务监控 -> springcloud
服务开发 springboot Spring Springmvc
服务配置与管理 archaius diamond
服务注册与发现 eureka consol zookeeper
服务调用 rest rpc grpc
负载均衡 bibbon
荣短期 hystrix
服务接口调用 feign
服务配置中心管理 springcloudconfig chef
消息队列 kafka rabbot active
路由 zuul
监控 zabbix nagios metrics
全链路追踪 zipkin brave dapper pinpoint
服务部署 docker
数据流操作开发 springcloudtream
事件消息总线 springcloudbus
- eureka和zk都可以提供服务的注册与发现的功能,两者区别
e 采用cs架构,可以做为服务注册功能,它是服务注册中心
有一个server 和一个client
提供心跳服务
eureka 遵守ap
zk 遵守cp c:强一致性,a:高可用,p:分区容错, 3个进2个
ek:可以很好的应对网络故障失去联系,多个节点为平等,可以替代,
zk:需要重新选举,导致不可用的情况发生,30-120S左右
cap理论
双11, 为ap模式
- ribbon,feign的负载均衡区别,和nginx的负载均衡的区别
ribbon:客户端 负载均衡的工具 如,论寻,随机链接 lb:集中是lb设施,如f5,nginx,进程是lvs方式,集成到消费方
feign 声明式的web服务器客户端,只需要创建一个接口,然后在上面添加注解即可