1、Spu与Sku概念
SPU:某一款商品的公共属性
SKU:某款商品的不同参数对应的商品信息[某个商品]
SPU = Standard Product Unit (标准产品单位)
同款商品的公共属性抽取
例如:华为P30 就是一个 SPU
SKU=stock keeping unit( 库存量单位)
例如:华为P30 红色 64G 就是一个 SKU
某个库存单位的商品独有属性(某个商品的独有属性)
码云地址利用代码生成器,可以轻松的构建增、删,改查,分页等代码,
pojo、controller、service、serviceImp等代码,同时可以生成swagger API,
解决的大概80%~90%的代码编写。
同时,还可以根据自己的需求修改,配置出自己需求的代码模板。
Lua 是一种轻量小巧的脚本语言,用标准C语言编写并以源代码形式开放, 其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。
lua语法、思路与java类似,实现实现形式不同而已,(了解一下就可以)
数据类型:
Lua 是动态类型语言,变量不要类型定义,只需要为变量赋值。 值可以存储在变量中,作为参数传递或结果返回。
Lua 中有 8 个基本类型分别为:nil、boolean、number、string、userdata、function、thread 和 table。
数据类型 | 描述 |
---|---|
nil | 这个最简单,只有值nil属于该类,表示一个无效值(在条件表达式中相当于false)。 |
boolean | 包含两个值:false和true。 |
number | 表示双精度类型的实浮点数 |
string | 字符串由一对双引号或单引号来表示 |
function | 由 C 或 Lua 编写的函数 |
userdata | 表示任意存储在变量中的C数据结构 |
thread | 表示执行的独立线路,用于执行协同程序 |
table | Lua 中的表(table)其实是一个“关联数组”(associative arrays),数组的索引可以是数字、字符串或表类型。在 Lua 里,table 的创建是通过“构造表达式”来完成,最简单构造表达式是{},用来创建一个空表。 |
OpenResty(又称:ngx_openresty) 是一个基于 nginx的可伸缩的 Web 平台,由中国人章亦春发起,提供了很多高质量的第三方模块。
OpenResty 是一个强大的 Web 应用服务器,Web 开发人员可以使用 Lua 脚本语言调动 Nginx 支持的各种 C 以及 Lua 模块,更主要的是在性能方面,OpenResty可以 快速构造出足以胜任 10K 以上并发连接响应的超高性能 Web 应用系统。
360,UPYUN,阿里云,新浪,腾讯网,去哪儿网,酷狗音乐等都是 OpenResty 的深度用户。
OpenResty 简单理解成 就相当于封装了nginx,并且集成了LUA脚本,开发人员只需要简单的其提供了模块就可以实现相关的逻辑,而不再像之前,还需要在nginx中自己编写lua的脚本,再进行调用了。
https://gitee.com/skygwz/changgou/blob/master/day04/%E8%AE%B2%E4%B9%89/%E7%AC%AC4%E5%A4%A9.md.html
nginx提供两种限流的方式:
通过服务控制每秒处理的请求数
漏桶算法实现控制速率限流
漏桶(Leaky Bucket)算法思路很简单,水(请求)先进入到漏桶里,漏桶以一定的速度出水(接口有响应速率),当水流入速度过大会直接溢出(访问频率超过接口响应速率),然后就拒绝请求,可以看出漏桶算法能强行限制数据的传输速率.示意图如下:
利用连接数限制 某一个用户的ip连接的数量来控制流量。
注意:并非所有连接都被计算在内 只有当服务器正在处理请求并且已经读取了整个请求头时,才会计算有效连接。
简单来说,就是通过设置在某段时间,能够处理的请求数量。
通过限制单个IP的请求次数,来控制请求并发量。
原理相对比较简单:
canal需要使用到mysql,我们需要先安装mysql,给大家发的虚拟机中已经安装了mysql容器,但canal是基于mysql的主从模式实现的,所以必须先开启binlog.
一旦服务调用,对数据库中的数据进行操作,canal就会监听到数据的操作。
六、缓存架构
通过openResty + Lua + Redis 实现缓冲架构。