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

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

相关文章
|
6天前
|
缓存 负载均衡 JavaScript
探索微服务架构下的API网关模式
【10月更文挑战第37天】在微服务架构的海洋中,API网关犹如一座灯塔,指引着服务的航向。它不仅是客户端请求的集散地,更是后端微服务的守门人。本文将深入探讨API网关的设计哲学、核心功能以及它在微服务生态中扮演的角色,同时通过实际代码示例,揭示如何实现一个高效、可靠的API网关。
|
5天前
|
Cloud Native 安全 数据安全/隐私保护
云原生架构下的微服务治理与挑战####
随着云计算技术的飞速发展,云原生架构以其高效、灵活、可扩展的特性成为现代企业IT架构的首选。本文聚焦于云原生环境下的微服务治理问题,探讨其在促进业务敏捷性的同时所面临的挑战及应对策略。通过分析微服务拆分、服务间通信、故障隔离与恢复等关键环节,本文旨在为读者提供一个关于如何在云原生环境中有效实施微服务治理的全面视角,助力企业在数字化转型的道路上稳健前行。 ####
|
5天前
|
Dubbo Java 应用服务中间件
服务架构的演进:从单体到微服务的探索之旅
随着企业业务的不断拓展和复杂度的提升,对软件系统架构的要求也日益严苛。传统的架构模式在应对现代业务场景时逐渐暴露出诸多局限性,于是服务架构开启了持续演变之路。从单体架构的简易便捷,到分布式架构的模块化解耦,再到微服务架构的精细化管理,企业对技术的选择变得至关重要,尤其是 Spring Cloud 和 Dubbo 等微服务技术的对比和应用,直接影响着项目的成败。 本篇文章会从服务架构的演进开始分析,探索从单体项目到微服务项目的演变过程。然后也会对目前常见的微服务技术进行对比,找到目前市面上所常用的技术给大家进行讲解。
16 1
服务架构的演进:从单体到微服务的探索之旅
|
4天前
|
Cloud Native 安全 API
云原生架构下的微服务治理策略与实践####
—透过云原生的棱镜,探索微服务架构下的挑战与应对之道 本文旨在探讨云原生环境下,微服务架构所面临的关键挑战及有效的治理策略。随着云计算技术的深入发展,越来越多的企业选择采用云原生架构来构建和部署其应用程序,以期获得更高的灵活性、可扩展性和效率。然而,微服务架构的复杂性也带来了服务发现、负载均衡、故障恢复等一系列治理难题。本文将深入分析这些问题,并提出一套基于云原生技术栈的微服务治理框架,包括服务网格的应用、API网关的集成、以及动态配置管理等关键方面,旨在为企业实现高效、稳定的微服务架构提供参考路径。 ####
24 5
|
7天前
|
监控 API 微服务
后端技术演进:从单体架构到微服务的转变
随着互联网应用的快速增长和用户需求的不断演化,传统单体架构已难以满足现代软件开发的需求。本文深入探讨了后端技术在面对复杂系统挑战时的演进路径,重点分析了从单体架构向微服务架构转变的过程、原因及优势。通过对比分析,揭示了微服务架构如何提高系统的可扩展性、灵活性和维护效率,同时指出了实施微服务时面临的挑战和最佳实践。
25 7
|
5天前
|
Kubernetes 负载均衡 Cloud Native
云原生架构下的微服务治理策略
随着云原生技术的不断成熟,微服务架构已成为现代应用开发的主流选择。本文探讨了在云原生环境下实施微服务治理的策略和方法,重点分析了服务发现、负载均衡、故障恢复和配置管理等关键技术点,以及如何利用Kubernetes等容器编排工具来优化微服务的部署和管理。文章旨在为开发者提供一套实用的微服务治理框架,帮助其在复杂的云环境中构建高效、可靠的分布式系统。
19 5
|
5天前
|
负载均衡 监控 Cloud Native
云原生架构下的微服务治理策略与实践####
在数字化转型浪潮中,企业纷纷拥抱云计算,而云原生架构作为其核心技术支撑,正引领着一场深刻的技术变革。本文聚焦于云原生环境下微服务架构的治理策略与实践,探讨如何通过精细化的服务管理、动态的流量调度、高效的故障恢复机制以及持续的监控优化,构建弹性、可靠且易于维护的分布式系统。我们将深入剖析微服务治理的核心要素,结合具体案例,揭示其在提升系统稳定性、扩展性和敏捷性方面的关键作用,为读者提供一套切实可行的云原生微服务治理指南。 ####
|
6天前
|
监控 持续交付 Docker
Docker 容器化部署在微服务架构中的应用有哪些?
Docker 容器化部署在微服务架构中的应用有哪些?
|
6天前
|
监控 持续交付 Docker
Docker容器化部署在微服务架构中的应用
Docker容器化部署在微服务架构中的应用
|
6天前
|
安全 持续交付 Docker
微服务架构和 Docker 容器化部署的优点是什么?
微服务架构和 Docker 容器化部署的优点是什么?