谷粒商城实战笔记-99-仓储服务-API-仓库管理-完成采购

文章目录

  • 一,业务逻辑分析
  • 二,模拟调用和效果
    • 1,Postman模拟调用
    • 2,页面效果
  • 三,代码总结
    • 1 分页插件配置
    • 2 服务间接口调用的不同方式
      • 直接访问服务
      • 通过网关访问服务
      • 小小结

一,业务逻辑分析

采购负责人在完成采购任务后,会在采购管理系统中确认完成,特别说明,谷粒商城中不包含采购管理系统,我们需要用Postman模拟请求。

完成采购有2种可能情况:

  • 所有采购需求都完成的情况下,采购单的状态为已完成,采购需求的状态为已完成
  • 部分采购需求完成,采购单的状态为有异常,成功的采购需求状态为已完成,不成功的采购需求状态为采购失败

完成采购的后台业务逻辑:

  • 更新采购需求状态,可能是完成,可能是采购失败
  • 完成采购需求需要更新库存
  • 根据所有采购需求的状态更新采购单状态,可能是完成,可能是有异常

二,模拟调用和效果

1,Postman模拟调用

在这里插入图片描述

localhost:88/api/ware/purchase/done
{"id":1,"items":[{"itemId":1,"status":3,"reason":""},{"itemId":2,"status":4,"reason":"无货"}]
}

2,页面效果

采购单页面:

在这里插入图片描述

采购需求页面:

在这里插入图片描述

库存页面:

在这里插入图片描述

三,代码总结

1 分页插件配置

增加MybatisPlus分页配置,以便前端的分页功能能正常使用。

在这里插入图片描述

2 服务间接口调用的不同方式

在微服务架构中,Feign 是一个声明式的 HTTP 客户端,它简化了 HTTP 请求的发送。当使用 Feign 进行服务间通信时,有两种常见的配置方式:一种是直接与目标服务通信(绕过网关),另一种是通过 API 网关进行通信。

直接访问服务

配置步骤:

  1. 定义 Feign Client:

    @FeignClient(name = "gulimall-product")
    public interface SkuInfoFeignService {@GetMapping("/skuinfo/info/{skuId}")SkuInfoEntity getSkuInfo(@PathVariable("skuId") Long skuId);
    }
    
  2. 服务发现:

    • 确保 gulimall-product 服务已经在 Eureka 注册中心注册。
    • 在 Feign 客户端所在的服务中配置 Eureka 和 Ribbon 以支持服务发现和服务实例选择。
  3. 负载均衡:

    • Ribbon 自动为 Feign 提供客户端负载均衡能力,无需额外配置。

优劣分析:

  • 优点:

    • 性能更高: 减少了网关转发的延迟。
    • 简单直接: 服务间的调用更加直接,减少了中间环节。
  • 缺点:

    • 服务地址变更困难: 如果服务地址发生变化,需要修改 Feign 客户端的配置。
    • 安全性较低: 缺少统一的安全认证机制。
    • 管理不便: 每个服务都需要单独维护路由信息。

通过网关访问服务

配置步骤:

  1. 定义 Feign Client:

    @FeignClient(name = "gulimall-gateway")
    public interface SkuInfoFeignService {@GetMapping("/api/product/skuinfo/info/{skuId}")SkuInfoEntity getSkuInfo(@PathVariable("skuId") Long skuId);
    }
    
  2. 网关配置:

    • 配置网关路由规则将请求转发到相应的服务。
    • 需要在网关服务中添加 /api/product/skuinfo/info/{skuId} 路由规则,指向 gulimall-product 服务。
  3. 服务发现:

    • 确保 gulimall-gatewaygulimall-product 都已在 Eureka 注册中心注册。
    • 在 Feign 客户端所在的服务中配置 Eureka 和 Ribbon 以支持服务发现和服务实例选择。

优劣分析:

  • 优点:

    • 统一入口: 所有外部请求都通过网关进入,便于统一管理。
    • 增强安全性: 可以在网关层实现认证授权等安全措施。
    • 易于扩展: 网关可以提供缓存、监控等功能,方便扩展。
  • 缺点:

    • 性能影响: 增加了网关转发的延迟。
    • 复杂度增加: 需要维护网关路由规则,增加了系统的复杂度。

