谈谈中间件开发,给想从事中间件开发的同学

2022-07-12 13:10:30 浏览数 (1)

前言

本文主要是写给那些想从事中间件开发的同学看的 :)

如果你没有这个打算,那么本文的学习路线非但不实用,还可能会影响你正常的工作 :)

什么是中间件开发?

随着国内软件行业的发展,国内互联网公司规模越来越大,业务越来越复杂,随之使用大量的中间件来提高后台服务性能。由此产生了中间件开发和维护人员。

诚然,在小公司,中间件,例如缓存,MQ,RPC 等服务,极大可能是由业务开发人员自己维护,或者委托第三方云平台运维(支付一些费用)。但,如果后台开发超过 200 人,基本就会组建自己的中间件或者基础架构团队,用于维护后台服务器基础架构和中间件。

更大规模的公司,则由于各种各样的原因(性能,KPI),会自己开发中间件,简称自研。这要求中间件团队需要更多的人员。

中间件开发人员需要哪些素质?

既然需要中间件开发人员,那么中间件开发人员一般从哪里招聘呢?招聘的要求是什么?

通常,一个公司在刚开始组建中间件团队的时候,都会从公司内部挑选精英人才,或者挑选对中间件感兴趣的人才。这时候,可能你没有相关经验,但你仍然有机会参与到中间件开发中。反之,如果你没有中间件开发经验,想通过招聘的方式进入中间件行业,那么相对而言,会有些曲折。

那么,假设,你想从事中间件开发,但,你没有中间件开发经验,且,你的公司也没有组建中间件团队的打算。

该怎么突破?

答:跳槽。跳槽到别的公司的中间件团队。

这里就涉及到了一个中间件团队需要哪些技能。因为跳槽肯定就要面试,如果你面试的是中间件岗位,那么自然,就需要准备中间件的相关知识。

另外,还有一点,在这个分工明确的时代,即使是中间件,也有很多种类,我这里稍微分一下,可能不是很准确。

  1. 服务治理中间件,例如 RPC 相关中间件,限流熔断,链路追踪,分布式配置中心等等。你可以从 SpringCloud 里找到相关的产品。当然国内也有很多优秀的产品。
  2. 存储中间件,例如缓存,MQ等等,如果存储涉及到分布式(通常都会涉及),那么要求相对较高。
  3. 各种 Proxy,不论是数据库,还是 Cache,还是各种存储,通常单机无法承载海量数据,比较简单的办法就是使用 Proxy 进行代理,让应用透明的使用集群。出于性能考虑,这里通常会使用性能较高的产品,例如 goLang,C 等。Java 的长处——开发效率,在这个地方权重不大。
  4. 各种分布式中间件,例如 ZK 这种,这个我个人认为难度是较大的。分布式向来是软件开发中比较困难的一个点。特别是涉及到存储和一致性。
  5. 容器相关,k8s,docker等,容器化已经是大势所趋,其实我也不是很懂

    0 人点赞