首页 > 分享 > 基于Vue+SpringCloudAlibaba微服务电商项目实战

基于Vue+SpringCloudAlibaba微服务电商项目实战

001:需求讨论与技术架构选型 1 微服务电商项目课程安排2 微服务电商项目Vue页面展示3 微服务电商项目核心技术选型4 微服务电商项目架构图流程5 微服务电商项目课程的安排6 微服务电商项目项目模块构建7 构建分布式注册中心Nacos8 创建生产者微服务接口9 创建微信服务接口的实现10 创建会员服务调用微信服务接口

1 微服务电商项目课程安排

今日课程任务

第六期微服务电商项目课程介绍第六期微服务电商项目与第四期不同点微服务电商项目技术架构选型微服务电商项目系统的架构模型微服务电商项目模块的划分构建项目Maven、编码相关说明基于Nacos作为分布式注册中心构建微服务项目之微信服务构建微服务项目之会员服务整合openfeign客户端实现rpc调用定义微服务接口响应的规范

2 微服务电商项目Vue页面展示

相关说明
该项目“基于SpringCloudAlibaba+Vue构建微服务电商项目”相比往期结业项目优化了很多,完全采用前后端分离架构的模式,由每特教育|蚂蚁课堂版权所有,未经过允许的情况下,私自分享视频和源码属于违法行为。
该项目作者:97后互联网架构师-余胜军
相关网址:www.mayikt.com
联系方式:微信yushengjun644、QQ644064779

项目采用目前比较流行的SpringBoot2.0/SpringCloudAlibaba构建微服务电商项目,
该项目涵盖从微服务电商需求讨论、数据库设计、技术选型、互联网安全架构、整合SpringCloudAlibaba核心组件Nacos/sentinel/Seata/canal等、分布式基础设施、Docker+k8s+jenkins实现微服务自动化部署、项目上线域名配置、SEO优化、大数据统计分析、前后分离架构、微信开发等。
能够完全独立设计与开发完成,基本上可以完全熟练掌握微服务架构流程及解决方案。

3 微服务电商项目核心技术选型

技术选型
A. 项目采用SpringBoot2.0+SpringCloudAlibaba构建微服务电商项目
1.使用Nacos作为注册中心,实现服务治理
2.使用新一代Gateway网关框架管理服务请求入口
3.使用Ribbon实现本地负载均衡器和openFegin客户端调用工具
4.使用Sentinel服务保护框架(系统自适应限流、降级、热词限流等)
5.使用消息总线Stream RocketMQ和Kafka
6.微服务API接口安全控制与单点登陆系统CAS+JWT+Oauth2.0

B. 分布式基础设施环境构建
1.分布式任务调度平台XXL-Job
2.分布式日志采集系统ELK +kafka
3.分布式事务解决方案Seata和RocketMQ
4.分布式锁解决方案Zookeeper、Redis
5.分布式配置中心Nacos
6.高并发分布式全局ID生成雪花算法
7.分布式Session框架Spring-Session 禁止使用Session 使用token
8.分布式服务追踪与调用链ZipKin
9.基于canal解决MySQL与Redis一致性问题
10.基于网关统一解决微服务接口跨域问题
11.基于openresty+lua+Redis实现亿级商品详情页面

C.项目运营与部署环境
1.分布式设施环境,统一采用docker安装
2.使用jenkins+docker+k8s实现自动部署
3.微服务API管理ApiSwagger
4.使用GitLab代码管理
5.统一采用第三方云数据库
6.使用七牛云服务器对静态资源实现加速
7.构建企业级Maven私服

D.前端技术架构
1.完全采用Vue前后端分离架构模式

4 微服务电商项目架构图流程

互联网项目渠道来源有PC端、移动端、小程序端、微信公众号等。
如何能支持这么多种渠道?
面向服务架构,在接口中传递渠道来源(eg:app_name=PC/Android/IOS)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5 微服务电商项目课程的安排

课程安排
技术选型:

第一节 微服务电商项目需求讨论与技术架构选型
第二节 微服务架构环境搭建Maven私服仓库、GitLiab代码仓库
第三节 构建微服务微服务网关、api文档doc管理

技术设施:
第一节 构建分布式基础设施注册中心与配置中心Nacos
第二节 构建分布式基础设Canal解决数据同步的问题

微服务公众号:
第一节 微服务电商项目-微信服务-wx公众号管理
第二节 基于设计模式构建-会员服务-联合登陆(QQ/微信)
第三节 基于设计模式构建-会员服务-唯一登陆

