编程语言
首页 > 编程语言> > 三年java开发面试题

三年java开发面试题

作者:互联网

前言

今天我们来说说Redis为什么高性能?如何做高可用?

Redis为什么这么快?

  1. Redis是单线程的,避免了多线程的上下文切换和并发控制开销;
  2. Redis大部分操作时基于内存,读写数据不需要磁盘I/O,所以速度非常快;
  3. Redis采用了I/O多路复用机制,提高了网络I/O并发性;
  4. Redis提供高效的数据结构,如跳跃表、哈希表等;

目录

Kafka的基本介绍

Kafka是最初由Linkedin公司开发,是一个分布式、分区的、多副本的、多订阅者,基于zookeeper协调的分布式日志系统(也可以当做MQ系统),常见可以用于web/nginx日志、访问日志,消息服务等等,Linkedin于2010年贡献给了Apache基金会并成为顶级开源项目。

主要应用场景是:日志收集系统和消息系统。

Kafka主要设计目标如下:

Kafka的设计原理分析

一个典型的kafka集群中包含若干producer,若干broker,若干consumer,以及一个Zookeeper集群。Kafka通过Zookeeper管理集群配置,选举leader,以及在consumer group发生变化时进行rebalance。producer使用push模式将消息发布到broker,consumer使用pull模式从broker订阅并消费消息。

Kafka专用术语:

Kafka数据传输的事务特点

通常情况下"at-least-once"是我们首选。

Kafka消息存储格式

Topic & Partition

一个topic可以认为一个一类消息,每个topic将被分成多个partition,每个partition在存储层面是append log文件。

在Kafka文件存储中,同一个topic下有多个不同partition,每个partition为一个目录,partiton命名规则为topic名称+有序序号,第一个partiton序号从0开始,序号最大值为partitions数量减1。

这样做的好处就是能快速删除无用文件,有效提高磁盘利用率。

最后

现在正是金三银四的春招高潮,前阵子小编一直在搭建自己的网站,并整理了全套的**【一线互联网大厂Java核心面试题库+解析】:包括Java基础、异常、集合、并发编程、JVM、Spring全家桶、MyBatis、Redis、数据库、中间件MQ、Dubbo、Linux、Tomcat、ZooKeeper、Netty等等**…都已全部整理上传在**我的腾讯文档上:点击这里前往传送门**并会持续更新…可以star一下。

传在**我的腾讯文档上:点击这里前往传送门**并会持续更新…可以star一下。

image

标签:面试题,java,partition,三年,Kafka,消息,offset,segment,broker
来源: https://blog.csdn.net/m0_57473261/article/details/118110319