小小结

选择哪种方式取决于您的具体需求和场景。如果追求高性能和简单性,可以选择直接访问服务;如果希望有更好的可管理性和安全性,则应考虑通过网关访问服务。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/3281327.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

算法板子:DFS(深度优先搜索、暴搜)——寻找1~n这n个数的所有排列方案

思想&#xff1a;深搜会一条路走到黑&#xff0c;把所有的位置都填满&#xff0c;如下图中的路径1&#xff1a; 代码——重点在dfs函数&#xff1a; #include <iostream> using namespace std;const int N 7; int n;// st[i]代表i这个数有没有被用过; 比如st[1]false代…

希尔排序【C语言】

希尔排序 前言 在上一篇文章中我们了解了直接插入排序算法&#xff08;建议先阅读&#xff09;&#xff0c;但其实这个算法还是有一定优化空间的。而它优化之后&#xff0c;就变成了另一个大名鼎鼎的排序算法&#xff1a;希尔排序。 希尔排序(Shell’s Sort)是插入排序的一种…

C语言中的浮点数存储:深入探讨

案例引入 请看下面一段代码并思考结果&#xff1a; #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> int main() {int n 9;float* pFloat (float*)&n;printf("n的值为&#xff1a;%d\n", n);printf("*pFloat的值为&#xff1a;%f\n", *…

Java线程阻塞:原因

Java线程阻塞&#xff1a;原因 1. sleep()2. suspend() 和 resume()&#xff08;不推荐&#xff09;3. yield()4. wait() 和 notify()/notifyAll() &#x1f496;The Begin&#x1f496;点点关注&#xff0c;收藏不迷路&#x1f496; 线程阻塞是一个重要的概念&#xff0c;它决…

Linux下docker部署drools并集成项目使用

Linux下docker部署drools并集成项目使用 一、背景介绍二、 思路方案三、过程四、总结 一、背景介绍 上一篇文章是对规则引擎的基本介绍&#xff0c;本篇文章是对于drools规则引擎的基本使用。 二、 思路方案 前提&#xff1a;首先保证主机联网、有docker环境、保证Linux空闲…

OS—文件系统

目录 一. 文件系统结构I/O 控制层基本文件系统文件组织模块逻辑文件系统 二. 文件系统布局文件系统在磁盘中的结构主引导记录(MasterBoot Record,MBR)引导块(boot block)超级块(super block)文件系统中空闲块的信息 文件系统在内存中的结构 三. 外存空间管理空闲表法空闲链表法…

面向对象 - 概述、类的创建、 实例化与内存解析

一、学习面向对象的三条主线 Java类及类的成员&#xff1a;&#xff08;重点&#xff09;属性、方法、构造器&#xff1b;&#xff08;熟悉&#xff09;代码块、内部类面向对象的特征&#xff1a;封装、继承、多态、&#xff08;抽象&#xff09;其他关键字的使用&#xff1a;…

北欧风情在浦东,5 大公司为你定制美好

在繁华的浦东&#xff0c;追求高品质生活的您&#xff0c;是否渴望拥有一个充满北欧风情的温馨家园&#xff1f;今天&#xff0c;我们将为您推荐 5 家顶尖的装修公司&#xff0c;它们将以精湛的工艺和独特的设计理念&#xff0c;为您量身定制梦想中的北欧风家居。 推荐一&#…

大数据-56 Kafka SpringBoot与Kafka 基础简单配置和使用

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; 目前已经更新到了&#xff1a; Hadoop&#xff08;已更完&#xff09;HDFS&#xff08;已更完&#xff09;MapReduce&#xff08;已更完&am…

大厂的堡垒机到底是啥?为什么需要它?

什么是堡垒机 堡垒机&#xff0c;即在一个特定的网络环境下&#xff0c;为了保障网络和数据不受来自外部和内部用户的入侵和破坏&#xff0c;而运用各种技术手段监控和记录运维人员对网络内的服务器、网络设备、安全设备、数据库等设备的操作行为&#xff0c;以便集中报警、及…

