将 PetClinic 重构为微服务架构(上)|学习笔记

简介: 快速学习将 PetClinic 重构为微服务架构(上)

开发者学堂课程【阿里云 K8S 微服务部署案例将 PetClinic 重构为微服务架构(上)学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/668/detail/11568


将 PetClinic 重构为微服务架构(上)

内容介绍:

一、将 PetClinic 单体解耦拆分为微服务架构

二、将 PetClinic 微服务项目源码 Review

一、将 PetClinic 单体解耦拆分为微服务架构

将 PetClinic 重构为微服务架构,将他布局在本地以及阿里云的环境,在上一章我们学习到 PetClinic 单体版,单体版是指所有的业务逻辑都在一套代码当中,运行在一个 pod 当中,为了方便使用既支持 skl 数据库的使用也支持对接 sql 数据库,本身 pod 的业务逻辑很少。

image.png

微服架构是我们学习的重点,微服架构在 KS8 环境的部署,我们可以将单体版进行解耦拆分,重新改成微服版,下图是重构后。

image.png

首先重新架构后可以业务逻辑类会被分成三个分别表示兽医服务,访问宠物服务,客户服务,这三个 API 所表达的底层都有数据逻辑,既支持嵌入式启动也支持对接的数据库,这是后台三个微服务。

image.png

其次经过重新构架后原来的 web 界面也变成一个服务,一方面调用和聚合数据另一方面展示页面逻辑。

这个 web 也是通过 Springboot 实现开发的,最后重新架构为微服务后我们需要引入一个微服务网关也可以说是反向代理,后续我们会使用 KS8sIngress 来替代。

运行的时候先通过浏览器加载静态资源,然后用户在浏览器中有查询和更新的动作是进行出发调用,网关会反向通过3个后台系统进行调用处理。

注意:

在微服务中服务较多,展示时空间可以不足,所以要有一个逻辑展示,实际部署时应该有两个,一个是虚拟机 pod,另一个是反向代理service。

另外需要注意:

把单体版拆分成微服务是展示课程的目的,其实拆分为微服架构是没有必要的,反而引入了复杂性。在使用时主要看程序规模是否需要微服务。

在代码中我们先从 pom 学起,首先使用继承,管理,使用的是2.1.3版本。

展示的是微服架构的模块插件,如果需要上传则需要上传${docker.image.prefix}镜像仓库的前缀,后面的是项目的ID是自动生成的。

在本地进行配置账号和密码

也可以设置 mavebsetting.xml 来进行配置,将账号密码进行填写

image.png

在 pom.xml 中主要通过 Springboot 进行代码编写写依赖

lombok 是目的是简化缩写的,程序最后是有微服镜像

Data 中演示的是总体的值数据

image.png

Model 是程序的模型层,所有的代码都在其中。

JAVA 中的 owner 是和数据库中一一对应的,其他的也是一一对应的。

image.png

这个是主要负责继承的

image.png

通过 OwnerResource 方法来暴露 API

image.png

这个是入口程序,是运行程序的地方

image.png

使用 hsql 会自动加载到数据库后加载数据

image.png

环境设置成8084是可以进行重载的

进行管理端点,让其暴露出来

会出来方法的重载,会有连接字符串的配置,包括是否要初始化数据等相关配置。

image.png

使用的是基础镜像,一个是 name,一个是 port 来传递参数(文档的作用),是构建时生成架构的名字,路径和属性,add是指镜像的添加到所指文件,最后是需要 JAVA 命令来启动应用,其他的表示为参数,暂时可以忽略。

image.png