Vue整合技术:
第一节 构建前端Vue项目整合后端微服务接口
第二节 微服务电商项目-前后端分离架构跨域解决方案
第三节 微服务电商项目-前后端分离SSO单点登陆设计

消息服务平台:
第四节 微服务电商项目-消息服务平台-消息服务平台

商品详情页面:
第一节 微服务电商项目-商品服务-数据设计与搜索服务
第二节 微服务电商项目-商品服务-亿级商品详情页面设计
第三节 微服务电商项目-订单服务-订单服务超时设计

聚合支付模块:
第一节 微服务电商项目-MT聚合支付-数据设计
第二节 微服务电商项目-MT聚合支付-银联支付
第三节 微服务电商项目-MT聚合支付-支付宝支付
第四节 微服务电商项目-基于支付整合seata解决分布式事务问题
第五节 微服务电商项目-MT聚合支付-基于任务调度实现对账设计

秒杀抢购模块:
微服务电商项目-秒杀服务-秒杀抢购
微服务电商项目-秒杀服务-高并发解决方案

后台模块:
微服务电商项目-后台运营平台设计

日志模块:
微服务电商项目ELK日志分析
微服务电商项目zipkin服务追踪

安全模块:
第一节 微服务电商项目安全架构
第二节 微服务电商项目大数据用户行为分析

项目部署:
第一节 使用jenkins+docker+k8s实现自动部署 灰度发布测试
第二节 微服务电商项目上线部署环境

行为分析:
第一节 接口埋点设计、整个第三方数据统计分析
最终以实际课程表格为准。

环境要求
为了能够更好的学习互联网微服务架构,该项目对环境要求非常高,建议电脑配置CPU在I7 8700k以上处理、32GB内存或者电脑采用集群化部署。
1.JDK统一要求:JDK1.8以上
2.Maven 统一管理Jar
3.统一采用Docker安装软件
4.编码统一采用为UTF-8
5.开发工具完全采用idea

6 微服务电商项目项目模块构建

构建项目
mt-shop-parent-----公共Pranet接口
-----mt-shop-basics----分布式基础设施
---------mt-shop-basics-alibaba-nacos—注册中心 8080
---------mt-shop-basics-alibaba-nacos—分布式配置中心 8080
---------mt-shop-basics-alibaba-seata 分布式事务解决方案 8730
---------mt-shop-basics-alibaba-canal mysql与redis一致性的问题
---------mt-shop-basics-springcloud-gateway—统一请求入口 80
---------mt-shop-basics-xuxueli-xxljob—分布式任务调度平台
---------mt-shop-basics-codingapi-zipKin —分布式调用链系统

-----mt-shop-service-api提供公共接口
------------ mt-shop-service-api-weixin 微信服务接口
------------ mt-shop-service-api-member会员服务接口
------------ mt-shop-service-api-sso sso服务接口
------------ mt-shop-service-api-item商品服务接口
------------ mt-shop-service-api-search 搜索服务接口
------------ mt-shop-service-api-pay聚合支付平台
------------ mt-shop-service-api-order订单服务接口
------------ mt-shop-service-api-spike 秒杀服务接口
------------ mt-shop-service-api-sms 消息服务平台
服务接口中包含内存内容: 实体类层、接口层

-----mt-shop-service-impl公共接口的实现
------------ mt-shop-service-weixin 微信服务接口实现 9090
------------ mt-shop-service-member会员服务接口实现 7070
------------ mt-shop-service-api-sso sso服务接口实现 6060
------------ mt-shop-service-tem商品服务接口实现 5050
------------ mt-shop-service-search 搜索服务接口实现 3030
------------ mt-shop-service-pay聚合支付平台接口实现 2020
------------ mt-shop-service-order订单服务接口实现 1010
------------ mt-shop-service-spike 秒杀服务接口 4040
------------ mt-shop-service-sms 消息服务平台 9810

mt-shop-common 工具类 单独将该项目打入maven私服中引入
-----mt-shop-common-core—核心工具类

mt-shop-job—任务调度工程
----mt-shop-pay- reconcile — 支付对账任务
----mt-shop-pay- sms — 消息服务平台

mt-shop-portal 门户平台 vue工程
----mt-shop-portal-web 门户网站 支持PC端和H5端访问
----mt-shop-portal-sso 单点登陆系统
----mt-shop-portal-search 搜索系统
----mt-shop-portal-spike 秒杀系统
----mt-shop-portal-cms 系统

7 构建分布式注册中心Nacos

