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

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
云原生网关 MSE Higress,422元/月
注册配置 MSE Nacos/ZooKeeper,118元/月
简介: 快速学习将 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

相关文章
|
21天前
|
弹性计算 API 持续交付
后端服务架构的微服务化转型
本文旨在探讨后端服务从单体架构向微服务架构转型的过程,分析微服务架构的优势和面临的挑战。文章首先介绍单体架构的局限性,然后详细阐述微服务架构的核心概念及其在现代软件开发中的应用。通过对比两种架构,指出微服务化转型的必要性和实施策略。最后,讨论了微服务架构实施过程中可能遇到的问题及解决方案。
|
20天前
|
Java 开发者 微服务
从单体到微服务:如何借助 Spring Cloud 实现架构转型
**Spring Cloud** 是一套基于 Spring 框架的**微服务架构解决方案**,它提供了一系列的工具和组件,帮助开发者快速构建分布式系统,尤其是微服务架构。
140 68
从单体到微服务:如何借助 Spring Cloud 实现架构转型
|
19天前
|
运维 监控 持续交付
微服务架构解析:跨越传统架构的技术革命
微服务架构(Microservices Architecture)是一种软件架构风格,它将一个大型的单体应用拆分为多个小而独立的服务,每个服务都可以独立开发、部署和扩展。
149 36
微服务架构解析:跨越传统架构的技术革命
|
22天前
|
设计模式 负载均衡 监控
探索微服务架构下的API网关设计
在微服务的大潮中,API网关如同一座桥梁,连接着服务的提供者与消费者。本文将深入探讨API网关的核心功能、设计原则及实现策略,旨在为读者揭示如何构建一个高效、可靠的API网关。通过分析API网关在微服务架构中的作用和挑战,我们将了解到,一个优秀的API网关不仅要处理服务路由、负载均衡、认证授权等基础问题,还需考虑如何提升系统的可扩展性、安全性和可维护性。文章最后将提供实用的代码示例,帮助读者更好地理解和应用API网关的设计概念。
50 8
|
27天前
|
消息中间件 运维 Kubernetes
后端架构演进:从单体到微服务####
本文将探讨后端架构的演变过程,重点分析从传统的单体架构向现代微服务架构的转变。通过实际案例和理论解析,揭示这一转变背后的技术驱动力、挑战及最佳实践。文章还将讨论在采用微服务架构时需考虑的关键因素,包括服务划分、通信机制、数据管理以及部署策略,旨在为读者提供一个全面的架构转型视角。 ####
35 1
|
29天前
|
弹性计算 运维 开发者
后端架构优化:微服务与容器化的协同进化
在现代软件开发中,后端架构的优化是提高系统性能和可维护性的关键。本文探讨了微服务架构与容器化技术如何相辅相成,共同推动后端系统的高效运行。通过分析两者的优势和挑战,我们提出了一系列最佳实践策略,旨在帮助开发者构建更加灵活、可扩展的后端服务。
|
29天前
|
消息中间件 运维 Cloud Native
云原生架构下的微服务优化策略####
本文深入探讨了云原生环境下微服务架构的优化路径,针对服务拆分、通信效率、资源管理及自动化运维等核心环节提出了具体的优化策略。通过案例分析与最佳实践分享,旨在为开发者提供一套系统性的解决方案,以应对日益复杂的业务需求和快速变化的技术挑战,助力企业在云端实现更高效、更稳定的服务部署与运营。 ####
|
20天前
|
Cloud Native API 持续交付
云原生架构下的微服务治理策略与实践####
本文旨在探讨云原生环境下微服务架构的治理策略,通过分析当前面临的挑战,提出一系列实用的解决方案。我们将深入讨论如何利用容器化、服务网格(Service Mesh)等先进技术手段,提升微服务系统的可管理性、可扩展性和容错能力。此外,还将分享一些来自一线项目的经验教训,帮助读者更好地理解和应用这些理论到实际工作中去。 ####
35 0
|
28天前
|
负载均衡 Java 持续交付
深入解析微服务架构中的服务发现与负载均衡
深入解析微服务架构中的服务发现与负载均衡
61 0
|
1月前
|
Cloud Native Devops 云计算
云计算的未来:云原生架构与微服务的革命####
【10月更文挑战第21天】 随着企业数字化转型的加速,云原生技术正迅速成为IT行业的新宠。本文深入探讨了云原生架构的核心理念、关键技术如容器化和微服务的优势,以及如何通过这些技术实现高效、灵活且可扩展的现代应用开发。我们将揭示云原生如何重塑软件开发流程,提升业务敏捷性,并探索其对企业IT架构的深远影响。 ####
43 3