1.今日面试题

1.1什么是微服务?

微服务是分布式式架构方案的一种,是将单体架构拆分成多个功能模块进行开发降低了服务耦合,便于服务后期升级和扩展。

1.2服务间的调用方式有哪些?有何区别?

httpj接口:基于TCP,传输格式一般是Jason,对服务没有任何技术限定,自由灵活。现在热门的REST风格也是通过Http协议实现的。
rcp接口:基于原生TCP通讯,速度快,效率高,数据格式可以自定义。比较典型的Dubbo框架。
链接

1.3什么是SpringCloud?

SpringCloud是微服务的具体实现框架,集成了各种微服务组件,利用springboot能够快速实现微服务开发。

1.4微服务、springboot、springcloud有何联系?

微服务是一种开发理念,springcloud是微服务理念的一种实现方案,而springcloud底层采用的springboot的技术,能够实现微服务组件的自动装配,提高了开发效率。

1.5eureka的作用介绍?

eureka注册中心有三个作用,服务的注册,服务的发现(拉取),和服务的状态监测。

1.6eureka的基本工作原理?

首先服务将自己的请求接口在eureka中注册,当请求过来后,会在注册中心拉取服务列表,通过负载均衡策略选择合适的服务接口进行访问。

1.7ribbon的作用介绍?

ribbon组件是用来实现负载均衡功能的,通过均衡规则选择合适的服务进行访问。

1.8ribbon的基本工作原理?

一个请求过来后,LoadBalancerIntercepor负载均衡拦截器会进行拦截,然后根据IRule均衡策略进行判断,来调用对应的服务。

1.9ribbon支持的负载均衡策略?

论调,区域可用论调,随机,根据权重比、根据响应时间等策略。

1.10nacos的作用介绍?

nacos是阿里巴巴开发的一款注册中心,因为开发eureka的网飞公司目前不支持更新升级,nacos开始热门起来。其作用也是服务的注册,发现,和状态监测。

1.11nacos如何隔离不同环境?

通过namespace进行空间隔离,可以设置多个namespace,不同空间之间不能进行访问。namespace内部也可以设置不同的组别,方便灵活开发。

1.12nacos和eureka的区别?

nacos具有服务分级模型,可以配置集群,更加贴合实际应用开发,发挥负载均衡的功能。nacos的服务实例可以分为临时实例和非临时实例。而非临时实例是eureka所不支持的。

2.总结

微服务是将一个大项目进行功能拆分降低耦合度,每个功能是一个单独的服务,更够缓解服务器访问压力与并发问题。而springcloud就是实现微服务的一种解决方案的框架。不同的服务之间访问通过注册中心来调度,目前有eurreka和nacos两种注册中心。注册中心的作用是服务的注册,服务的发现(拉取),服务的状态监测(心跳机制)。而ribbon组件是为了实现负载均衡功能的,通过LoadBalancerIntercepor负载均衡拦截器和IRule均衡策略来进行选择合理的服务接口。