基于微服务架构的水果售卖系统的设计与实现

发布时间:2023-05-08 09:11:54

  访问【WRITE-bug数字空间]_[完整的源代码和文档]

  整体为微服务架构,使用 SpringCloud 技术,每个独立的服务都是单独的 SpringBoot 工程、数据库使用 MySQL 数据库;使用分布式缓存; Redis,使用新闻队列 Kafka。包括基本业务支持服务、订单服务、支付服务、商品服务、商店管理服务、促销服务 6 个微服务。见md文件详细设计。第 1 章绪论1.1 论文研究的主要内容

  随着互联网的快速发展,电子商务也发展迅速,各电子商务平台的业务流量逐渐增加。原有的全站架构已经不能满足现有的需求。因此,有必要将业务拆分,将业务模块化,独立于各种微服务。此外,集装箱、调度平台、监控等形成完整的微服务架构。为此,专门设计了基于微服务架构的水果销售系统,包括基本业务支持服务、订单服务、支付服务、商品服务、商店管理服务、促销活动服务 6 个微服务。1.1.1 微服务架构概述

  微服务架构是一种架构模式,它提倡将单个应用程序划分为一组小服务,服务相互协调,相互配合,为用户提供最终价值。在其独立的过程中,服务和服务之间采用轻量级通信机制相互合作(通常是基于 HTTP 协议的 RESTfulAPI)。每一项服务都围绕着特定的业务建设,并且可以独立部署到生产环境、类生产环境等。此外,对于具体服务,应根据业务上下文选择合适的语言和工具。

  个人来说,微服务架构就我个人而言。 ≈ 模块化开发 + 分布式计算。无论微服务架构的定义如何,它都描述了一个核心思想:将大系统分为小系统,减少大事件,降低系统的复杂性,从而大大降低系统建设、升级和运行维护的风险和成本。1.1.2 水果销售系统

  在当今主要电子商务平台层出不穷的环境下,商品分类垄断已成为一种趋势。该系统旨在实现水果专卖,实现果农与买家的对接,消除第三方代理商的差价,在买家购买更优惠、更优质的前提下提高果农收入。1.2 活跃的社区状态

  自2014年Martinfowler在其博客上发布以来,“Microservices”一文第 2 关键技术介绍2.1 关键技术分析及介绍2.1.1Springboot/cloud

  基于 Springboot/cloud 本质上,框架可以被认为是一种 RESTFul 框架(不是 RPC 框架),序列化协议主要以文本为基础 JSON,一般基于通信协议 HTTP。RESTFul 只要有任何语言,框架自然支持跨语言 HTTP 客户端可以访问和调用,但客户端通常需要自己分析 payload。目前 Spring 框架也支持 Swagger 合同编程模型可以基于合同生成各种语言的强大客户端,极大地方便了不同语言堆栈的应用程序访问,但因为 RESTFul 框架和 Swagger 标准化的弱契约特性,各种语言客户端的互操作性还是有很多坑的。3 月 1 官方发布了号码 SpringBoot2.0,并提供了 Maven 支持中央仓库地址的版本 SpringFramework5.0。2.1.2 服务注册中心(Eureka)

  SpringCloud系统,选择Eureka是最好的搭配,Eureka在Netflix经过大规模生产验证,支持跨数据中心,客户端配合Ribon可以实现灵活的客户端软负载,Eureka目前在Github上拥有4.7k星。2.1.3 服务网关(Zull)

  SpringCloud 选择系统 Zuul 是最佳搭配,Zuul 在 Netflix 经大规模生产验证,支持动态过滤脚本机制灵活,异步性能不足(基于 Netty 的异步 Zuul 未能推出正式版)。Zuul 网关目前在 GitHub 上有超过 3.7k 星。2.1.4 消息系统(Kafka)

  背景服务主要包括新闻系统、分布式缓存、分布式数据访问层和任务调度系统。背景服务是一个相对成熟的领域,许多开源产品基本上可以打开盒子。

  对于日志等可靠性要求较低的场景,如新闻系统 Apache 顶级项目 Kafka 是社区标准。对可靠性要求较高的业务场景,Kafka 事实上,它也可以胜任,但企业需要根据具体情况做出正确的决定 Kafka 适当定制和提高监控和治理能力。2.2 其他相关技术2.2.1MySQL

  MySQL,一个关系数据库管理系统。由于其体积小、速度快、成本低,特别是开源代码的特点,一般选择开发中小型网站 MySQL 作为网站数据库。2.2.2Maven

  Maven,项目管理工具包括项目对象模型、一组标准集合、一个项目生命周期、一个依赖管理系统和在生命周期阶段操作插件目标的逻辑。2.2.3Redis

  Redis,对数据库进行高性能键值。它提供了 Java,C/C++,C#,PHP,JavaScript,Perl,Object-C,Python,Ruby,Erlang 不同编程语言的客户端使用非常方便。第 3 章系统分析3.1 构架概述

  常见的微服务组件及概念:

  1.服务注册,服务提供商将调用地址注册到服务注册中心,使服务调用方能够轻松找到自己。

  2.服务发现,服务调用人从服务注册中心找到需要调用的服务地址。

  3.负载平衡。服务提供商通常以多个例子的形式提供服务。负载平衡功能允许服务调用器连接到合适的服务节点。此外,节点选择的工作对服务调用器是透明的。

  4.服务网关,服务网关是服务调用的唯一入口,可实现用户权利鉴定、动态路由、灰度发布、A/B 测试、负载限流等功能。

  5.配置中心将本地化配置信息(properties,xml,yaml 等)注册到配置中心,实现程序包在开发、测试、生产环境中的无差异,方便程序包的迁移。

  6.API 管理,以方便的形式编写和更新 API 以方便的形式查看和测试文档。

  7.集成框架和微服务组件以单一责任程序包提供外部服务。集成框架将所有微服务组件(特别是管理端组件)以配置的形式集成到统一的界面框架中,使用户能够在统一的界面中使用系统。

  8.分布式事务需要通过分布式事务技术进行重要业务(TCC、保证数据的一致性,高可用新闻服务,最大努力通知)。

  9.调用链记录完成业务逻辑时调用的微服务,并显示串行或平行调用关系。当系统出现错误时,可以很容易地找到错误的点。

  10.支持平台。系统微服务后,系统变得更加分散,系统的部署、运行、维护和监控比单个架构更加复杂,因此大部分工作需要自动化。现在,可以通过 Docker 等待工具来中和这些微服务架构的缺点。如持续集成、蓝绿发布、健康检查、性能健康等。严重来说,根据我公司的实践经验,如果没有合适的支持平台或工具,就不要使用微服务架构。

基于微服务架构的水果售卖系统的设计与实现_服务调用

基于微服务架构的水果售卖系统的设计与实现_微服务_02

基于微服务架构的水果售卖系统的设计与实现_客户端_03

基于微服务架构的水果售卖系统的设计与实现_微服务_04

上一篇 编译hdf4和hdf5库的一个注意事项
下一篇 37个Dubbo 连环炮,能扛住几个?最后几个还是有点难度

文章素材均来源于网络,如有侵权,请联系管理员删除。

标签: Java教程Java基础Java编程技巧面试题Java面试题