构建分布式注册中心nacos
解压nacos-server-1.1.4
安装目录nacos-server-1.1.4nacosbin 双击startup.cmd即可
在这里插入图片描述
Nacos端口为8848
http://127.0.0.1:8848/nacos/#/login 账号密码nacos naocs

8 创建生产者微服务接口

mt-shop-parent
Maven依赖

<properties> <boot-version>2.1.11.RELEASE</boot-version> <mybatis.starter.version>2.0.0</mybatis.starter.version> <mapper.starter.version>2.1.5</mapper.starter.version> </properties> <dependencies> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <optional>true</optional> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-openfeign</artifactId> </dependency> <!-- springboot 整合web组件--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-alibaba-nacos-discovery</artifactId> <version>2.1.1.RELEASE</version> </dependency> </dependencies> <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>Greenwich.RELEASE</version> <type>pom</type> <scope>import</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-dependencies</artifactId> <version>${boot-version}</version> <type>pom</type> <scope>import</scope> </dependency> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-alibaba-dependencies</artifactId> <version>2.1.1.RELEASE</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement>

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556

mt-shop-service-api
mt-shop-service-api-weixin

public interface WeiXinService { /** * 微信接口 * * @return */ @GetMapping("appInfo") String appInfo(Long userId); } 12345678910

9 创建微信服务接口的实现

mt-shop-service-impl
mt-shop-service-weixin
maven依赖

<dependencies> <dependency> <groupId>com.mayikt</groupId> <artifactId>mt-shop-service-api-weixin</artifactId> <version>1.0-SNAPSHOT</version> </dependency> </dependencies> 1234567

实现类/启动类

@RestController public class WeiXinServiceImpl implements WeiXinService { @Override public String appInfo(Long userId) { return "微信接口" + userId; } } 1234567

@SpringBootApplication public class AppWeiXin { public static void main(String[] args) { SpringApplication.run(AppWeiXin.class); } } 123456

application.yml

server: port: 9090 spring: application: name: mayikt-weixin cloud: nacos: discovery: ##nacos服务注册地址 server-addr: 127.0.0.1:8848 12345678910

10 创建会员服务调用微信服务接口

构建会员服务接口项目
mt-shop-service-member
maven依赖

<dependencies> <dependency> <groupId>com.mayikt</groupId> <artifactId>mt-shop-service-api-weixin</artifactId> <version>1.0-SNAPSHOT</version> </dependency> </dependencies> 1234567

application.yml

server: port: 7070 spring: application: name: mayikt-member cloud: nacos: discovery: ##nacos服务注册地址 server-addr: 127.0.0.1:8848 Feign接口/实现类/启动类 @FeignClient("mayikt-weixin") public interface WeiXinServiceFeign extends WeiXinService { // Feign客户端复用机制 } 123456789101112131415

Feign接口/实现类/启动类

@FeignClient("mayikt-weixin") public interface WeiXinServiceFeign extends WeiXinService { // Feign客户端复用机制 } 1234

@RestController public class MemberService { @Autowired private WeiXinServiceFeign weiXinServiceFeign; /** * 会员服务调用微信接口 * @param userId * @return */ @GetMapping("/memberToWeiXin") public String memberToWeiXin(Long userId) { return "会员服务调用:" + weiXinServiceFeign.appInfo(userId); } }

12345678910111213141516

@SpringBootApplication @EnableFeignClients public class AppMember { public static void main(String[] args) { SpringApplication.run(AppMember.class); } } 1234567

常见报错问题
status 405 reading WeiXinServiceFeign#getAppInfo(Long)
传递参数加上注解@RequestParam(“userId”)

测试效果:
在这里插入图片描述

相关知识

Java通用型支付+电商平台双系统实战
基于顾客感知视角的电商物流配送服务满意度评价研究
基于ssm+vue电商交易平台(开题报告+程序+论文+java)
融合贝店+玛伊微享淘+花生日记=电商微商的精髓之全新社交电商平台安惠优品
鲜花电商市场规模如何 鲜花电商市场分析
Java实战项目
基于Python爬虫的电商网站彩妆数据的分析与研究
花易宝获评省级电商示范平台与云品电商分拣集散中心示范项目双项荣誉
花卉电商项目创业计划书.pptx
/describe 指令一招搞定电商出图 – Midjourney 实战必杀技

网址: 基于Vue+SpringCloudAlibaba微服务电商项目实战 https://m.huajiangbk.com/newsview849286.html

所属分类:花卉
上一篇: 第一章 开源GIS选型
下一篇: 林韶|电商平台“二选一”行为反垄