开发者学堂课程【阿里云 K8S 微服务部署案例:将 PetClinic 重构为微服务架构(上)】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/668/detail/11568
将 PetClinic 重构为微服务架构(上)
内容介绍:
一、将 PetClinic 单体解耦拆分为微服务架构
二、将 PetClinic 微服务项目源码 Review
一、将 PetClinic 单体解耦拆分为微服务架构
将 PetClinic 重构为微服务架构,将他布局在本地以及阿里云的环境,在上一章我们学习到 PetClinic 单体版,单体版是指所有的业务逻辑都在一套代码当中,运行在一个 pod 当中,为了方便使用既支持 skl 数据库的使用也支持对接 sql 数据库,本身 pod 的业务逻辑很少。
微服架构是我们学习的重点,微服架构在 KS8 环境的部署,我们可以将单体版进行解耦拆分,重新改成微服版,下图是重构后。
首先重新架构后可以业务逻辑类会被分成三个分别表示兽医服务,访问宠物服务,客户服务,这三个 API 所表达的底层都有数据逻辑,既支持嵌入式启动也支持对接的数据库,这是后台三个微服务。
其次经过重新构架后原来的 web 界面也变成一个服务,一方面调用和聚合数据另一方面展示页面逻辑。
这个 web 也是通过 Springboot 实现开发的,最后重新架构为微服务后我们需要引入一个微服务网关也可以说是反向代理,后续我们会使用 KS8sIngress 来替代。
运行的时候先通过浏览器加载静态资源,然后用户在浏览器中有查询和更新的动作是进行出发调用,网关会反向通过3个后台系统进行调用处理。
注意:
在微服务中服务较多,展示时空间可以不足,所以要有一个逻辑展示,实际部署时应该有两个,一个是虚拟机 pod,另一个是反向代理service。
另外需要注意:
把单体版拆分成微服务是展示课程的目的,其实拆分为微服架构是没有必要的,反而引入了复杂性。在使用时主要看程序规模是否需要微服务。
在代码中我们先从 pom 学起,首先使用继承,管理,使用的是2.1.3版本。
展示的是微服架构的模块插件,如果需要上传则需要上传${docker.image.prefix}镜像仓库的前缀,后面的是项目的ID是自动生成的。
在本地进行配置账号和密码
也可以设置 mavebsetting.xml 来进行配置,将账号密码进行填写
在 pom.xml 中主要通过 Springboot 进行代码编写写依赖
lombok 是目的是简化缩写的,程序最后是有微服镜像
Data 中演示的是总体的值数据
Model 是程序的模型层,所有的代码都在其中。
JAVA 中的 owner 是和数据库中一一对应的,其他的也是一一对应的。
这个是主要负责继承的
通过 OwnerResource 方法来暴露 API
这个是入口程序,是运行程序的地方
使用 hsql 会自动加载到数据库后加载数据
环境设置成8084是可以进行重载的
进行管理端点,让其暴露出来
会出来方法的重载,会有连接字符串的配置,包括是否要初始化数据等相关配置。
使用的是基础镜像,一个是 name,一个是 port 来传递参数(文档的作用),是构建时生成架构的名字,路径和属性,add是指镜像的添加到所指文件,最后是需要 JAVA 命令来启动应用,其他的表示为参数,暂时可以忽略。