
2020谷粒商城
尚硅谷2020谷粒商城学习总结资料。只做完高级篇,集群篇短期不会看了。
haitaoss
这个作者很懒,什么都没留下…
展开
-
接口幂等性
接口幂等性 什么是幂等性 接口幂等性就是用户对于同一操作发起的一次请求或者多次请求的结果是一致的, 不会因为多次点击而产生了副作用;比如说支付场景,用户购买了商品支付扣款成功,但是返回结果的时候网络异常,此时钱已经扣了,用户再次点击按钮,此时会进行第二次扣款,返回结果成功,用户查询余额返发现多扣钱了,流水记录也变成了两条. . . ,这就没有保证接口的幂等性。 哪些情况需要防止 用户多次点击按钮 用户页面回退再次提交 微服务互相调用,由于网络问题,导致请求失败。feign 触发重试机制 其他原创 2020-08-17 11:37:15 · 240 阅读 · 0 评论 -
本地事务与分布式事务
本地事务与分布式事务 本地事务 事务的基本性质 事务的概念:事务是逻辑上一组操作,组成这组操作各个逻辑单元,要么一起成功,要么一起失败。 数据库事务的几个特性:原子性(Atomicity)、一致性( Consistency )、隔离性或独立性( lsolation)和持久性(Durabilily),简称就是ACID; 原子性:一系列的操作整体不可拆分,要么同时成功,要么同时失败 一 致性:数据在事务的前后,业务整体一致。 转账。A:1000; B:1000; 转200 事务成功; A: 800 B原创 2020-08-17 11:33:01 · 885 阅读 · 0 评论 -
定时任务
定时任务 cron 表达 语法:秒 分 时 日 月 星期 年(年可选,spirng不支持年) http://www.quartz-scheduler.org/documentation/quartz-2.3.0/tutorials/crontrigger.html 特殊字符 “-” :范围, MON-WED表示星期一到星期三 “,” :列举, MON,WEB表示星期一和星期三 “*” :任意,指定位置的任意时刻都可以,每月,每天,每周,每年等 “/” : 步长,0/15(处于分钟段里面) 在0分以后开原创 2020-08-17 11:32:32 · 200 阅读 · 0 评论 -
缓存与分布式锁
缓存与分布式锁 缓存 缓存使用 为了系统性能的提升,我们一般都会将部分数据放入缓存中,加速访问。而db承担数据落盘工作。 哪些数据适合放入缓存? 即时性、数据致性要求不高的 访问量大且更新频率不高的数据(读多,写少) 举例:电商类应用,商品分类,商品列表等适合缓存并加一个失效时间(根据数据更新频率来定),后台如果发布一个商品,买家需要5分钟才能看到新的商品一般还是可以接受的。 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Rv6faiiF-1597635087323)(谷原创 2020-08-17 11:31:59 · 454 阅读 · 3 评论 -
前端-ES6
一、简介 ES6, 全称 ECMAScript 6.0 ,是 JavaScript 的下一个版本标准,2015.06 发版。 ES6 主要是为了解决 ES5 的先天不足,比如 JavaScript 里并没有类的概念,但是目前浏览器的 JavaScript 是 ES5 版本,大多数高版本的浏览器也支持 ES6,不过只实现了 ES6 的部分特性和功能。 二、 特性 1. let 新增加的声明变量的关键字,与var声明变量有以下不同 声明的变量有严格局部作用域 { var a原创 2020-08-17 11:31:17 · 498 阅读 · 0 评论 -
消息中间件-RabbitMQ
消息队列应用场景 消息中间件概述 RabbitMQ 概念 一个客户端只与消息中间件建立一条链接(长连接),一条链接里面有多个channel(虚拟链接,复用一条TCP连接) 虚拟主机是rabbitmq为了隔离不同类型客户端出现的概念。我们在开发过程中可以一个客户端一个虚拟主机。即一个rabbitmq里面可以有多个虚拟主机 虚拟主机:多个交换机构成虚拟主机,主要目的是隔离客户端的消息。比如当前消息队列的生产者有java端和php端,为了隔离开我们可以划分出两个虚拟主机。虚拟主机互相隔离,一台原创 2020-08-17 11:30:52 · 495 阅读 · 0 评论 -
压力测试&性能监控
压力测试 & 性能监控 性能监控 jvm 内存模型 程序计数器Program Counter Register: 记录的是正在执行的 虛拟机字节码指令的地址, 此内存区域是唯一个在 JAVA虚拟机规范中没有规定任何OutOfMemoryError的区域 虚拟机: VMStack 描述的是 JAVA方法执行的内存模型,每个方法在执行的时候都会创建一一个栈帧,用于存储局部变量表,操作数栈,动态链接,方法接口等信息 局部变量表存储了 编译期可知的各种基本数据类型、对象引用 线程请求的栈深度不够原创 2020-08-16 11:32:26 · 1459 阅读 · 0 评论 -
异步线程池 & 异步编排
异步线程池 & 异步编排 线程回顾 初始化线程的四种方式 继承Thread public class ThreadTest{ public static class Thread01 extends Thread { @Override public void run() { System.out.println("当前线程:" + Thread.currentThread().getId()); int i =原创 2020-08-16 11:31:28 · 1134 阅读 · 1 评论 -
ElasticSearch
Elastic Search 简介 是什么 Elasticsearch是一个基于Apache Lucene™的开源搜索引擎。无论在开源还是专有领域,Lucene可以被认为是迄今为止最先进、性能最好的、功能最全的搜索引擎库。 特点: 分布式的实时文件存储,每个字段都被索引并可被搜索 分布式的实时分析搜索引擎–做不规则查询 可以扩展到上百台服务器,处理PB级结构化或非结构化数据 Elasticsearch也使用Java开发并使用Lucene作为其核心来实现所有索引和搜索的功能,但是它的目的是原创 2020-08-16 11:30:08 · 431 阅读 · 0 评论 -
Vue
Vue 学习笔记 一、简介 Vue 是一套用于构建用户界面的渐进式框架。与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层。 1. 安装 直接下载并用 <script> 标签引入,Vue 会被注册为一个全局变量。 NPM 安装 安装后本地就会有vue.js文件,使用<script> 标签引入即可 $ npm install vue <script src="./node_modules/vue/dist/vue.js">&原创 2020-08-16 11:28:26 · 146 阅读 · 0 评论 -
谷粒商城分布式高级篇
ElasticSearch 商品发布代码 es索引的设计 (1)方便检索{ skuId:1 spuId:1 skuTitle:华为xx price:9988 saleCount:99 attrs:[ {尺寸:5寸} {CPU:高通945} ]} 冗余:100万*20 = 1000000 * 2kb = 2G (2) sku索引{ skuId:1 spuId:1 skuTitle:华为xx price:9988 saleCount:99 } attr索引{ spuId:1 attrs:[ {尺寸:5寸} {C原创 2020-08-16 11:27:24 · 5752 阅读 · 6 评论 -
谷粒商城基础篇
必看 本文很多的东西都来自这位大佬的文档 仓库地址 架构&介绍 环境的搭建 简单的操作 我使用的vagrant是我自己打包好的,可观看该博客自定义box,或者在博客最下面找到云盘地址 创建模块gulimall-coupon、gulimall-member、gulimall-order、gulimall-product、gulimall-ware 创建虚拟机(建议使用vagrant),在里面安装docker。并使用docker 运行mysql、redis、nacos。 可以进入guli原创 2020-08-16 11:26:28 · 2152 阅读 · 2 评论