SpringCloud微服务实战(四)-微服务中的服务拆分

本文涉及的产品
注册配置 MSE Nacos/ZooKeeper,118元/月
云原生网关 MSE Higress,422元/月
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
简介: 订单服务源码https://github.com/Wasabi1234/SpringCloud_OrderDemo商品服务源码https://github.

4.1 微服务拆分的起点

img_38338b3ff89c5ef25f22703735704d11.png

img_ef2f3e25f997862cbf96b634ba849802.png

img_b136d2405e1a6951a91d5df02468942f.png

img_e5ecf0eb047a394057b0eeb547ed2d76.png

4.2 康威定律和微服务

img_6babbac833e49aa52601e142d53b092f.png

img_c10e89442e0828afdd09c3387d12a15a.png
沟通的问题会影响系统的设计

img_c4f3ce70bff007bc2a9ef0c01707d271.png

4.3 点餐业务服务拆分分析

img_03ec7dcf1d3b6d876a718b26a1d3497a.png

img_8a2074814a654b212be2cd868a4144b9.png

img_2c4697479d116d17ed08acb129d923b0.png

img_cfbd5481f82a7389d694104c0b7aa3e5.png

img_a336838b6caabd5bbd60b127f4cc7aab.png

img_fdfdc834489bcd8343af638dcb82213b.png

4.4 商品服务API和SQL介绍

img_a5638c41560423e194069d848404c1ca.png

4.5 商品服务编码实战(上)

在 IDEA 中新建项目


img_63b2f989db91e508712bf7b844f02322.png

img_9b2119b84acde993b0e419757ec1a7ff.png
项目初始化 pom 文件

img_1fc2194661e742b52e21205ce0d1580d.png
为启动类添加该注解

img_3ffc7d750f1b0b3c388e3a45e922c5a1.png
基本配置信息

启动该类,将此服务注册到 eureka 上去


img_e67ca6116f2fde690fa62000e00e33ac.png

img_7fcd1f7a53937f6c60f6985f208237ea.png
添加所需依赖

img_1ed704dc92cbd61da107e0f179f80c98.png
业务需求

img_b70c92b805f1fc2f01c6b8a96b27d584.png
配置数据库相关信息

img_2305979d1fe45001503e78fe869a3811.png
添加 lombok 依赖

img_877ac4fdf2250c5e84f17cee2396b5c9.png
编写dto类

开始单元测试


img_5cf93f8857aaf696433df4f3db30ea05.png
编写测试类

img_2336e9181d9f9e93f4301343f916696d.png

img_7e892374c648e6a7149f5cf97e1c07f1.png
必须要有此二注解,否则空指针异常

img_067a336d455c88e65df847367e1a4cd2.png
测试通过

开始编码第二个功能
img_955f59e24f33195cbb686a1501d16cc9.png

img_112f55e3d5aa8a230f60ceab23921851.png

img_4d54d9b848a04e7299400cc00ad4c47b.png
测试通过

4.6 商品服务编码实战(中)

img_69128389f5384243f55cd77b6e3c0c97.png
编写service 层

编码技巧,测试类可以直接继承启动类的测试类,减少注解个数,做到了最大可能的解耦


img_59242008d67b63e30a32101b083a7a72.png

img_50dc5fbd0589489883f402ee5e7c255c.png

img_590ec6f2b696205d5ce4b61532c62fd4.png

编写 vo 包下的类


img_9d254f0c4b3f9e58d31b86a899159114.png

img_cc38afd2dde8bb291251b00e6129b2b9.png

img_ec177e3006628cb97d3f697411c59de5.png

4.7 商品服务编码实战(下)

完成 controller 类


img_e24fa318031c953e9612fffe49ff14d0.png

启动程序


img_47dbe3dc8314e0d96ca466040406dac9.png

img_34130931e8195820ac965e1e91115b4b.png
优化返回值

4.8 订单服务API和sql介绍

img_e36494d76a1d4225601b53ddf03686ef.png

img_0a4d73339531295bdcc95b5b5c9b9c84.png

img_49fd8da996372159048f899add7d2a97.png
业务需求

4.9 订单服务dao

img_51f0a8bd3fd5a3f366d7bef55169b580.png

img_d16900e4f59ccff53a5eac8531d2d2b1.png
img_527ed80506f1908d865d464f0056cb0c.png

启动


img_7bcec7b28fd0e845e48bc32255812aad.png

img_7b12ecf7afa8bf7e77312197e9a4aac3.png

img_3141ad81d677c81ead1c1af8b6fe1ad8.png
配置数据库信息并正常启动

img_fcb550752a608f465f3c530cbb95c6ce.png

img_a521ffa5ede8db62211a8e26a4bfb410.png
save数据成功

img_4e8c66df465cae061b5287a24c01c6dc.png

img_23b4b81743004f23e32956cfaa3e5c59.png

4.10 订单服务service

img_838a17df2c63c5736d3ad2d1b4489f58.png

4.11 订单服务controller

