大家好,我是二哥呀。
往年 21k 算白菜,今年水涨船高,有同学淘天开了 25k,也说自己是白菜😄,照这样下去,开 SSP 的同学也只敢说自己开了大 SP。
果不其然,星球里一位球友的 base 给的很高,必须是 SSP 的水平,并且还是 AI Agent 相关业务开发,直接就杀死比赛了。
他是 26 届当中我印象最深刻的一位,可能没有之一。9 月中旬就 OC 了五家大厂。
现在总算是告一段落了,相信他会有一个光明的未来,毕竟 AI 就是现在的版本答案。
能陪伴大家从开花到结果,感觉人生真的特别有意义——我骄傲。
虽然 26 届秋招已经是下半场,还有最后 20 天就将落下帷幕,但希望 26 届已经开奖的同学不要忘了二哥,常回来看看、瞅瞅,让我们相随相伴到永远😄。
这里也把《Java 面试指南》专栏中收录的,有关淘天的薪资给大家同步一下,做个参考。
- 硕士 211,Java 开发岗,给了 26k,还有 2k 的房补,签字费 1 万,base 杭州;
- 本科 985,Java 岗,给了 28k,签字费 8 万,绝对大 SP 的水平;
- 后端岗给了 29k,还有 800 交通补贴;
- 开发岗给了 32k,绝对 SSP 的水平了,算上房补和交通补贴,年包 55 万左右了。
淘天和阿里云算是阿里最重要的核心资产了,自从支付宝独立门户后,这俩就是顶梁柱,所以每年的年终奖也是阿里各 bu 当中最好的两个。
这里透露几点阿里系今年的招聘特点,27 届打算冲阿里系的同学一定要注意:
- 强 AI 味,这也是阿里今年能打翻身仗的重要原因,所以大家简历上一定要有 AI 相关的开发内容。
- 要有多段实习经历,如果能有一段日常一段暑期,秋招基本上就是横着走。
- 八股一定要知其然知其所以然,不管是实习还是秋招,八股盛宴几乎就是开胃菜。
给大家看一眼球友当时的淘天一面面经(暑期实习),日常实习拷打了 15 分钟,然后就是高频八股,还有大模型。
了解了一家公司的招聘特点,就能有的放矢,更针对性的查漏补缺。这样求职的成功率也会大大提高。
那有同学可能就要问了,这位球友找日常实习的时候用的什么项目啊?
答案是:技术派+ mydb,这是他二开技术派的网站。
开始的早,确实有一定的优势,日常相对来说是各个校招求职阶段最容易的一趴。
希望有时间去实习的同学一定要把握住寒假前的这个窗口期,也不剩多少时间了,春节后就要筹备暑期实习了。
节奏还是挺紧凑。
八股带背-淘天篇
接下来,我会花一段时间带背八股,主要针对面渣逆袭 RocketMQ 篇(顺嘴,好背),网址:https://javabetter.cn/sidebar/sanfene/rocketmq.html
6.消息的消费模式了解吗?
我认为消费模式可以从两个维度来分类:一个是消费的方向,一个是消费的范围。
从消费方向来分的话,有两种模式,一种是 pull 模式,一种是 push 模式。
pull 模式需要消费者主动去消息队列中拉取消息,消费者可以控制拉取的速度、数量,但需要不断地轮询,比较浪费资源。
push 模式则是消息队列主动把消息推送给消费者,消费者只需要注册一个监听器,消息一到达就会触发回调进行处理,响应速度快,但可能会出现消息堆积的情况。
从消费范围来分的话,也有两种模式,一种是集群消费,一种是广播消费。
集群消费是指,同一个消费者组中的多个消费者共同消费一个主题中的消息。消息被分散分配给这个消费者组中的各个消费者,每条消息只被这个消费者组中的一个消费者消费。
RocketMQ 会把主题下的所有队列均匀地分配给消费者组内的消费者,实现负载均衡。同时保证同一条消息只会被消费者组内的一个消费者消费,避免重复消费。
Topic: order_topic
├─ Queue 0 → [消息1] [消息3] [消息5]
├─ Queue 1 → [消息2] [消息4] [消息6]
├─ Queue 2 → [消息7] [消息9] [消息11]
└─ Queue 3 → [消息8] [消息10] [消息12]
ConsumerGroup: order_consumer_group
├─ Consumer 1 消费 Queue 0, 1
├─ Consumer 2 消费 Queue 2, 3
同一条消息只被 Consumer 1 或 Consumer 2 之一消费,不会重复消费。
广播消费是指,同一个主题的每条消息都会被消费者组内的每个消费者消费一次。也就是说,消费者组内的每个消费者都会收到主题下的所有消息,从而实现消息的广播效果。
Topic: config_update_topic
└─ [配置更新消息1] [配置更新消息2] [配置更新消息3]
ConsumerGroup: config_consumer_group
├─ Consumer 1(服务器1上的应用)
│ └─ 收到:消息1, 消息2, 消息3(完整的)
│
├─ Consumer 2(服务器2上的应用)
│ └─ 收到:消息1, 消息2, 消息3(完整的)
│
└─ Consumer 3(服务器3上的应用)
└─ 收到:消息1, 消息2, 消息3(完整的)
三个消费者都收到了所有的消息,各自独立处理。
7.RocketMQ 的基本架构了解吗?
RocketMQ 的架构由四个核心部分组成:NameServer、Broker、生产者和消费者。
我的理解是,NameServer 就是 RocketMQ 的路由中心,负责维护 Topic 和 Broker 之间的路由信息。生产者在发送消息前,消费者在消费消息前,都会先从 NameServer 获取最新的路由信息。
-
每个 Broker 会向 NameServer 注册自己的信息,包括 Broker 的地址、端口、存储的 Topic 和 Queue 等。
-
NameServer 会根据 Topic 名称告诉生产者和消费者对应的 Broker 地址。
-
Broker 会定期向 NameServer 发送心跳,报告自己的状态。
Broker 是消息存储中心,它的职责包括:
-
所有生产者发送的消息都会被存储在 Broker 上,以文件的形式持久化到磁盘。
-
消费者从 Broker 拉取消息时,Broker 需要根据消费者的 Offset 找到对应的消息,返回给消费者。
-
如果配置了高可用,Broker Master 会把消息同步到 Broker Slave,实现主从备份。
生产者在发送消息时,会先从 NameServer 获取 Topic 的路由信息,然后根据路由信息把消息发送到对应的 Broker 上。
消费者在消费消息时,也会先从 NameServer 获取 Topic 的路由信息,然后根据路由信息从对应的 Broker 上拉取消息进行处理。
ending
一个人可以走得很快,但一群人才能走得更远。二哥的编程星球已经有 10400 多名球友加入了(马上涨价),如果你也需要一个优质的学习环境,戳链接 🔗 加入我们吧。这是一个 简历精修 + 编程项目实战(RAG 派聪明 Java 版/Go 版本、技术派、微服务 PmHub)+ Java 面试指南的私密圈子,你可以阅读星球专栏、向二哥提问、帮你制定学习计划、和球友一起打卡成长。
最后,把二哥的座右铭送给大家:没有什么使我停留——除了目的,纵然岸旁有玫瑰、有绿荫、有宁静的港湾,我是不系之舟。共勉 💪。
回复