
Gulimall
文章平均质量分 85
星空•物语
心之所向,不留白
展开
-
Cookie的同源政策与跨越资源共享CORS
Cookie具有不可跨域名性Cookie依然遵循同源政策,只有用服务器域名设置的Cookie才会上传,其他域名的Cookie并不会上传。Google与Baidu的域名不一样,因此域名www.google.com颁发的Cookie不会被提交到域名www.baidu.com去。domain属性决定运行访问Cookie的域名,而path属性决定允许访问Cookie的路径Cookie cookie = new Cookie("time","20080808"); // 新建Cookiecookie.set原创 2021-06-23 22:35:57 · 792 阅读 · 1 评论 -
【Gulimall+】接口幂等性策略总结
简介1 什么是幂等性接口幂等性就是用户对同一操作发起的一次请求和多次请求结果是一致的,不会因为多次点击而产生了副作用,比如支付场景,用户购买了商品,支付扣款成功,但是返回结果的时候出现了网络异常,此时钱已经扣了,用户再次点击按钮,此时就会进行第二次扣款,返回结果成功,用户查询余额发现多扣钱了,流水记录也变成了两条。。。这就没有保证接口幂等性2 那些情况需要防止用户多次点击按钮用户页面回退再次提交微服务互相调用,由于网络问题,导致请求失败,feign触发重试机制3 什么情况下需要幂等以 SQL原创 2021-03-04 18:07:45 · 358 阅读 · 0 评论 -
【Gulimall+】免费白嫖内网穿透:小米球ngrok
参考link原创 2021-01-13 21:44:47 · 519 阅读 · 0 评论 -
【Gulimall+】第三方服务:对象存储OSS、短信验证、社交登录、支付宝支付
短信认证前端验证码倒计时在auth的reg.html中有点击发送验证码按钮$(function () { /** * 验证码发送 */ $("#sendCode").click(function () { //判断是否有该样式 if ($(this).hasClass("disabled")) { // 正在倒计时 } else { // 发送验证码原创 2021-01-13 21:38:37 · 3016 阅读 · 0 评论 -
【Gulimall+】本地事务与分布式事务
本地事务1 事务的基本性质数据库事物的几个特性:原子性(Atomiccity)、一致性(Consistetcy)、隔离性或独立性(Isolation)和持久性(Durabilily),简称ACID**原子性:**一系列操作整体不可拆分,要么同时成功要么同时失败一致性:数据在业务的前后,业务整体一致 转账 A:1000 B:1000 转200 事务成功 A:800 B:1200**隔离性:**事物之间需要相互隔离**持久性:**一旦事务成功,数据一定会落盘在数据库在以往的单体应用中,我原创 2021-01-13 15:20:39 · 192 阅读 · 0 评论 -
【Gulimall+】拦截器HandlerInterceptor前后置处理目标方法、RequestInterceptor解决Feign远程调用的请求头丢失、上下文丢失问题
拦截器Cart的Interceptorcom/atguigu/gulimall/cart/interceptor/CartInterceptor.java/** * 在执行目标方法之前,判断用户的登录状态,并封装给Controller目标请求 */@Componentpublic class CartInterceptor implements HandlerInterceptor { public static ThreadLocal<UserInfo> threadLo原创 2021-01-13 11:31:58 · 1245 阅读 · 4 评论 -
【Gulimall+】消息队列 - MQ:可靠性抵达回调确认+利用死信实现延迟队列
1 功能1、异步处理消息发送的时间取决于业务执行的最长的时间2、应用解耦原本是需要订单系统直接调用库存系统只需要将请求发送给消息队列,其他的就不需要去处理了,节省了处理业务逻辑的时间3、流量消峰某一时刻如果请求特别的大,那就先把它放入消息队列,从而达到流量消峰的作用2 概述大多应用中,可通过消息服务中间件来提升系统异步通信,扩展解耦能力消息服务中两个重要概念: 消息代理(message broker) 和 目的地(destination)当消息发送者发送消息后,将由消息代理接管原创 2021-01-13 10:29:51 · 1021 阅读 · 0 评论 -
【Gulimall+】SpringSession实现:分布式session共享、不同子域session共享
分布式 Session跨域共享问题浏览器在Cookie中保存jessionid,session不能跨不是一类域名进行共享(子域名可以共享父域名的session),即使同一服务,分布式下session不能同步Session共享问题解决1、session复制2、客户端存储3、hash一致性4、统一存储不同服务、子域Session共享的解决SpringSession它是依赖Redis的相关配置也不能少1、导入依赖 <dependency> <groupI原创 2021-01-12 21:02:27 · 412 阅读 · 0 评论 -
【Gulimall+】异步编排 & 线程池
文章目录线程回顾初始化线程的 4 种方式线程池的 7 大参数常见的 4 种线程池开发中为什么使用线程池CompletableFuture 异步编排创建异步对象计算完成时回调方法handle 方法线程串行方法两任务组合 - 都要完成两任务组合 - 一个完成多任务组合商品详情获取线程回顾初始化线程的 4 种方式1、继承 Thread2、实现 Runnable3、实现 Callable 接口 + FutureTask(可以拿到返回结果,可以处理异常)4、线程池方式一和方式二 主进程无法获取线程的运算原创 2021-01-12 17:13:45 · 458 阅读 · 0 评论 -
【Gulimall+】分布式锁之redis实现、Redisson专业框架实现,整合SpringCache简化缓存开发
引言启动redis服务如果直接挂载的话docker会以为挂载的是一个目录,所以我们先创建一个文件然后再挂载,在虚拟机中。#在虚拟机中mkdir -p /mydata/redis/conftouch /mydata/redis/conf/redis.confdocker pull redisdocker run -p 6379:6379 --name redis \-v /mydata/redis/data:/data \-v /mydata/redis/conf/redis.conf:原创 2021-01-12 16:03:51 · 540 阅读 · 0 评论 -
【Gulimall+】Nginx代理服务器+网关:实现动静分离和负载均衡
docker启动docker run -p80:80 --name nginx -d nginx:1.10 将容器内的配置文件拷贝到当前目录 (注意后面有个小点)会在当前目录产生一个nginx文件夹docker container cp nginx:/etc/nginx . 将该nginx文件中的所有配置移位置,以便映射mv ./nginx/* /mydata/nginx/conf/rm -rf ./nginx终止原容器, docker stop nginx执行命令删除容器:doc原创 2021-01-12 10:47:04 · 690 阅读 · 0 评论 -
【Gulimall+】SpringBoot整合Thymeleaf页面模板
开发传统Java WEB工程时,我们可以使用JSP页面模板语言,但是在SpringBoot中已经不推荐使用了。SpringBoot支持如下页面模板语言ThymeleafFreeMarkerVelocityGroovyJSP其中 Thymeleaf的官方link,中文版可参见link配置pom中导入thymeleaf依赖 <!--模板引擎 thymeleaf--><dependency> <groupId>org.springframework原创 2021-01-12 09:38:08 · 191 阅读 · 0 评论 -
【Gulimall+】Elasticsearch:docker启动、DSL与Java代码转换+ik分词器
这个是某款商品的属性表示例"attrs" : [ { "attrId" : 10, "attrName" : "上市年份", "attrValue" : "2020" }, { "attrId" : 11, "attrName" : "品牌名", "attrValue"原创 2021-01-11 23:25:34 · 769 阅读 · 0 评论 -
【Gulimall+】秒杀高并发有三宝:缓存、异步、队排好
一提到高并发,秒杀成为了最为典型的业务场景,针对这一特点,必须要做到限流 + 异步 + 缓存(页面静态化) + 独立部署限流方式:1、前端限流,一些高并发的网站直接在前端页面开始限流,列如:小米的验证码2、nginx限流,直接负载部分请求到错误的静态页面,令牌算法、漏斗算法3、网关限流、限流的过滤器4、代码中使用分布式信号量5、rabbitmq限流(能者多劳 channel.basicQos(1))保证发挥服务器的所用性能...原创 2021-01-11 17:02:19 · 905 阅读 · 2 评论 -
【Gulimall+】SpringCloud Alibaba-Sentinel的限流熔断降级+SpringCloud的服务链路追踪Sleuth+Zipkin
引言为什么需要Sentinel,以防业务做的太好,流量太多炸了。再者万一微服务走了个神,也不能让上帝的客户在那苦苦等待吧为什么需要Sleuth,说白了就是便于咱取排错,为了对咱友好,还Zipkin可视化一下Sentinel随着微服务的流行,服务和服务之间的稳定性变得越来越重要。Sentinel 是面向分布式服务架构的流量控制组件,主要以流量为切入点,从限流、流量整形、熔断降级、系统负载保护、热点防护等多个维度来帮助开发者保障微服务的稳定性。对于限流熔断降级这些概念我就不乱科普了,还是取人家主页看看原创 2021-01-11 14:53:17 · 541 阅读 · 0 评论 -
【Gulimall_1_2】谷粒商城分布式记录
1.docker安装:#Docker的安装及学习[1]+[2]PS:添加完用户组后,通过下述操作方可生效方式一:刷新docker组 sudo newgrp docker方式二:退出该用户重新登录 sudo su 切换到root再 su 用户名docker安装完还不行,docker的目录放在系统根目录下可不行,镜像太占空间了,改位置开机自启动服务:sudo systemctl enable docker.service配置镜像阿里云加速器针对Docker客户端版本大于 1.10.0 的用户原创 2020-12-07 09:35:53 · 1347 阅读 · 0 评论 -
【Gulimall】MyBatis-Plus的逻辑删除、分页插件、复杂Dao的实现(嵌套类型resultMap定义)
1、整合MyBatis-Plus 1)、导入依赖 <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.2.0</version> </dependency> .原创 2020-12-06 23:09:40 · 455 阅读 · 0 评论 -
【Gulimall】JSR303校验、集中处理异常、分组校验、自定义校验、错误收集时Duplicated key避免
先给个实体类的校验注解示意,其中@ListValue为自定义校验注解@Data@TableName("pms_brand")public class BrandEntity implements Serializable { private static final long serialVersionUID = 1L; /** * 品牌id */ @NotNull(message = "修改必须指定品牌id",groups = {UpdateGroup.class}) @Null(原创 2020-12-06 21:06:21 · 1705 阅读 · 0 评论 -
【Gulimall】Spring Cloud:spring-cloud-gateway、spring-cloud-openfeign,Alibaba的注册+配置中心Nacos
Githublink + 官方link若需要使用已发布的阿里版本,在pom中dependencyManagement 中添加如下配置。<dependencyManagement> <dependencies> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-a原创 2020-12-06 18:30:00 · 446 阅读 · 0 评论 -
【Gulimall】跨域资源共享CORS
跨源资源共享CORS说明:link问题:跨域限制问题描述:已拦截跨源请求:同源策略禁止读取位于 http://localhost:6060/api/sys/login 的远程资源。(原因:CORS 头缺少 ‘Access-Control-Allow-Origin’)。问题分析:这是一种跨域问题。访问的域名和端口和原来的请求不同,请求就会被限制SOLVE:给网关添加一个cors配置filter,将所有请求在返回时添加对应允许所要请求跨域的CORS响应头@Configurationpublic原创 2020-12-06 15:05:16 · 221 阅读 · 1 评论