mall-swarm微服务电商项目发布大更新,打造Spring Cloud最佳实践

简介: 之前mall项目更新到了SpringBoot 2.3.0版本,微服务版本mall-swarm也已同步更新了。此次更新完善了项目的Spring Cloud技术栈,升级至Spring Cloud Hoxton版本并加入了Spring Cloud Alibaba、Oauth2和Knife4j,致力于打造Spring Cloud 最佳实践项目!

之前mall项目更新到了SpringBoot 2.3.0版本,微服务版本mall-swarm也已同步更新了。此次更新完善了项目的Spring Cloud技术栈,升级至Spring Cloud Hoxton版本并加入了Spring Cloud Alibaba、Oauth2和Knife4j,致力于打造Spring Cloud 最佳实践项目!

系统架构图

系统架构图

项目组织结构

mall
├── mall-common -- 工具类及通用代码模块
├── mall-mbg -- MyBatisGenerator生成的数据库操作代码模块
├── mall-auth -- 基于Spring Security Oauth2的统一的认证中心
├── mall-gateway -- 基于Spring Cloud Gateway的微服务API网关服务
├── mall-monitor -- 基于Spring Boot Admin的微服务监控中心
├── mall-admin -- 后台管理系统服务
├── mall-search -- 基于Elasticsearch的商品搜索系统服务
├── mall-portal -- 移动端商城系统服务
├── mall-demo -- 微服务远程调用测试服务
└── config -- 配置中心存储的配置

更新内容一览

  • 集成Spring Cloud Alibaba,注册中心改用Nacos;
  • 权限功能改用Oauth2,实现统一认证和鉴权;
  • 集成Knife4j,实现网关聚合API文档;
  • 升级Spring Cloud Hoxton.SR5;
  • 升级Spring Boot 2.3.0.RELEASE;
  • 升级Elasticsearch 7.6.2;
  • ELK日志收集功能完善,采用分场景收集日志的方式;
  • Window和Linux部署文档更新。

更新内容介绍

Spring Cloud Alibaba

集成了Spring Cloud Alibaba,注册中心和配置中心都改用了Nacos。之前使用的注册中心是Eureka,已经进入维护期不再更新了,之前使用的配置中心是Spring Cloud Config,需要使用消息队列才能实现配置刷新。Nacos既可以当注册中心又可以当配置中心,采用Netty保持TCP长连接实现配置刷新,拥有方便的管理界面,所以就改为使用Nacos了。原来的mall-registry和mall-config模块已被移除,在config文件夹中存放了Nacos中的配置,启动项目时需要导入到Nacos中去。

Oauth2

  • 之前项目中有个mall-security的模块,我把它称为安全模块。所有需要权限校验的模块都需要依赖它,有点工具包的感觉,在微服务中使用总感觉不伦不类。
  • 这次改为使用Oauth2,添加了认证中心mall-auth,实现统一认证和鉴权,更加符合微服务权限控制,
  • 于项目中存在两套不同的用户体系,后台用户和前台用户,认证中心对多用户体系也有所支持,访问认证中心时使用不同的client_id和client_secret即可区分不同用户体系,后台用户使用admin-app:123456,前台用户使用portal-app:123456。
  • 对原来的登录接口做了兼容处理,分别会从内部调用认证中心获取Token,依然可以使用。

Knife4j

之前每个微服务都有自己的API文档地址,需要单独访问。这次把所有微服务的API文档都聚合到了网关上,统一了访问入口,直接访问网关的API文档地址即可

Spring Cloud Hoxton.SR5

Spring Cloud 和SpringBoot有着版本对应关系,升级到SpringBoot 2.3.0正好对应了该版本。

Window和Linux部署文档更新

由于部分组件的升级及项目结构的改变,部署文档也更新了,部署有问题的参考最新文档!

  • mall-swarm在Windows环境下的部署:
  • mall-swarm在Linux环境下的部署(基于Docker容器)

其他

其他更新内容和mall项目基本相同

运行效果一览

  • 查看注册中心服务信息;

  • 监控中心应用信息;

  • API文档信息;

  • 日志收集系统信息;

  • 可视化容器管理;

项目地址

如此给力的微服务电商实战项目赶紧来学习一波吧,可以点击此处来获取就可以了!

