1. 简单说下对于spring boot的理解。
Spring boot是用来简化新Spring应用的初始搭建以及开发过程。基于其起步依赖的使用,可以简化对于项目的依赖管理。基于其自动配置功能,可以从传统的spring配置中解放出来,最大化的把精力放在业务的实现上。
Spring boot对于常用的很多技术、框架提供了便捷的支持,使框架的整合、技术的使用变的更加方便。
Spring boot内置了很多插件,能够快速的开发出应用,对于现在流行的微服务提供了支持。
2. 你熟悉的spring cloud的组件有哪些,作用分别是什么?
Eureka:作为微服务架构的注册中心,提供微服务的注册和服务发现功能,能够监控微服务的状态,动态的把微服务实例加入和移除为服务列表。
Rbiion: 主要用于微服务之间通信时,提供客户端负载均衡的能力。
Hystrix: 主要可以通过服务降级和线程隔离解决微服务雪崩问题,以及通过熔断器提供对于 微服务的保护。
Feign:提供微服务之间的通信功能,封装了http调用的细节,内置了ribbon功能。
Gateway: 作为系统外部请求的统一入口,提供请求的鉴权、路由等功能。
Config:提供配置文件的统一管理,方便配置文件的维护。
Bus:一般配合config使用,可以在微服务不重启的情况下,即时加载最新的配置信息。
3. 常见的消息队列产品有哪些?AMQP和JMS分别是什么?
常见的消息队列产品有:activemq、rabbitmq、rocketmq、kafka等
Amqp是高级消息队列协议,rabbitmq就是基于amqp开发的消息队列产品。
Jms是java消息服务,是规范和接口,是使用java语言开发消息队列产品所需要遵循和实现的。
4. rabbitmq有几种消息发送方式?每种方式的发送消息特点是什么?
Rabbitmq有5种消息发送方式:
简单模式: 消息由一个生产者发出,到达rabbitmq默认交换机,转发给一个队列,只有一个消费者监听这个队列。效果就是一个生产者发出消息,一个消费者接收到消息。
工作队列模式:消息由一个生产者发出,到达rabbitmq默认交换机,转发给一个队列,由多个消费者监听这个队列。效果是每次生产者发出消息,多个消费者只有一个消费者接收到消息。广播模式:消息由一个生产者发出,到达自定义的广播交换机,转发给多个队列,多个消费者监听各自的队列。效果是每次生产者发出消息,多个消费者都能接收到消息。
路由模式:消息由一个生产者发出并指定路由key,到达自定义的direct交换机,转发给多个绑定了发出消息时指定的路由key的队列,多个消费者监听各自的队列。效果是每次生产者发出消息,监听了收到消息的队列的消费者才能接收到消息。
通配符模式:消息由一个生产者发出并指定路由key,到达自定义的direct交换机,转发给多个绑定了发出消息时指定的路由key的队列,多个消费者监听各自的队列。效果是每次生产者发出消息,监听了收到消息的队列的消费者才能接收到消息。(和路由模式的区别在于指定路由key的方式不一样,是通过#或者*来设置路由key匹配规则进行路由key的匹配)