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
目录
相关文章
|
16天前
|
Java 对象存储 开发者
解析Spring Cloud与Netflix OSS:微服务架构中的左右手如何协同作战
Spring Cloud与Netflix OSS不仅是现代微服务架构中不可或缺的一部分,它们还通过不断的技术创新和社区贡献推动了整个行业的发展。无论是对于初创企业还是大型组织来说,掌握并合理运用这两套工具,都能极大地提升软件系统的灵活性、可扩展性以及整体性能。随着云计算和容器化技术的进一步普及,Spring Cloud与Netflix OSS将继续引领微服务技术的发展潮流。
31 0
|
1天前
|
存储 数据可视化 Java
基于MicrometerTracing门面和Zipkin实现集成springcloud2023的服务追踪
Sleuth将会停止维护,Sleuth最新版本也只支持springboot2。作为替代可以使用MicrometerTracing在微服务中作为服务追踪的工具。
18 1
|
3天前
|
监控 Java 对象存储
监控与追踪:如何利用Spring Cloud Sleuth和Netflix OSS工具进行微服务调试
监控与追踪:如何利用Spring Cloud Sleuth和Netflix OSS工具进行微服务调试
12 1
|
15天前
|
负载均衡 Java 网络架构
实现微服务网关:Zuul与Spring Cloud Gateway的比较分析
实现微服务网关:Zuul与Spring Cloud Gateway的比较分析
27 5
|
14天前
|
前端开发 API 微服务
SpringCloud微服务之间使用Feign调用不通情况举例
SpringCloud微服务之间使用Feign调用不通情况举例
87 2
|
15天前
|
运维 持续交付 API
深入理解并实践微服务架构:从理论到实战
深入理解并实践微服务架构:从理论到实战
47 3
|
17天前
|
Java 对象存储 开发者
微服务世界的双雄争霸:Spring Cloud与Netflix OSS——谁将引领下一次企业级应用变革的风暴?
Spring Cloud与Netflix OSS是微服务架构的核心组件集,分别以其与Spring Boot的紧密集成及为大规模分布式系统设计的特性,在Java开发社区中广受青睐。前者通过Eureka提供服务发现机制,简化服务注册与定位;后者借助Hystrix增强系统弹性和可靠性,避免雪崩效应。此外,二者还包含负载均衡(Ribbon)、声明式HTTP客户端(Feign)及API网关(Zuul)等功能,共同构建强大微服务体系,助力开发者聚焦业务逻辑,提升系统灵活性与性能。
34 0
|
17天前
|
Cloud Native Java 对象存储
揭秘微服务架构之争:Spring Cloud与Netflix OSS巅峰对决,谁将称霸弹性云原生时代?
近年来,微服务架构成为企业应用的主流设计模式。本文对比了两大热门框架Spring Cloud和Netflix OSS,探讨其在构建弹性微服务方面的表现。Spring Cloud依托Spring Boot,提供全面的微服务解决方案,包括服务注册、配置管理和负载均衡等。Netflix OSS则由一系列可独立或组合使用的组件构成,如Eureka、Hystrix等。两者相比,Spring Cloud更易集成且功能完善,而Netflix OSS则需自行整合组件,但灵活性更高。实际上,两者也可结合使用以发挥各自优势。通过对两者的对比分析,希望为企业在微服务架构选型上提供参考。
37 0
|
16天前
|
安全 应用服务中间件 API
微服务分布式系统架构之zookeeper与dubbo-2
微服务分布式系统架构之zookeeper与dubbo-2
|
16天前
|
负载均衡 Java 应用服务中间件
微服务分布式系统架构之zookeeper与dubbor-1
微服务分布式系统架构之zookeeper与dubbor-1