相关文章
|
2月前
|
Cloud Native Serverless API
微服务架构实战指南:从单体应用到云原生的蜕变之路
🌟蒋星熠Jaxonic,代码为舟的星际旅人。深耕微服务架构,擅以DDD拆分服务、构建高可用通信与治理体系。分享从单体到云原生的实战经验,探索技术演进的无限可能。
微服务架构实战指南:从单体应用到云原生的蜕变之路
|
5月前
|
存储 Java 数据库连接
简单学Spring Boot | 博客项目的三层架构重构
本案例通过采用三层架构(数据访问层、业务逻辑层、表现层)重构项目,解决了集中式开发导致的代码臃肿问题。各层职责清晰,结合依赖注入实现解耦,提升了系统的可维护性、可测试性和可扩展性,为后续接入真实数据库奠定基础。
459 0
|
5月前
|
缓存 Cloud Native Java
Java 面试微服务架构与云原生技术实操内容及核心考点梳理 Java 面试
本内容涵盖Java面试核心技术实操,包括微服务架构(Spring Cloud Alibaba)、响应式编程(WebFlux)、容器化(Docker+K8s)、函数式编程、多级缓存、分库分表、链路追踪(Skywalking)等大厂高频考点,助你系统提升面试能力。
289 0
|
12月前
|
自然语言处理 JavaScript Java
《鸿蒙HarmonyOS应用开发从入门到精通(第2版)》学习笔记——HarmonyOS架构介绍
HarmonyOS采用分层架构设计,从下至上分为内核层、系统服务层、框架层和应用层。内核层支持多内核设计与硬件驱动;系统服务层提供核心能力和服务;框架层支持多语言开发;应用层包括系统及第三方应用,支持跨设备调度,确保一致的用户体验。
1083 81
|
8月前
|
Cloud Native Serverless 流计算
云原生时代的应用架构演进:从微服务到 Serverless 的阿里云实践
云原生技术正重塑企业数字化转型路径。阿里云作为亚太领先云服务商,提供完整云原生产品矩阵:容器服务ACK优化启动速度与镜像分发效率;MSE微服务引擎保障高可用性;ASM服务网格降低资源消耗;函数计算FC突破冷启动瓶颈;SAE重新定义PaaS边界;PolarDB数据库实现存储计算分离;DataWorks简化数据湖构建;Flink实时计算助力风控系统。这些技术已在多行业落地,推动效率提升与商业模式创新,助力企业在数字化浪潮中占据先机。
473 12
|
9月前
|
人工智能 前端开发 Java
DDD四层架构和MVC三层架构的个人理解和学习笔记
领域驱动设计(DDD)是一种以业务为核心的设计方法,与传统MVC架构不同,DDD将业务逻辑拆分为应用层和领域层,更关注业务领域而非数据库设计。其四层架构包括:Interface(接口层)、Application(应用层)、Domain(领域层)和Infrastructure(基础层)。各层职责分明,避免跨层调用,确保业务逻辑清晰。代码实现中,通过DTO、Entity、DO等对象的转换,结合ProtoBuf协议,完成请求与响应的处理流程。为提高复用性,实际项目中可增加Common层存放公共依赖。DDD强调从业务出发设计软件,适应复杂业务场景,是微服务架构的重要设计思想。
|
运维 监控 持续交付
微服务架构解析:跨越传统架构的技术革命
微服务架构(Microservices Architecture)是一种软件架构风格,它将一个大型的单体应用拆分为多个小而独立的服务,每个服务都可以独立开发、部署和扩展。
3316 36
微服务架构解析:跨越传统架构的技术革命
|
10月前
|
传感器 监控 安全
智慧工地云平台的技术架构解析:微服务+Spring Cloud如何支撑海量数据?
慧工地解决方案依托AI、物联网和BIM技术,实现对施工现场的全方位、立体化管理。通过规范施工、减少安全隐患、节省人力、降低运营成本,提升工地管理的安全性、效率和精益度。该方案适用于大型建筑、基础设施、房地产开发等场景,具备微服务架构、大数据与AI分析、物联网设备联网、多端协同等创新点,推动建筑行业向数字化、智能化转型。未来将融合5G、区块链等技术,助力智慧城市建设。
528 1
|
11月前
|
人工智能 安全 Java
微服务引擎 MSE:打造通用的企业级微服务架构
微服务引擎MSE致力于打造通用的企业级微服务架构,涵盖四大核心内容:微服务技术趋势与挑战、MSE应对方案、拥抱开源及最佳实践。MSE通过流量入口、内部流量管理、服务治理等模块,提供高可用、跨语言支持和性能优化。此外,MSE坚持开放,推动云原生与AI融合,助力企业实现无缝迁移和高效运维。
497 1

热门文章

最新文章