携程开启秋招补录

进入到 12 月,许多同学要么已经拿到 offer,准备入职,要么躺平休息,等待春招。

等等!先别躺!

还有补录!

此时正是捡漏的时候,快动手投起来!

比如携程就是刚开了补录。

目前研发类岗位有 前端开发工程师数据仓库工程师可以投递。

今年携程很多部门在 11 月中的时候就已经开奖了。给大家整理了一些这次秋招的开奖信息:

  • 后端开发,27k * 15,base 北京
  • 后端开发,30k * 15,base 上海(酒店)
  • 前端开发,27k * 15,base 上海
  • 前端开发,26k * 15,base 上海
  • 测试开发,25k * 15,base 上海
  • 数据分析,20k * 15,base 上海
  • 产品,21k * 15,base 上海

携程除了可以居家办公外,其他福利也给的不错。

每年有 5 天病假,次年开始有年假,逐年累加。另外有的部门还有餐补、出勤补贴。今年还新增了"陪娃假",子女未满 18 岁的员工,每年会有 3 天带薪假期。

26 年开始,携程推出全球员工关怀计划,并计划在2026年全面升级度假福利。1 - 4 级的员工度假福利金将上升到 1000 福豆,5 级及以上员工则统一为 2000 福豆。

但携程的工作压力很看部门,有些部门周末基本不加班,有些部门甚至可以比较稳定地晚 7 点下班,也有部门工作氛围一般,压力较大。

所以大家选择之前,还是应该多做一些了解。

......

今天分享一篇携程面经:

篇幅有限,完整答案可以进入面试鸭 - 程序员求职面试刷题神器,高频编程题目免费刷进行查阅。

Redis 的单线程模型是怎样的?

Redis 之所以设计成单线程:

  1. Redis 的操作是基于内存的,其大多数操作的性能瓶颈主要不是 CPU 导致的
  2. 使用单线程模型,代码简便的同时也减少了线程上下文切换带来的性能开销
  3. Redis 在单线程的情况下,使用 I/O 多路复用模型就可以提高 Redis 的 I/O 利用率了
单线程模型
  • Redis 是一款基于内存的高性能键值存储系统,采用单线程模型的设计。
  • 在 Redis 中,所有客户端的请求都是由一个单线程来处理的,这个单线程不断地从客户端套接字中读取命令请求,并将命令请求放入一个请求队列中。
  • 接着,Redis 的事件处理器会按照一定的规则选择一个请求进行处理,处理完之后将响应结果返回给客户端。

优点

  • 单线程模型的优点是可以避免多线程并发访问共享数据时的竞争和死锁问题,简化了系统的设计和调试。
  • 此外,由于 Redis 的内存访问速度非常快,因此单线程处理请求也能够保证足够的性能。

Kafka 的架构是怎么样的?

Kafka 的基本架构主要包括四个组件:Producer(生产者)、Consumer(消费者)、Broker(消息代理)和 Zookeeper(协调器)。

1)Producer(生产者):负责将数据发布到 Kafka 的特定 Topic 上。它会根据要求将数据以不同的分区策略分布到各个分区里。

2)Consumer(消费者):从 Kafka 的 Topic 中读取数据。消费者可以属于某个消费组(Consumer Group),这样可以让多个消费者平衡负载读取数据。

3)Broker(消息代理):是 Kafka 的核心,消息在这里存储和管理。每个 Kafka 集群可以包含一个或多个 Broker,负责接收、存储、以及发送数据。

4)Zookeeper(协调器):用于 Kafka 的分布式协调和管理任务,比如存储 Broker 的元数据信息、分区列表、Leader 等等。Zookeeper 确保 Kafka 集群的高可用性和一致性。

Kafka 如何保证消息不丢失?

1)使用适当的确认机制(Acknowledgments)

  • 生产者确认机制(acks) :可以配置acks参数来决定生产者在收到多少个副本的确认后认为消息发送成功。例如,acks=all表示所有参与副本都确认接收到消息才表示成功,能最大限度地保证消息不丢失。
  • 消费者确认机制 :消费者也可以通过手动提交偏移量来确保消息已经被正确处理。例如,enable.auto.commit=false时,消费者处理完消息后手动提交偏移量。

2)配置多个副本(Replication)和耐久性(Durability)

  • 副本因子(Replication Factor):Kafka 允许配置每个主题的副本(即每个分区的备份数量)。如果一个 broker 失效,其他副本可以接管工作,从而保证消息不丢失。
  • 最小同步副本(min.insync.replicas):可以设置最小同步副本的数量,确保在确认之前至少有指定数量的副本持久化了这条消息。

3)配置合理的消费偏移(Consumer Offsets)

  • 存储位置:可以将消费偏移保存在 Kafka 中,而不是通过Zookeeper。这种方法能更好地处理消费者重启和再平衡后读取到准确的偏移。
  • 定期保存:确保定期且频繁地保存消费偏移,防止突然宕机导致偏移量丢失。

4)启用幂等生产者(Idempotent Producer)和事务(Transactions)

  • 幂等生产者 :Kafka 提供enable.idempotence=true配置,确保生产者在重复写入时不会产生重复数据,保证消息不丢失。
  • 事务:Kafka 的事务功能允许生产者保证一系列消息的原子性,要么全部成功,要么全部失败,避免中间状态导致消息丢失。
小结

通过以上策略,可以综合提升 Kafka 消息的可靠性和持久性,减少消息丢失的风险。当然,不同场景可能需要组合使用不同策略,根据具体需求进行合理配置。

更多

💻 编程学习交流:编程导航

📃 简历快速制作:老鱼简历

✏️ 面试刷题神器:面试鸭

📖 AI 学习指南:AI 知识库

相关推荐
weixin_4454766812 小时前
leetCode每日一题——边反转的最小成本
算法·leetcode·职场和发展
打工的小王13 小时前
LeetCode Hot100(一)二分查找
算法·leetcode·职场和发展
Swift社区13 小时前
LeetCode 385 迷你语法分析器
算法·leetcode·职场和发展
测试老哥13 小时前
软件测试之功能测试详解
自动化测试·软件测试·python·功能测试·测试工具·职场和发展·测试用例
a程序小傲14 小时前
得物Java面试被问:RocketMQ的消息轨迹追踪实现
java·linux·spring·面试·职场和发展·rocketmq·java-rocketmq
期末考复习中,蓝桥杯都没时间学了14 小时前
力扣刷题10
算法·leetcode·职场和发展
芒克芒克16 小时前
LeetCode 实现 strStr() 题解(暴力匹配法)
算法·leetcode·职场和发展
历程里程碑16 小时前
双指针 --- 接雨水
java·数据结构·python·算法·leetcode·职场和发展·tornado
Anastasiozzzz18 小时前
LeetCode Hot100 739.dailyTemperatures 每日温度
算法·leetcode·职场和发展
橘颂TA18 小时前
【剑斩OFFER】算法的暴力美学——力扣 542 .01 题:矩阵
数据结构·c++·算法·leetcode·职场和发展·哈希算法·结构与算法