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

本文涉及的产品
服务治理 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
目录
相关文章
|
21天前
|
Java API 微服务
【Spring Boot系列】通过OpenAPI规范构建微服务服务接口
【4月更文挑战第5天】通过OpenAPI接口构建Spring Boot服务RestAPI接口
|
9天前
|
负载均衡 Java API
构建高效微服务架构:API网关与服务熔断策略
【5月更文挑战第2天】 在微服务架构中,确保系统的高可用性与灵活性是至关重要的。本文将深入探讨如何通过实施有效的API网关和设计合理的服务熔断机制来提升分布式系统的鲁棒性。我们将分析API网关的核心职责,包括请求路由、负载均衡、认证授权以及限流控制,并讨论如何利用熔断器模式防止故障传播,维护系统的整体稳定性。文章还将介绍一些实用的技术和工具,如Netflix Zuul、Spring Cloud Gateway以及Hystrix,以帮助开发者构建一个可靠且高效的微服务环境。
|
11天前
|
JSON 安全 Java
微服务Token鉴权设计:概念与实战
【4月更文挑战第29天】在微服务架构中,鉴权是确保服务安全的重要环节。由于微服务往往由多个独立的服务组成,这些服务之间的通信需要一种高效、安全的鉴权机制。Token鉴权作为一种常用的鉴权方式,为微服务架构提供了简洁而有效的解决方案。
19 0
|
12天前
|
消息中间件 Java RocketMQ
Spring Cloud RocketMQ:构建可靠消息驱动的微服务架构
【4月更文挑战第28天】消息队列在微服务架构中扮演着至关重要的角色,能够实现服务之间的解耦、异步通信以及数据分发。Spring Cloud RocketMQ作为Apache RocketMQ的Spring Cloud集成,为微服务架构提供了可靠的消息传输机制。
27 1
|
15天前
|
负载均衡 Java 网络架构
【SpringCloud】如何理解分布式、微服务、集群
【SpringCloud】如何理解分布式、微服务、集群
24 1
|
15天前
|
Java 数据安全/隐私保护 Sentinel
微服务学习 | Spring Cloud 中使用 Sentinel 实现服务限流
微服务学习 | Spring Cloud 中使用 Sentinel 实现服务限流
|
16天前
|
运维 监控 Java
SpringCloud&认识微服务
SpringCloud&认识微服务
17 0
|
23天前
|
人工智能 监控 安全
Java+Spring Cloud +Vue+UniApp微服务智慧工地云平台源码
视频监控系统、人员实名制与分账制管理系统、车辆管理系统、环境监测系统、大型设备监测(龙门吊、塔吊、升降机、卸料平台等)、用电监测系统、基坑监测系统、AI算法分析(安全帽佩戴、火焰识别、周界报警、人员聚众报警、升降机超载报警)、安全培训、设备监测。
28 4
|
2月前
|
Java Nacos Sentinel
Spring Cloud Alibaba 面试题及答案整理,最新面试题
Spring Cloud Alibaba 面试题及答案整理,最新面试题
245 0
|
16天前
|
Java API Nacos
第十二章 Spring Cloud Alibaba Sentinel
第十二章 Spring Cloud Alibaba Sentinel
27 0