对于9-19练习题问题1、2、3的理解
来源:9-19 【勤于思考,夯实学习成果】阶段练习题

胡同小巷
2021-03-07
问题1:redis是一个开源的键值对存储系统,支持String、list、set、zset等多种数据类型,具有高性能(redis是内存数据库,并且是单线程工作模式,避免了不必要的上下文切换和竞争条件)、高可用(redis支持数据持久化,通过RDB和AOF两种方式可以将数据持久化到硬盘中,并且支持主从复制和哨兵,单点redis故障后,可以通过哨兵选举新的master)、高并发(redis支持集群部署,)的特性。在springboot中通过RedisTemplate或StringRedisTempalte对redis进行读写操作,提供了诸多便利的操作方法,通常使用opsForXXX方法存取数据。
问题2:kafka是一个分布式发布订阅消息系统,可以支持海量数据的传递,在消息处理业务中有广泛的应用。kafka具有高性能,可靠性和可扩展性,Kafka在保证了较高的数据处理速度的同时,还保证了数据处理的低延迟和零丢失,Kafka将消息持久化到硬盘中,并且对消息创建了备份,保证了数据的安全。是一个具有分区机制、副本机制和容错机制的分布式消息系统,整个系统可以包含多个broker,也就是多个服务器实例。每个主题topic会有多个分区,kafka将分区均匀地分配到整个集群中,当生产者向对应主题topic传递消息,消息通过负载均衡机制传递到不同的分区以减轻单个服务器实例的压力。kafka是个可持久化的日志服务,它将数据以数据日志的形式进行追加,最后持久化在磁盘中,kafka中每个消息发生到topic的partition中,都会有一个偏移量offset用来标记消息在文件中的起始位置,以此保证了partition中消息的顺序。kafka将消息追加到日志文件中,也是利用了磁盘的顺序读写,来提高读写效率,持久化队列利用追加日志的方式构建,生产者将消息追加到日志尾部,消费者读取头部的消息,两者互不干扰,也不需要加锁,提高了性能,同时时间复杂度为O(1)。
问题3:Ribbon主要功能是提供客户端的软件负载均衡算法,Ribbon 是一个客户端负载均衡器。Feign是声明式的web service客户端,在Spring Cloud微服务中用于实现微服务之间的声明式调用,它让微服务之间的调用变得更简单了,类似controller调用service。Hystrix 熔断器,容错管理工具,旨在通过熔断机制控制服务和第三方库的节点,从而对延迟和故障提供更强大的容错能力。Hystrix 具备了服务降级、服务熔断、线程隔离、请求缓存、请求合并以及服务监控等强大功能。
三者之间的关系:在Spring Cloud微服务体系下,微服务之间的互相调用可以通过Feign进行声明式调用,在这个服务调用过程中Feign会通过Ribbon从服务注册中心获取目标微服务的服务器地址列表,之后在网络请求的过程中Ribbon就会将请求以负载均衡的方式打到微服务的不同实例上,从而实现Spring Cloud微服务架构中最为关键的功能即服务发现及客户端负载均衡调用。
1回答
-
张勤一
2021-03-09
同学你好:
感谢你的回复,我已经把你的回复分享到 QQ 群了!谢谢你!
我是勤一,欢迎随时找我!
112021-03-12
相似问题