1.微服务的优点– 微服务访谈问题
微服务架构是一种架构模式或者说是一种架构风格,它提倡将单一应用程序划分成一组小的服务,每个服务运行在其独立的自己的进程中,服务之间互相协调、互相配合,为用户提供最终价值。服务之间采用轻量级的通信机制互相沟通(通常是基于HTTP的RESTful API)。
· 独立开发 – 所有微服务都可以根据各自的功能轻松开发
· 独立部署 – 基于其服务,可以在任何应用程序中单独部署它们
· 故障隔离 – 即使应用程序的一项服务不起作用,系统仍可继续运行
· 混合技术堆栈 – 可以使用不同的语言和技术来构建同一应用程序的不同服务
· 粒度缩放 – 单个组件可根据需要进行缩放,无需将所有组件缩放在一起
2. springcloud断路器的作用 (Hystrix断路器)
· 服务降级 · 服务熔断 · 服务限流 · 接近实时的监控
当一个服务调用另一个服务由于网络原因或自身原因出现问题,调用者就会等待被调用者的响应当更多的服务请求到这些资源导致更多的请求等待,发生连锁效应(雪崩效应)
断路器有完全打开状态:一段时间内 达到一定的次数无法调用 并且多次监测没有恢复的迹象 断路器完全打开 那么下次请求就不会请求到该服务
3,Gateway网关服务
网关常见的功能有路由转发、权限校验、限流控制等作用。
性能:API高可用,负载均衡,容错机制。
安全:权限身份认证、脱敏,流量清洗,后端签名(保证全链路可信调用),黑名单(非法调用的限制)。
日志:日志记录(spainid,traceid)一旦涉及分布式,全链路跟踪必不可少。
缓存:数据缓存。
监控:记录请求响应数据,api耗时分析,性能监控。
限流:流量控制,错峰流控,目前有漏桶算法、令牌桶算法也可以定制限流规则。
灰度:线上灰度部署,可以减小风险。
路由:动态路由规则。
静态:代理
4.什么是 zuul路由网关
Zuul包含了对请求的路由和过滤两个最主要的功能:
其中路由功能负责将外部请求转发到具体的微服务实例上,是实现外部访问统一入口的基础而过滤器功能则负责对请求的处理过程进行干预,是实现请求校验、服务聚合等功能的基础.Zuul和Eureka进行整合,将Zuul自身注册为Eureka服务治理下的应用,同时从Eureka中获得其他微服务的消息,也即以后的访问微服务都是通过Zuul跳转后获得。
5、微服务之间是如何通讯的?
第一种:远程过程调用(Remote Procedure Invocation)
直接通过远程过程调用来访问别的service。
示例:REST、gRPC、Apache、Thrift
第二种:使用异步消息来做服务间通信。服务间通过消息管道来交换消息,从而通信。
示例:Apache Kafka、RabbitMQ
6、springcloud与dubbo有哪些区别?
相同点:SpringCloud和Dubbo可以实现RPC远程调用框架,可以实现服务治理。
不同点:SpringCloud是一套目前比较网站微服务框架了,整合了分布式常用解决方案遇到了问题注册中心Eureka、负载均衡器Ribbon ,客户端调用工具Rest和Feign,分布式配置中心Config,服务保护Hystrix,网关Zuul Gateway ,服务链路Zipkin,消息总线Bus等。
7.请谈谈对SpringBoot 和SpringCloud的理解
SpringBoot专注于快速方便的开发单个个体微服务。
SpringCloud是关注全局的微服务协调整理治理框架,它将SpringBoot开发的一个个单体微服务整合并管理起来,为各个微服务之间提供,配置管理、服务发现、断路器、路由、微代理、事件总线、全局锁、决策竞选、分布式会话等等集成服务SpringBoot可以离开SpringCloud独立使用开发项目,但是SpringCloud离不开SpringBoot,属于依赖的关系.SpringBoot专注于快速、方便的开发单个微服务个体,SpringCloud关注全局的服务治理框架。Spring Boot可以离开Spring Cloud独立使用开发项目,但是Spring Cloud离不开Spring Boot,属于依赖的关系。
8.你所知道的微服务技术栈有哪些?请列举一二
服务开发Springboot、Spring、SpringMVC
服务配置与管理Netflix公司的Archaius、阿里的Diamond等
服务注册与发现Eureka、Consul、Zookeeper等
服务调用Rest、RPC、gRPC
服务熔断器Hystrix、Envoy等
负载均衡Ribbon、Nginx等
服务接口调用(客户端调用服务的简化工具)Feign等
消息队列Kafka、RabbitMQ、ActiveMQ等
服务配置中心管理SpringCloudConfig、Chef等
服务路由(API网关)Zuul等
服务监控Zabbix、Nagios、Metrics、Spectator等
全链路追踪Zipkin,Brave、Dapper等
服务部署Docker、OpenStack、Kubernetes等
数据流操作开发包SpringCloud Stream(封装与Redis,Rabbit、Kafka等发送接收消息)
事件消息总线Spring Cloud Bus
9.什么是 Eureka服务注册与发现
Eureka是Netflix的一个子模块,也是核心模块之一。Eureka是一个基于REST的服务,用于定位服务,以实现云端中间层服务发现和故障转移。服务注册与发现对于微服务架构来说是非常重要的,有了服务发现与注册,只需要使用服务的标识符,就可以访问到服务,而不需要修改服务调用的配置文件了。功能类似于dubbo的注册中心,比如Zookeeper。
10.什么是SpringCloud Config分布式配置中心
SpringCloud Config为微服务架构中的微服务提供集中化的外部配置支持,配置服务器为各个不同微服务应用的所有环境提供了一个中心化的外部配置。
11.ZooKeeper四种类型的znode节点
1.持久化节点
2.临时节点
3.持久化顺序节点
4.临时顺序节点
网友评论