img_ee315c75ccff2782df68b10cbe23ea62.png

img_26c317bfe7c6f0eb998adafbdee183ad.png
自定义异常

img_52d048dba4e5f94bf1e734d0fd72ab88.png

img_48b1e99efb749d08583b0a787d4bdb22.png

img_2e25bdaf8605a7c384d456792c389636.png
sb 引用了 gson, 所以不需要指定版本

img_8f12bd333abc5549b6fc961ac5a2fa45.png
测试接口

4.12 再看拆数据

img_15250339cf510bcc8a49470bcea68a4e.png

img_2bb79a99951cdd6cec4dd71d67e23bab.png
目录
相关文章
|
25天前
|
弹性计算 API 持续交付
后端服务架构的微服务化转型
本文旨在探讨后端服务从单体架构向微服务架构转型的过程,分析微服务架构的优势和面临的挑战。文章首先介绍单体架构的局限性,然后详细阐述微服务架构的核心概念及其在现代软件开发中的应用。通过对比两种架构,指出微服务化转型的必要性和实施策略。最后,讨论了微服务架构实施过程中可能遇到的问题及解决方案。
|
5天前
|
JSON Java API
利用Spring Cloud Gateway Predicate优化微服务路由策略
Spring Cloud Gateway 的路由配置中,`predicates`​(断言)用于定义哪些请求应该匹配特定的路由规则。 断言是Gateway在进行路由时,根据具体的请求信息如请求路径、请求方法、请求参数等进行匹配的规则。当一个请求的信息符合断言设置的条件时,Gateway就会将该请求路由到对应的服务上。
103 69
利用Spring Cloud Gateway Predicate优化微服务路由策略
|
24天前
|
Java 开发者 微服务
从单体到微服务:如何借助 Spring Cloud 实现架构转型
**Spring Cloud** 是一套基于 Spring 框架的**微服务架构解决方案**,它提供了一系列的工具和组件,帮助开发者快速构建分布式系统,尤其是微服务架构。
144 68
从单体到微服务:如何借助 Spring Cloud 实现架构转型
|
22天前
|
Java Nacos Sentinel
Spring Cloud Alibaba:一站式微服务解决方案
Spring Cloud Alibaba(简称SCA) 是一个基于 Spring Cloud 构建的开源微服务框架,专为解决分布式系统中的服务治理、配置管理、服务发现、消息总线等问题而设计。
184 13
Spring Cloud Alibaba:一站式微服务解决方案
|
8天前
|
Java 关系型数据库 Nacos
微服务SpringCloud链路追踪之Micrometer+Zipkin
SpringCloud+Openfeign远程调用,并用Mircrometer+Zipkin进行链路追踪
91 20
|
1天前
|
存储 JavaScript 开发工具
基于HarmonyOS 5.0(NEXT)与SpringCloud架构的跨平台应用开发与服务集成研究【实战】
本次的.HarmonyOS Next ,ArkTS语言,HarmonyOS的元服务和DevEco Studio 开发工具,为开发者提供了构建现代化、轻量化、高性能应用的便捷方式。这些技术和工具将帮助开发者更好地适应未来的智能设备和服务提供方式。
基于HarmonyOS 5.0(NEXT)与SpringCloud架构的跨平台应用开发与服务集成研究【实战】
|
11天前
|
NoSQL 前端开发 测试技术
👀探秘微服务:从零开启网关 SSO 服务搭建之旅
单点登录(Single Sign-On,简称SSO)是一种认证机制,它允许用户只需一次登录就可以访问多个应用程序或系统。本文结合网关和SaToken快速搭建可用的Session管理服务。
55 8
|
29天前
|
负载均衡 Java 开发者
深入探索Spring Cloud与Spring Boot:构建微服务架构的实践经验
深入探索Spring Cloud与Spring Boot:构建微服务架构的实践经验
90 5
|
27天前
|
弹性计算 Kubernetes API
构建高效后端服务:微服务架构的深度剖析与实践####
本文深入探讨了微服务架构的核心理念、设计原则及实现策略,旨在为开发者提供一套系统化的方法论,助力其构建灵活、可扩展且易于维护的后端服务体系。通过案例分析与实战经验分享,揭示了微服务在提升开发效率、优化资源利用及增强系统稳定性方面的关键作用。文章首先概述了微服务架构的基本概念,随后详细阐述了其在后端开发中的应用优势与面临的挑战,最后结合具体实例,展示了如何从零开始规划并实施一个基于微服务的后端项目。 ####
|
10天前
|
存储 监控 供应链
微服务拆分的 “坑”:实战复盘与避坑指南
本文回顾了从2~3人初创团队到百人技术团队的成长历程,重点讨论了从传统JSP到前后端分离+SpringCloud微服务架构的演变。通过实际案例,总结了微服务拆分过程中常见的两个问题:服务拆分边界不清晰和拆分粒度过细,并提出了优化方案,将11个微服务优化为6个,提高了系统的可维护性和扩展性。
28 0