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
目录
相关文章
|
1月前
|
SpringCloudAlibaba Java 持续交付
【构建一套Spring Cloud项目的大概步骤】&【Springcloud Alibaba微服务分布式架构学习资料】
【构建一套Spring Cloud项目的大概步骤】&【Springcloud Alibaba微服务分布式架构学习资料】
131 0
|
3天前
|
负载均衡 Java 开发者
细解微服务架构实践:如何使用Spring Cloud进行Java微服务治理
【4月更文挑战第17天】Spring Cloud是Java微服务治理的首选框架,整合了Eureka(服务发现)、Ribbon(客户端负载均衡)、Hystrix(熔断器)、Zuul(API网关)和Config Server(配置中心)。通过Eureka实现服务注册与发现,Ribbon提供负载均衡,Hystrix实现熔断保护,Zuul作为API网关,Config Server集中管理配置。理解并运用Spring Cloud进行微服务治理是现代Java开发者的关键技能。
|
7天前
|
监控 Sentinel 微服务
微服务的防御之道:服务雪崩、服务熔断、服务降级
微服务的防御之道:服务雪崩、服务熔断、服务降级
18 1
|
11天前
|
SpringCloudAlibaba 监控 Java
SpringCloud Alibaba微服务-- Sentinel的使用(保姆级)
SpringCloud Alibaba微服务-- Sentinel的使用(保姆级)
|
11天前
|
SpringCloudAlibaba Java API
SpringCloud Alibaba微服务工程搭建(保姆级)
SpringCloud Alibaba微服务工程搭建(保姆级)
|
11天前
|
SpringCloudAlibaba Java Nacos
SpringCloud Alibaba微服务 -- Nacos使用以及注册中心和配置中心的应用(保姆级)
SpringCloud Alibaba微服务 -- Nacos使用以及注册中心和配置中心的应用(保姆级)
|
18天前
|
负载均衡 网络协议 Java
构建高效可扩展的微服务架构:利用Spring Cloud实现服务发现与负载均衡
本文将探讨如何利用Spring Cloud技术实现微服务架构中的服务发现与负载均衡,通过注册中心来管理服务的注册与发现,并通过负载均衡策略实现请求的分发,从而构建高效可扩展的微服务系统。
|
21天前
|
Java fastjson 数据安全/隐私保护
【Dubbo3技术专题】「云原生微服务开发实战」 一同探索和分析研究RPC服务的底层原理和实现
【Dubbo3技术专题】「云原生微服务开发实战」 一同探索和分析研究RPC服务的底层原理和实现
38 0
|
1月前
|
SpringCloudAlibaba Java 网络架构
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(二)Rest微服务工程搭建
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(二)Rest微服务工程搭建
46 0
|
30天前
|
Java Nacos Sentinel
Spring Cloud Alibaba 面试题及答案整理,最新面试题
Spring Cloud Alibaba 面试题及答案整理,最新面试题
139 0