微服务开发上篇:开发框架及其与RPC、数据库、Redis的集成

从这一章开始,我们正式进入微服务开发篇,共分上、中、下三篇。

本章我们将讨论开发框架,框架与RPC、数据库、Redis的集成。

2001年,我刚开始编程时,接触的第一个语言是"ASP"(没有.net),它通过脚本注解的方式,实现动态功能(存取数据库等),有点类似于PHP。在那个没有开发框架的年代,我们依然可以实现功能。但是这里只是“功能上的满足”,确无法做到“工程上的最优”,例如:

  • HTML与脚本混编,无论是页面样式修改,还是逻辑修改都很麻烦(视图、逻辑混合)

  • 有不少功能重复的代码,无法复用(如创建数据库连接)

  • 页面之间的内部依赖难以处理(往往只能通过url / session参数传递)

开发框架的出现,解决了上述部分问题,以Spring为例:

  • Spring MVC实现的分层架构,将页面、视图、逻辑层强制分离

  • Spring JPA组件可以创建数据库模板,减少重复代码

  • 通过IoC容器,可以清晰地分离逻辑、处理依赖

  • ....

当然,引入开发框架会带来额外的学习成本。Spring Boot借鉴了ROR框架中“约定优于配置”的设计理念,进行了大量的改造,实现了框架的“开箱可用”,有效降低了学习成本。

本章会使用一个微服务为例,介绍Gradle + Spring Boot的基础集成。在此基础上,我们会介绍几个与框架紧密相关的内容:RPC框架、数据库、Redis的集成。