一、中间件开发技术

2021-08-06 17:27:05 浏览数 (1)

如果平常只是更多的做一些业务代码的开发,那么接触的技术一般是在各类组件的 API 使用上,以及对不同接口的包装。而中间件开发会涉及到各类框架的源码和原理,以及相应的技术迁移和复用。那么在我们这次中间件的设计和实现中,会学到框架、数据、治理、分布式以及字节码的相关技术栈知识,整体包括如下:

作者:小傅哥 链接:https://www.zhihu.com/question/51489402/answer/2022992657 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

  • 技术框架:包括 Spring、SpringBoot 配置加载、自定义注解、扫描注册Bean等,以及 ORM 框架设计原理和实现。这部分技术主要是把开发的中间件与框架结合,开发相应的组件或者包装为各类 SpringBoot Starter 的能力学习。
  • 数据服务:Mysql、Redis、Elasticsearch,都是数据服务,通常需要开发各类组件对数据服务的使用进行封装,Mysql 我们知道有 JDBC,Redis 我们知道有 Jedis,但 Elasticsearch 有 x-pack 你是否了解。
  • 数据组件:这类组件的开发就是为了简化对数据服务的使用,Mysql JDBC ORM,可以非常方便的使用数据库服务,那么 Elasticsearch 是否也可以做相应的组件研发,让它的查询也能像使用 MyBatis 一样呢?二折页的技术能力就需要对 MyBatis 等 ORM 框架的实现原理熟悉,同时需要了解 JDBC 的概念。
  • 分布式技术:RPC 框架、注册中心、分布式任务,都是现有互联网分布式架构中非常重要的技术,而对于如何实现一个 RPC 框架,也技术是研发人员要掌握的重点,同时如何使用注册中心、怎么下发分布式调度任务,等等,这些技术的学习能让对现有的框架使用有更深入的认识。
  • 服务治理:熔断、降级、限流、切量、黑白名单以及对现有方法的非入侵式扩展增强等,都可以成为是服务治理类组件,原本这类技术在早期是与业务逻辑代码融合的,后来逐步被拆解出来,开发成对应的组件。所以我们可以学习到,关于这类组件的包装、集成是如何做的。
  • 字节码&插件:在互联网的系统应用运维过程中,你一定会接触到各类的监控系统,而很多监控系统是非入侵的全链路监控,那么这些是如何实现的呢?其实它们是基于字节码插桩,对系统方法的增强,采集相应的运行时信息,进行监控的。再到扩展 JVMTI、IDEA 插件开发,都是为了整个研发过程的可持续交付和上线提高交付质量和降低人效的。

综上,这些贯穿整个互联网系统架构中的各类典型中间件,都会在后续章节中陆续讲解出来,它们是如何设计和实现的,一点点带你解开中间件的神秘面纱,让你的技术栈知识也增加一些有深度的并且是可以亲自操作的内容。

二、中间件设计和实现列表

0 人点赞