Kafka中的名词说明和常用命令(详细)

Kafka中的名词说明:

1、Producer:生产者,向kafka broker中发送消息客户端
2、Consumer:消费者,向kafka broker中拉取消息客户端
3、Consumer Group:消费者组,由多个Consumer组成,消费者内每个消费者负责消费不同分区,一个分区只能由一个消费者进行消费,消费者组之间互不影响,所有的消费者都属于某个消费者组,即消费者组是逻辑上一个订阅者
4、Broker:一台kafka服务器就是一个broker,一个集群由多个broker组成,一个broker可以容纳多个topic
5、Topic:理解为一个消息队列,生产者和消费者都是面对一个Topic
6、Partition:为了实现扩展性,每个partition时一个有序队列,partition是topic中存储数据和消费数据所使用的队列所在
7、Replica:副本,为了保证当前某个节点发生故障时,当前节点上的数据不会发生丢失,且kafka可以仍然继续执行,kafka提供了副本机制,一个Topic上的分区可以由多个副本存在,分区和副本质检的关系是leader和follower,
8、leader:每个分区多个副本的“主”,生产者生产数据的对象,以及消费组消费者消费的对象‘
9、follower:每个分区多个副本的“从”,实时从leader数据的同步,一旦leader发生故障,可以保证kafka可以继续提供服务,数据不会丢失,提供一个全新的leader

kafka的常用操作命令:

1、启动kafka

启动之前一定要启动zookeeper
注意是在kafka的,bin目录下

nohup ./kafka-server-start.sh /opt/software/kafka_2.11-1.1.0/config/server.properties &

2、创建Topic

kafka-topics.sh --create --zookeeper hadoop02:2181 --replication-factor 1 --partitions 1 --topic test

解释–create 创建
–zookeeper 在zookeeper中进行存储(节点写一个即可)
–replication-factor 指定副本数量
–partitions 分区数量
–topic topic名称

2、查看kafka中topic

kafka-topics.sh --list --zookeeper hadoop02:2181

3、创建生产者:

 kafka-console-producer.sh --broker-list hadoop01:9092 --topic test

注解:
–broker-list kafka节点
–topic topic名称

4、消费者(换一台节点)

kafka-console-consumer.sh --zookeeper hadoop02:2181 
--from-beginning --topic test

注解:
–zoopkeeper 指定zoopkeeper集群
–from-beginning 指定从头开始消费
–topic 指定消费哪个topic

5、查看详细信息

 kafka-topics.sh --topic test --describe --zookeeper hadoop02:2181

注解:
–topic 指定查看哪个topic
–describe 描述,固定写法
–zoopkeeper 指定zoopkeeper集群

6、更新topic中的分区partitions

 kafka-topics.sh --zookeeper hadoop02 --alter --partitions 1 --topic test

注解:
–alter 更新
–partitions 分区数量,注意更新时只能增多,不能减少

7、删除Topic不是立即生效,而是标记删除

 kafka-topics.sh --delete --zookeeper hadoop02:2181 --topic test1

注解:
–delete 删除
***–zoopkeeper***指定zoopkeeper集群
–topic 指定删除topic名称

<think>嗯,用户想了解后端开发工程师的职责、技能要求。首先,我需要整理引用中的相关信息。引用[2]提到高级后端开发人员的职责包括领导团队、设计系统、解决技术问题,还有项目涉及分布式系统、CI/CD迁移遗留系统。引用[4]强调了Linux系统知识的重要性,特别是常用命令部署。引用[1]提到Java工程师需要掌握的技能,引用[3]涉及面试准备,比如面经、项目、八股文等。 职责方面,需要分初级高级,根据引用[2]的阶段划分。技能部分,编程语言如Java,框架如Spring,数据库缓存技术,系统设计,还有DevOps工具。要求方面,学历通常本科,经验对应年限,软技能如沟通问题解决。发展路径可以按年限分阶段,引用[2]提到高级阶段的职责。面试准备参考引用[3]的结构,包括面经、项目、八股文算法。 要确保回答结构清晰,分点列出,每个部分用引用支持。比如职责部分引用[2],技能中的Linux部分引用[4]。同时生成相关问题,覆盖职责、技能、学习路径、面试等,参考用户给的示例问题。注意用中文,LaTeX格式正确,比如技术名词不需要公式,但如果有的话要正确使用$或$$。最后检查引用标识是否在相应位置,比如项目部署部分引用[4],系统设计引用[2]。</think># 后端开发工程师职责、技能与要求详解 ## 一、核心职责 1. **系统架构设计** 负责构建高可用、高扩展性的分布式系统架构,使用微服务/容器化技术实现业务解耦,如主导Kubernetes集群部署(引用[2]中提到的容器化实施案例) 2. **服务端开发** 开发RESTful API接口,实现用户鉴权、支付系统等核心业务逻辑。例如电商平台的订单处理系统需要处理每秒万级并发请求 3. **性能优化** 通过SQL调优、缓存策略(Redis集群部署)、负载均衡等手段提升系统性能,应对类似"双11"的流量洪峰场景 4. **运维支持** 使用Jenkins搭建CI/CD流水线,实现自动化部署。掌握Linux系统下Nginx配置、日志分析等运维操作(引用[4]中强调的Linux系统知识要求) ## 二、技术技能栈 ### 编程语言 - 基础:$Java/C++/Go$(引用[1]显示Java是主流需求) - 脚本:$Python/Shell$ ### 核心技术 | 技术领域 | 具体要求 | |----------------|--------------------------------------------------------------------------| | 数据库 | MySQL索引优化、PostgreSQL事务隔离级别 | | 中间件 | Redis哨兵模式、Kafka消息队列 | | 框架 | Spring Cloud微服务、Dubbo RPC框架 | | 容器化 | Docker镜像构建、Kubernetes服务编排 | ### 系统设计能力 $$TPS = \frac{Concurrent\ Users \times Requests\ per\ User}{Response\ Time}$$ 需要掌握系统吞吐量计算公式(如上述公式),能设计支撑百万日活的系统架构(引用[2]中提及的大规模系统设计) ## 三、岗位要求 1. **学历要求** 计算机相关专业本科及以上(985/211院校优先) 2. **工作经验** - 初级:1-3年分布式系统开发经验 - 高级:5年以上微服务架构设计经验(引用[2]的职业阶段划分) 3. **软技能** 具备技术文档编写能力,能使用UML绘制系统架构图 ## 四、发展路径 1. **技术路线** 开发工程师 → 架构师 → 技术总监 2. **管理路线** 技术组长 → 研发经理 → CTO ## 五、面试准备建议 1. **算法考核** 重点准备动态规划、二叉树遍历等高频题型(引用[3]建议的算法准备策略) 2. **项目阐述** 使用STAR法则描述微服务改造项目: - Situation:原有单体架构遇到性能瓶颈 - Task:进行服务拆分 - Action:采用Spring Cloud框架 - Result:QPS提升300% 3. **技术深度** 准备MySQL索引原理、JVM内存模型等底层原理问题(引用[3]提到的八股文准备方向)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值