相关文章
|
21天前
|
Dubbo Java 应用服务中间件
Spring Cloud Dubbo:微服务通信的高效解决方案
【10月更文挑战第15天】随着信息技术的发展,微服务架构成为企业应用开发的主流。Spring Cloud Dubbo结合了Dubbo的高性能RPC和Spring Cloud的生态系统,提供高效、稳定的微服务通信解决方案。它支持多种通信协议,具备服务注册与发现、负载均衡及容错机制,简化了服务调用的复杂性,使开发者能更专注于业务逻辑的实现。
45 2
|
14天前
|
监控 Cloud Native 持续交付
云原生架构下微服务的最佳实践与挑战####
【10月更文挑战第20天】 本文深入探讨了云原生架构在现代软件开发中的应用,特别是针对微服务设计模式的最优实践与面临的主要挑战。通过分析容器化、持续集成/持续部署(CI/CD)、服务网格等关键技术,阐述了如何高效构建、部署及运维微服务系统。同时,文章也指出了在云原生转型过程中常见的难题,如服务间的复杂通信、安全性问题以及监控与可观测性的实现,为开发者和企业提供了宝贵的策略指导和解决方案建议。 ####
42 5
|
14天前
|
Kubernetes Cloud Native 持续交付
云原生架构下的微服务设计原则与最佳实践##
在数字化转型的浪潮中,云原生技术以其高效、灵活和可扩展的特性成为企业IT架构转型的首选。本文深入探讨了云原生架构的核心理念,聚焦于微服务设计的关键原则与实施策略,旨在为开发者提供一套系统性的方法论,以应对复杂多变的业务需求和技术挑战。通过分析真实案例,揭示了如何有效利用容器化、持续集成/持续部署(CI/CD)、服务网格等关键技术,构建高性能、易维护的云原生应用。文章还强调了文化与组织变革在云原生转型过程中的重要性,为企业顺利过渡到云原生时代提供了宝贵的见解。 ##
|
16天前
|
监控 安全 Java
构建高效后端服务:微服务架构深度解析与最佳实践###
【10月更文挑战第19天】 在数字化转型加速的今天,企业对后端服务的响应速度、可扩展性和灵活性提出了更高要求。本文探讨了微服务架构作为解决方案,通过分析传统单体架构面临的挑战,深入剖析微服务的核心优势、关键组件及设计原则。我们将从实际案例入手,揭示成功实施微服务的策略与常见陷阱,为开发者和企业提供可操作的指导建议。本文目的是帮助读者理解如何利用微服务架构提升后端服务的整体效能,实现业务快速迭代与创新。 ###
46 2
|
24天前
|
Dubbo Java 应用服务中间件
Dubbo学习圣经:从入门到精通 Dubbo3.0 + SpringCloud Alibaba 微服务基础框架
尼恩团队的15大技术圣经,旨在帮助开发者系统化、体系化地掌握核心技术,提升技术实力,从而在面试和工作中脱颖而出。本文介绍了如何使用Dubbo3.0与Spring Cloud Gateway进行整合,解决传统Dubbo架构缺乏HTTP入口的问题,实现高性能的微服务网关。
|
20天前
|
JSON Java 数据格式
【微服务】SpringCloud之Feign远程调用
本文介绍了使用Feign作为HTTP客户端替代RestTemplate进行远程调用的优势及具体使用方法。Feign通过声明式接口简化了HTTP请求的发送,提高了代码的可读性和维护性。文章详细描述了Feign的搭建步骤,包括引入依赖、添加注解、编写FeignClient接口和调用代码,并提供了自定义配置的示例,如修改日志级别等。
45 1
|
24天前
|
人工智能 文字识别 Java
SpringCloud+Python 混合微服务,如何打造AI分布式业务应用的技术底层?
尼恩,一位拥有20年架构经验的老架构师,通过其深厚的架构功力,成功指导了一位9年经验的网易工程师转型为大模型架构师,薪资逆涨50%,年薪近80W。尼恩的指导不仅帮助这位工程师在一年内成为大模型架构师,还让他管理起了10人团队,产品成功应用于多家大中型企业。尼恩因此决定编写《LLM大模型学习圣经》系列,帮助更多人掌握大模型架构,实现职业跃迁。该系列包括《从0到1吃透Transformer技术底座》、《从0到1精通RAG架构》等,旨在系统化、体系化地讲解大模型技术,助力读者实现“offer直提”。此外,尼恩还分享了多个技术圣经,如《NIO圣经》、《Docker圣经》等,帮助读者深入理解核心技术。
SpringCloud+Python 混合微服务,如何打造AI分布式业务应用的技术底层?
|
1月前
|
消息中间件 缓存 Java
亿级流量电商平台微服务架构详解
【10月更文挑战第2天】构建一个能够处理亿级流量的电商平台微服务架构是一个庞大且复杂的任务,这通常涉及到多个微服务、数据库分库分表、缓存策略、消息队列、负载均衡、熔断降级、分布式事务等一系列高级技术和架构模式。
74 3
|
30天前
|
JSON 缓存 Java
优雅至极!Spring Boot 3.3 中 ObjectMapper 的最佳实践
【10月更文挑战第5天】在Spring Boot的开发中,ObjectMapper作为Jackson框架的核心组件,扮演着处理JSON格式数据的核心角色。它不仅能够将Java对象与JSON字符串进行相互转换,还支持复杂的Java类型,如泛型、嵌套对象、集合等。在Spring Boot 3.3中,通过优雅地配置和使用ObjectMapper,我们可以更加高效地处理JSON数据,提升开发效率和代码质量。本文将从ObjectMapper的基本功能、配置方法、最佳实践以及性能优化等方面进行详细探讨。
43 2
|
1月前
|
Java 数据库 数据安全/隐私保护
Spring 微服务提示:使用环境变量抽象数据库主机名
Spring 微服务提示:使用环境变量抽象数据库主机名
38 1
下一篇
无影云桌面