2018年,我在一家汽车租赁公司做基础架构,主要是rpc,消息队列管理,任务调度系统,短信服务,注册中心,配置中心。简单说一说:
1 RPC + 注册中心
RPC是自研的,参考神州专车的模式,支持TCP,HTTP两种模式。
注册中心是参考京东jsf的模式
- 独立的http名字服务
- tcp通讯使用rocketmq remoting
- 客户端持久化使用berkleydb
- 注册中心client使用推拉结合的方式
2 消息队列管理
公司主要是使用rocketmq ,我和团队的成员做了两件事情:
- 参考阿里ons client,参考其中的精华,设计了mq-client 做了简单的优化
- 修改rocketmq的console,支持多集群的模式
3 任务调度系统
公司使用的xxlJob , 我们进行了若干优化
- 参考美团crane,阿里的schedulex的测试
- 支持公司的rpc,自定义通讯协议
4 短信服务
公司接入了很多公司的短信服务,每个团队都自己写接口直接调短信公司的服务。每条业务线都单独维护,假如短息服务变化,很多业务线都得改。
我参考腾讯云的模式,设计了sdk, 每个业务线单独接入sdk即可。
我觉得2018年我们基础架构团队做了很多事情,有一天,CTO准备创业了,大家在一起聊:"基础架构的未来", 他对我们讲:"以后云越来越便宜了,而且云端做的基础架构更加优秀,那你们的未来在哪里呢?"
他的这句问话,我思考了很久。我觉得思路可以转变下:
- 云端虽然很美,但很多大的公司基于安全或者战略考量,还是会自建机房,很多技术部也需要基础架构,这种情况下,基础架构的岗位还是会有需求
- 业务需求千变万化,很难说云端的服务可以满足所有的技术场景, 基础架构的独特价值就有了,能够对技术进行定制化。
- 公司技术领导肯定希望技术提供的服务安全,可靠,不排除在极端场景下,某一种云不可靠,这个时候,基础架构师需要能根据实际场景,能提供可靠的基础服务(容灾,负载均衡)。
- 基础架构虽然在很多大公司有单独的部门,但我想不要分条条框框,能站在高的维度思考公司的技术发展战略就是好的架构师。
- 懂业务,技术强,能解决问题的人在任何公司都是受欢迎的。
大家对基础架构师有什么想法?欢迎在评论区留言。