逐梦少年,看你能不能发现宝藏( 七 )


京东:单点登陆,是将token放入到中的,
? 案例:将浏览器的禁用,则在登陆京东则失败,无论如何都登陆不了!!!
19.购物车的实现过程
? 1.购物车跟用户的关系
? a、一个用户必须对应一个购物车【一个用户不管买多少商品,都会存在属于自己的购物车中 。】
? b、单点登陆一定在购物车之前 。
? 2.跟购物车有关的操作有哪些?
? a、添加购物车
? i、用户未登录状态;
? 1.添加到什么地方?未登录,将数据保存到什么地方?
? a、Redis?--------京东商城
? b、?------自己开发项目的时候,可以存在中【如果浏览器禁用】
? ii: 用户登陆状态
? 1.Redis缓存中【读写速度快】
? a、采用Hash存储:hset(key,field,value)
? Key::cart
? hset(Key,skuid,value)
? 2.存在数据库中【、mysql】
? b、展示购物车
? i:未登录状态展示
? 1.直接从中取得数据展示即可 。
? ii:登陆状态展示
? 1.用户一旦登陆,必须显示数据库【redis】+中的购物车的数据
? a、中有三条数据
? b、Redis中有五条数据
? c、真正展示的时候是八条记录
20.消息队列在项目中的使用
? 消息队列产生的背景:
? 在分布式系统中是如何处理高并发的?
? 由于在高并发的环境下,来不及同步处理用户发送的请求,则会导致请求,发生阻塞
? 比如说:大量的、之类的请求,同时到达数据库mysql,直接导致无数的行锁表锁,甚至会导致请求堆积很多
? ,从而去触发too many错误 。使用消息队列,可以消息队列的【异步通信】解决
? 这个排队就是使用的消息队列的结果
下面是队列电商中的使用场景
消息队列的弊端
? 消息的不确定性:启用延时队列,轮询结束来解决该问题即可!
? 推荐大家使用!环境是java的的
21.第二季复习java------阳哥讲《互联网笔试题第二季》
1.JVM/GC的知识 2.JUC前提知识 3.超级熟悉java8以后的新特性 ( + +函数式接口+方法引用)
JUC编程
? java1.8新加了三个包:java.util. 这个单词是并发的意思
? java.util.. 这个单词是原子的意思
22.这个关键字作用?
? 1、是java虚拟机提供的轻量级的同步机制 。
? 三大特性:1.保证可见性 2.不保证原子性 3.禁止指令重排
? 2.谈谈你对JMM(不是jvm虚拟机,这个是java内存模型)的理解:
? JMM规范包括:1.可见性 2.原子性 3.有序性
? JMM(java内存模型javaModel,简称JMM)本身是一种抽象的概念并不是真实存在的 。它描述的是一组规则或规范,通过这组规范定义了程序中各个变量(包括实例字段,静态字段和构成数组对象的元素)的访问方式 。
? JMM关于同步的规定:
? 1.线程解锁前,必须把共享变量的值刷新回主内存
? 2.线程加锁前,必须读取主内存的最新值到自己的工作内存
? 3.加锁解锁是同一把锁
? 由于JVM运行程序的实体是线程,而每个线程创建时,JVM都会为其创建一个工作内存(有些地方称为栈空间),工作内存时每个线程的私有数据区域,而java内存模型中规定所有的变量都存储在主内存,主内存是共享内存区域,所有线程都可以访问 。但是线程对变量的操作(读取赋值等)必须在工作内存中进行,首先要将变量从主内存拷贝到自己的工作空间没然后对变量进行操作,操作完成后将变量协会主内存,不能直接操作主内存中的变量,哥哥线程中的工作内存中存储主内存中的变量副本拷贝,因此不同的线程间无法访问对方的工作内存,线程间的通信(传值)必须通过主内存来完成,其简要访问过程如下图