乐友商城学习笔记(一)
创始人
2024-05-26 12:49:32
0

SpringCloud

  • 什么是SpringCloud
    • 在SpringBoot基础上构建的微服务框架
    • 固定步骤
      • 1.引入组件的启动器
      • 2.覆盖默认配置
      • 3.在引导类上添加相应的注解
  • eureka
    • 注册中心,服务的注册与发现
    • 服务端
      • 1.引入服务器启动器:eureka-server
      • 2.添加了配置
        • spring.application.name 服务名
        • eureka.client.service-url.defaultZone http://localhost:10086/eureka
        • eureka.server.eviction-interval-timer-in-ms 剔除无效连接的间隔时间
        • eureka.server.enable-self-preservation 关闭自我保护
      • 3.@EnableEurekaServer 开启eureka服务端功能
    • 客户端
      • 1.引入启动器:eureka-client
      • 2.添加配置
        • spring.application.name
        • eureka.client.service-url.defaultZone
        • eureka.instance.lease-renewal-interval-in-seconds 心跳时间
        • eureka.instance.lease-expiration-duration-in-seconds 过期时间
        • eureka.client.register-with-eureka
          • 是否注册给eureka容器
          • 默认true
        • eureka.client.fetch-registry
          • 是否拉取服务列表
          • 默认true
        • eureka.client.registry-fetch-interval-seconds 拉取服务的间隔时间
      • 3.@EnableDiscoveryClient 启用eureka客户端
  • ribbon
    • 负载均衡组件
    • eureka、feign以及zuul已集成
    • 配置负载均衡策略
      • <服务名>.ribbon.NFLoadBalancerRuleClassName 负载均衡策略的全路径
    • @LoadBalanced
      • 在RestTenplate的@Bean方法上
  • hystrix
    • 容错组件
    • 降级
      • 1.引入hystrix的启动器
      • 2.添加配置,超时时间的配置
      • 3.@EnableCircuitBreaker 启动熔断组件
        • @SpringCloudApplication
          • @SpringBootApplication
          • @EnableDiscoveryClient
      • 代码
        • 全局
          • 返回值和被熔断的方法返回值一致,不能有参数列表
          • 在类上@DefaultProperties(defaultFallback=“全局熔断方法名”)
          • 在具体的被熔断方法上@HystrixCommand
        • 局部
          • 返回值和参数列表与被熔断的方法一致
          • 在被熔断的方法上@HystrixCommand
          • (fallbackMethod=“熔断方法名”)
    • 熔断
      • close
        • 关闭状态
        • 所有请求都正常访问
      • open
        • 打开状态
        • 所有请求都无法访问
        • 触发:连续失败的比例大于50%或者失败次数不少于20次
        • 维持5s的休眠时间
      • half open
        • 半开状态
        • 释放部分请求通过
          • close 正常
          • open 不正常
        • 触发:休眠时间之后
  • feign
    • 远程调用组件
      • 集成ribbon和hystrix
      • 使代码更加优雅
    • 1.引入feign的启动器
    • 2.feign.hystrix.enable=true 开启熔断
    • 3.@EnableFeignClients 开启feign的功能
    • 代码
      • 定义一个接口
        • @FeignClient(value=“服务名” fallback=实现类.class)
        • 方法上的注解使用的是SpringMVC的注解
  • zuul
    • 网关组件
      • 路由
      • 过滤器
    • 1.引入启动器
    • 2.添加配置
      • 路由的配置
      • zuul.prefix 路由前缀
      • 四种路由配置方式
        • 1
          zuul.routes.<路由名>.path=/service-provider/** 
          zuul.routes.<路由名>.url=http://localhost:8081
          
        • 2
           zuul.routes.<路由名>.path=/service-provider/**  zuul.routes.<路由名>.serviceId=service-provider
          
        • 3
           zuul.routes.<路由名:服务名>=/service-provider/**  
          
        • 4 不配置,默认服务的入口就是以服务名为前缀
    • 3.@EnableZuulProxy 开启zuul网关组件
    • 自定义过滤器
      • IZuulFilter
        • 默认的抽象实现类:ZuulFilter
      • filterType
        • pre
        • post
        • route
        • error
      • filterOrder 执行顺序:返回值越小优先级越高
      • shouldFilter
        • 是否执行run方法
        • 执行 true
      • run 过滤器的具体逻辑
      • 四种执行顺序
        • pre–>route–>post
        • 异常
          • 直接执行error–>post,pre或者route出现异常
          • error–>响应,post出现异常
          • error–>post,error出现异常

项目分类

  • 传统项目
    • 各种企业里面用的管理系统
    • 需求方:公司、企业内部
    • 盈利模式:项目本身卖钱
    • 技术侧重点:业务功能
  • 互联网分类
    • 门户网站、电商网站
    • 需求方:广大用户群体
    • 盈利模式:虚拟币、增值服务、广告收益
    • 技术侧重点:网站性能、业务功能

常见的电商模式

在这里插入图片描述

专业术语

在这里插入图片描述
在这里插入图片描述

项目开发流程

  • 项目经理:管人
  • 产品经理:设计需求模型
  • 测试
  • 前端:大前端。UI、前端、nodejs、reactjs、vuejs、mongoDB
  • 后端
  • 移动端:IOS Android
  • 在这里插入图片描述
  • 在这里插入图片描述

项目介绍

  • 乐友商城是一个全品类的电商购物网站(B2C)
  • 用户可以在线购买商品、加入购物车、下单
  • 可以评论已购买商品
  • 管理员可以在后台管理商品的上下架、促销活动
  • 管理员可以监控商品销售情况
  • 客服可以在后台处理退款操作
  • 希望未来3到5年可以支持千万用户的使用

系统架构

在这里插入图片描述
在这里插入图片描述

系统架构解读

整个乐友商城可以分为两部分:后台管理系统、前台门户系统。

  • 后台管理
    • 后台系统主要包含以下功能:
      • 商品管理:包括商品分类、品牌、商品规格等信息的管理
      • 销售管理:包括订单统计、订单退款处理、促销活动生成等
      • 用户管理:包括用户控制、冻结、解锁等
      • 权限管理:整个网站的权限控制,采用JWT鉴权方案,对用户以及API进行权限控制
      • 统计:各种数据的统计分析展示
    • 后台系统会采用前后端分离开发,而且整个后台管理系统会使用Vue.js框架搭建出单页应用(SPA)
  • 前台门户
    • 前台门户面向的是客户,包含与客户交互的一切功能。例如:
      • 搜索商品
      • 加入购物车
      • 下单
      • 评价商品等等
    • 前台系统我们会使用Themeleaf模板引擎技术来完成页面开发,处于SEO(搜索引擎)优化的考虑,我们将不采用单页应用。

项目搭建

技术选型

  • 前端技术
    • 基础的HTML、CSS、JavaScript(基于ES6标准)
    • JQuery
    • Vue.js 2.0 以及基于Vue的框架:Vuetify(UI框架)
    • 前端构建工具:WebPack
    • 前端安装包工具: NPM
    • Vue脚手架:Vue-cli
    • Vue路由:Vue-router
    • ajax框架:axios
    • 基于Vue的富文本框架:quill-editor
  • 后端技术
    • 基础的SpringMVC、Spring 5.x和Mybatis3
    • Spring Boot 2.0.6版本
    • Spring Cloud最新版 Finchley.SR2
    • Redis-4.0
    • RabbitMQ-3.4
    • Elasticsearch-6.3
    • nginx-1.14.2
    • FastDFS-5.0.8
    • MyCat
    • Thymeleaf
    • mysql-5.6

开发环境

  • IDE:idea2017以上版本
  • JDK:JDK1.8
  • 项目构建:maven3.3.9以上版本
  • 版本控制工具:git

域名

我们在开发过程中,为了保证以后的生产,测试环境统一。尽量都采用域名来访问项目。
一级域名:www.leyou.com leyou.com leyou.cn
二级域名:manage.leyou.com/item api.leyou.com
我们可以通过switchhost来修改自己的host对应的地址,只要把这些域名指向127.0.0.1,那么跟你用localhost的效果是完全一样的

相关内容

热门资讯

安卓子系统windows11,... 你知道吗?最近科技圈可是炸开了锅,因为安卓子系统在Windows 11上的兼容性成了大家热议的话题。...
电脑里怎么下载安卓系统,电脑端... 你有没有想过,你的电脑里也能装上安卓系统呢?没错,就是那个让你手机不离手的安卓!今天,就让我来带你一...
索尼相机魔改安卓系统,魔改系统... 你知道吗?最近在摄影圈里掀起了一股热潮,那就是索尼相机魔改安卓系统。这可不是一般的改装,而是让这些专...
安卓系统哪家的最流畅,安卓系统... 你有没有想过,为什么你的手机有时候像蜗牛一样慢吞吞的,而别人的手机却能像风一样快?这背后,其实就是安...
安卓最新系统4.42,深度解析... 你有没有发现,你的安卓手机最近是不是有点儿不一样了?没错,就是那个一直在默默更新的安卓最新系统4.4...
android和安卓什么系统最... 你有没有想过,你的安卓手机到底是用的是什么系统呢?是不是有时候觉得手机卡顿,运行缓慢,其实跟这个系统...
平板装安卓xp系统好,探索复古... 你有没有想过,把安卓系统装到平板上,再配上XP系统,这会是怎样一番景象呢?想象一边享受着安卓的便捷,...
投影仪装安卓系统,开启智能投影... 你有没有想过,家里的老式投影仪也能焕发第二春呢?没错,就是那个曾经陪你熬夜看电影的“老伙计”,现在它...
安卓系统无线车载carplay... 你有没有想过,开车的时候也能享受到苹果设备的便利呢?没错,就是那个让你在日常生活中离不开的iOS系统...
谷歌安卓8系统包,系统包解析与... 你有没有发现,手机更新换代的速度简直就像坐上了火箭呢?这不,最近谷歌又发布了安卓8系统包,听说这个新...
微软平板下软件安卓系统,开启全... 你有没有想过,在微软平板上也能畅享安卓系统的乐趣呢?没错,这就是今天我要跟你分享的神奇故事。想象你手...
coloros是基于安卓系统吗... 你有没有想过,手机里的那个色彩斑斓的界面,背后其实有着一个有趣的故事呢?没错,我要说的就是Color...
安卓神盾系统应用市场,一站式智... 你有没有发现,手机里的安卓神盾系统应用市场最近可是火得一塌糊涂啊!这不,我就来给你好好扒一扒,看看这...
黑莓平板安卓系统升级,解锁无限... 亲爱的读者们,你是否还记得那个曾经风靡一时的黑莓手机?那个标志性的全键盘,那个独特的黑莓体验,如今它...
安卓文件系统采用华为,探索高效... 你知道吗?最近安卓系统在文件管理上可是有了大动作呢!华为这个科技巨头,竟然悄悄地给安卓文件系统来了个...
深度系统能用安卓app,探索智... 你知道吗?现在科技的发展真是让人惊叹不已!今天,我要给你揭秘一个超级酷炫的话题——深度系统能用安卓a...
安卓系统的分区类型,深度解析存... 你有没有发现,你的安卓手机里藏着不少秘密?没错,就是那些神秘的分区类型。今天,就让我带你一探究竟,揭...
安卓系统铠无法兑换,揭秘无法兑... 最近是不是有很多小伙伴在玩安卓系统的游戏,突然发现了一个让人头疼的问题——铠无法兑换!别急,今天就来...
汽车安卓系统崩溃怎么刷,一键刷... 亲爱的车主朋友们,你是否曾遇到过汽车安卓系统崩溃的尴尬时刻?手机系统崩溃还能重启,但汽车系统崩溃了,...
miui系统可以刷安卓p系统吗... 亲爱的手机控们,你是否对MIUI系统情有独钟,同时又对安卓P系统的新鲜功能垂涎欲滴?今天,就让我带你...