【文件解析漏洞】实战详解!

漏洞描述&#xff1a; 文件解析漏洞是由于中间件错误的将任意格式的文件解析成网页可执行文件&#xff0c;配合文件上传漏洞进行GetShell的漏洞! IIS解析漏洞&#xff1a; IIS6.X&#xff1a; 方式一:目录解析 在网站下建立文件夹的名字为.asp/.asa 的文件夹&#xff0c;其目…

免费发送邮件两种接口方式:SMTP和邮件API

SMTP与邮件API在处理大批量邮件发送时&#xff0c;哪个更稳定&#xff1f; 在现代信息化的社会中&#xff0c;邮件已成为不可或缺的沟通工具。无论是个人还是企业&#xff0c;发送邮件都是日常工作的一部分。AokSend将详细介绍两种常用的免费发送邮件接口方式&#xff1a;SMTP…

麒麟V10系统统一认证子系统国际化

在适配麒麟V10系统统一认证子系统国际化过程中&#xff0c; 遇到了很多的问题&#xff0c;关键是麒麟官方的文档对这部分也是粗略带过&#xff0c;遇到的问题有: &#xff08;1&#xff09;xgettext无法提取C源文件中目标待翻译的字符串。 &#xff08;2&#xff09;使用msgf…

程序一调用这个接口就会崩溃, 因为他的静态库添加是放在release文件下,而我用的debug模式

程序一调用这个接口就会崩溃 因为他的静态库添加是放在release文件下 而我用的debug模式 DESTDIR ../x64/ReleaseINCLUDEPATH ./../3rdparty/ZZDecode/include LIBS -lopengl32 \-lglu32 \-luser32 \./../3rdparty/ZZDecode/x64/release/ZZDecodeInterface.lib

Python软件开发:AI毕业设计生成器引领未来

&#x1f31f; 革新软件开发&#xff1a;Python毕业设计生成器引领未来 &#x1f680; 目录 &#x1f31f; 革新软件开发&#xff1a;Python毕业设计生成器引领未来 &#x1f680;&#x1f393; 课题简介&#x1f31f; 开发目的&#x1f4c8; 开发意义 &#x1f4da; 研究方法&…

Jvm的无关性

Jvm具有无关性&#xff0c;主要体现在两个方面&#xff1a; 平台无关性&#xff1a;任何操作系统都能运行Java代码。 语言无关性&#xff1a;Jvm能运行除Java以外的其他代码。 Java源代码首先需要使用Javac编译器编译成 .class文件&#xff0c;然后由Jvm执行.class文件&…

如何准备 Java API 文档以供下游对接

个人名片 🎓作者简介:java领域优质创作者 🌐个人主页:码农阿豪 📞工作室:新空间代码工作室(提供各种软件服务) 💌个人邮箱:[2435024119@qq.com] 📱个人微信:15279484656 🌐个人导航网站:www.forff.top 💡座右铭:总有人要赢。为什么不能是我呢? 专栏导…

如何在 Odoo 16 Studio 中添加智能选项卡和管道

具有优雅定制功能的软件系统&#xff08;如 Odoo ERP&#xff09;可让客户调整和个性化其公司应用程序。定制在过去并不普遍&#xff0c;但现在对于组织来说&#xff0c;满足客户需求和需求激增至关重要。即使许多行业的竞争很少&#xff0c;但当前的竞争市场仍不稳定。尽管引入…

Mybatis批量更新数据库错误

问题&#xff1a;记录一次使用Mybatis批量更新数据库的错误&#xff0c;错误信息&#xff0c;Error updating database. Cause: org.postgresql.util.PSQLException: 错误: 字段 "update_time" 的类型为 timestamp without time zone, 但表达式的类型为 text 建议&am…

Prometheus+Grafana 监控平台实践-搭建常用服务监控告警

前言 Prometheus 是一个开放性的监控解决方案,通过各种 Exporter 采集当前主机/服务的数据,和 Grafana 相结合可以实现强大的监控和可视化功能 本篇将分享使用 docker compose 构建 Prometheus+Grafana,并监控之前文章所搭建的主机&服务,分享日常使用的一些使用经验 文…