1.什么是微服务,他有什么特征?
微服务是系统架构的一种设计风格,将一个原本独立的服务拆分成多个小型服务,每个服务独立运行在在各自的进程中,服务之间通过 HTTP RESTful API 进行通信,每个小型的服务都围绕着系统中的某个耦合度较高的业务进行构建。 单一职责:微服务拆分粒度更小,每个服务都应对唯一的业务能力,做到单一职责 自治:团队独立、技术独立、数据独立,独立部署和交付 面向服务:服务提供统一标准的接口,与语言无关、与技术无关 隔离性强:服务调用做好隔离、容错、降级,避免出现级联问题
2.SpringCloud实现微服务架构有哪些标准组件?分别有什么作用?
组件:Eureka ,Feign ,Ribbon ,Hystrix ,zull 分别有什么作用: Eureka :各个服务启动时,EurekaClient都会将服务注册到EurekaServer,并且EurekaClient还可以翻过来从EurekaServer拉取注册表,从而知道其他服务在哪里。 Feign :基于Feign的动态代理机制,根据注解和选择的机器,拼接请求URL地址,发起请求。 Ribbon :服务间发起请求的时候,基于Ribbon服务做到负载均衡,从一个服务的对台机器中选择一台。 Hystrix :发起的请求是通过Hystrix的线程池来走,不同的服务走不同的线程池,实现了不同的服务调度隔离,避免服务雪崩的问题。 zull:如果前端后端移动端调用后台系统,统一走zull网关进入,有zull网关转发请求给对应的服务。
3.什么是注册中心,它有什么作用?它是怎么做到的?
注册中心可以说是微服务架构中的通信录,它记录了服务和服务地址的映射关系。在分布式架构中,服务会注册到这里,当服务需要调用其它服务时,就到这里找到服务的地址,进行调用。
4.Feign远程调用的原理?
Feign 微服务之间的调用方式,属于较轻量级的调用方式,可以通过注解来进行调用,请求模式也是基于模版化,传入参数封装成请求的模式。 远程调用主要是基于FeignClient注解作用在接口上,被标注的接口可以通过@Resource注入后使用,让Spring容器来管理。
5.Feign的日志级别有哪些?怎么开启它的日志?
NONE < BASIC < HEADERS < FULL 。 @BeanLogger.Level feignLevel() { return Logger.Level.FULL; }
6.什么是负载均衡,它有什么作用?如何给微服务配置负载均衡?
负载均衡是一项基本的网络服务,主要为了了解决公司业务的并发压力,增强网络处理能力,减轻单个设备的资源压力,提高整体服务性能。 客户端的流量将首先到达负载均衡服务器。负载均衡服务器通过某种调度算法将流量分配到不同的应用程序服务器。同时,负载均衡服务器还将在应用程序服务器上执行定期运行状况检查。当发现故障节点时,它将动态从应用程序服务器群集中删除节点,以确保应用程序的高可用性