自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

亚索@哈塞给

过眼云烟,一笑而过

  • 博客(36)
  • 资源 (5)
  • 收藏
  • 关注

转载 尚硅谷2020最新版宋红康JVM教程-7-本地方法栈

转载:https://www.bilibili.com/video/BV1PJ411n7xZ参考:https://gitee.com/moxi159753/LearningNotes/tree/master/JVM,https://www.cnblogs.com/yanl55555/p/12623447.html本地方法栈 Java虚拟机栈于管理Java方法的调用,而本地方法栈用于管理本地方法的调用。 本地方法栈,也是线程私有的。 允许被实现成固定或者是可动态扩展的内存

2021-05-30 19:58:59 94

转载 尚硅谷2020最新版宋红康JVM教程-6-本地方法接口

转载:https://www.bilibili.com/video/BV1PJ411n7xZ参考:https://gitee.com/moxi159753/LearningNotes/tree/master/JVM,https://www.cnblogs.com/yanl55555/p/12623447.html什么是本地方法说白了:就是不是Java写的方法简单地讲,一个Native Method是一个Java调用非Java代码的接囗。一个Native Method是这样一个Java方法

2021-05-30 19:54:46 143

转载 尚硅谷2020最新版宋红康JVM教程-5-虚拟机栈

转载:https://www.bilibili.com/video/BV1PJ411n7xZ参考:https://gitee.com/moxi159753/LearningNotes/tree/master/JVM,https://www.cnblogs.com/yanl55555/p/12623447.html虚拟机栈概述由于跨平台性的设计,Java的指令都是根据栈来设计的。不同平台CPU架构不同,所以不能设计为基于寄存器的。 优点是跨平台,指令集小,编译器容易实现,缺点是性能下降,实现同

2021-05-30 19:46:26 239

转载 尚硅谷2020最新版宋红康JVM教程-4-程序计数器

PC Register介绍转载:https://www.bilibili.com/video/BV1PJ411n7xZ参考:https://gitee.com/moxi159753/LearningNotes/tree/master/JVMJVM中的程序计数寄存器(Program Counter Register)中,Register的命名源于CPU的寄存器,寄存器存储指令相关的现场信息。CPU只有把数据装载到寄存器才能够运行。这里,并非是广义上所指的物理寄存器,或许将其翻译为PC计数器(或指令计

2021-05-30 16:20:31 103

转载 尚硅谷2020最新版宋红康JVM教程-3-运行时数据区概述及线程

前言转载:https://www.bilibili.com/video/BV1PJ411n7xZ参考:https://gitee.com/moxi159753/LearningNotes/tree/master/JVM当我们通过前面的:类的加载-> 验证 -> 准备 -> 解析 -> 初始化 这几个阶段完成后,就会用到执行引擎对我们的类进行使用,同时执行引擎将会使用到我们运行时数据区内存内存是非常重要的系统资源,是硬盘和CPU的中间仓库及桥梁,承载着操作系统和应用程序

2021-05-30 16:07:26 152

转载 尚硅谷2020最新版宋红康JVM教程-2-类加载子系统

内存结构概述转载:https://www.bilibili.com/video/BV1PJ411n7xZ参考:https://gitee.com/moxi159753/LearningNotes/tree/master/JVM简图:详细图:类加载器与类的加载过程类加载器子系统作用类加载器子系统负责从文件系统或者网络中加载Class文件,class文件在文件开头有特定的文件标识。 ClassLoader只负责class文件的加载,至于它是否可以运行,则由Ex

2021-05-30 16:01:35 182

转载 尚硅谷2020最新版宋红康JVM教程-1-JVM简介

转载:https://www.bilibili.com/video/BV1PJ411n7xZ参考:https://www.cnblogs.com/yanl55555/category/1686360.htmlJava代码一次编译,到处运行跨语言的JVM(虚拟机只关心字节码文件)JVM的作用JVM的位置JVM的整体结构方法区和堆区是所有线程共享的内存区域;而java栈、本地方法栈和程序计数器是运行是线程私有的内存区域。 Java栈又叫做jvm

2021-05-30 15:27:43 699

原创 JVM自动内存管理之垃圾回收器

Java垃圾回收机制自动内存管理,无需开发人员手动参与内存的分配与回收,这样降低内存泄漏和内存溢出的风险没有垃圾回收器,java也会和cpp一样,各种悬垂指针,野指针,泄露问题让你头疼不已。自动内存管理机制,将程序员从繁重的内存管理中释放出来,可以更专心地专注于业务开发oracle官网关于垃圾回收的介绍https://docs.oracle.com/javase/8/docs/technotes/guides/vm/gctuning/toc.html担忧对于Java开发人员而言,自动.

2021-05-28 12:30:26 142

原创 StringTable常量池

String的基本特性String:字符串,使用一对""引起来表示 String声明为final的,不可被继承 String实现了Serializable接口:表示字符串是支持序列化的。 String实现了Comparable接口:表示string可以比较大小 String在jdk8及以前内部定义了final char[] value用于存储字符串数据。JDK9时改为byte[]String在jdk9中存储结构变更官网地址:JEP 254: Compact Strings (java.n.

2021-05-26 17:14:52 356

原创 jvm整体介绍

JVM的整体结构(运行时数据区)友情提示:如果自己想手写一个Java虚拟机的话,主要考虑哪些结构呢?类加载器 执行引擎它采用解释器与即时编译器并存的架构。下面说的是java源代码,先通过编译器,将其编译成字节码文件,编译的过程中经历了词法分析,语法分析,语义分析等流程,最终生成字节码文件通过类加载器加载字节码,类加载子系统,校验字节码等一系列流程,翻译字节码,执行字节码文件。JIT编译器,主要记录重复的代码,这样节省重复翻译字节码文件的部分代码JVM的架构模型ava.

2021-05-26 12:48:37 93

原创 多线程锁synchronized挑战

synchronized概述基本使用参考文档:https://www.cnblogs.com/bjlhx/p/10555194.html为确保共享变量不会出现并发问题,通常会对修改共享变量的代码块用synchronized加锁,确保同一时刻只有一个线程在修改共享变量,从而避免并发问题。 synchronized结论:    1、java5.0之前,协调线程间对共享对象的访问的机制只有synchronized和volatile,但是内置锁在功能上存在一些局限性,jdk5增加了Lock以及Ree

2021-05-21 16:57:26 126

原创 多线程锁架构

Java 中15种锁的介绍参考文档:https://www.cnblogs.com/chinaifae/articles/10232169.html在读很多并发文章中,会提及各种各样锁如公平锁,乐观锁等等,这篇文章介绍各种锁的分类。介绍的内容如下:公平锁 / 非公平锁 可重入锁 / 不可重入锁 独享锁 / 共享锁 互斥锁 / 读写锁 乐观锁 / 悲观锁 分段锁 偏向锁 / 轻量级锁 / 重量级锁 自旋锁上面是很多锁的名词,这些分类并不是全是指锁的状态,有的指锁的特性,有的指.

2021-05-20 18:57:20 105

原创 谷粒商城virtualBox使用

基本使用参考地址:https://www.cnblogs.com/ttzzyy/p/12567436.html网络桥接界面模式没有内容参考文档:https://blog.csdn.net/py_method/article/details/104794949/网络问题到不同的地方网络总是会变修改地方选择设置按钮进入设置,选择网络,然后选择网卡中的一个设置,记得要启动,设置完选择高级中的端口转发,点击端口转发添加端口转发规则,这样就可以连接xshell在xshell中和

2021-05-20 15:48:53 152

原创 JUC教程

为什么叫什么是JUC从下图能看出在java.util工具包注意:Runnable没有返回值,Callable有返回值,除此之外,Runnable的效率没有Callable效率高理解线程和进程进程:一个程序,QQ.exe Music.exe 程序的集合;进程中至少有一个线程,这个线程是守护进程线程:开了一个进程 Typora,写字,自动保存(线程负责的)通俗来说,就是进程内部有多个线程,进程实现功能都是依靠这些进程去实现的在java中线程有:Thread、Runnable、Ca

2021-05-20 15:33:00 125

原创 聊聊认证服务之细粒度授权

细粒度授权(说白了,权限相同处理业务逻辑获取的数据不一样)什么是细粒度授权?(大白话,操作权限相同,操作的数据范围不一样)细粒度授权也叫数据范围授权,即不同的用户所拥有的操作权限相同,但是能够操作的数据范围是不一样的。一个 例子:用户A和用户B都是教学机构,他们都拥有“我的课程”权限,但是两个用户所查询到的数据是不一样的。本项目有哪些细粒度授权?比如: 我的课程,教学机构只允许查询本教学机构下的课程信息。 我的选课,学生只允许查询自己所选课。如何实现细粒度授权?细粒度授权涉及到不同的

2021-05-13 16:31:21 406

原创 聊聊认证服务之授权和权限关系表和微服务之间认证

用户授权流程业务流程说明如下:1、用户认证通过,认证服务向浏览器cookie写入token( 身份令牌)2、前端携带token请求用户中心服务获取jwt令牌前端获取到jwt令牌解析,并存储在sessionStorage3、前端携带cookie中的身份令牌及jwt令牌访问资源服务前端请求资源服务需要携带两个token,一个是cookie中的身份令牌,一个是http header中的jwt前端请求资源服务前在http header上添加jwt请求资源4、网关校验token的合法.

2021-05-13 16:17:57 209

原创 聊聊认证服务之结合Zuul网关认证模块重点1

用户认证服务结合网关流程下面整个介绍都是围绕网关的两个主要任务,校验前端传递过来的两个token是不是合法的通过ZUUlFilter进行拦截,不合法不让跳转到指定的资源服务。业务流程说明如下:注意:用户访问某一个资源时1、从认证服务获取身份令牌到cookie,将存有用户的信息的Jwt存储到redis后2、前端会请求认证服务,获取带有用户信息的Jwt令牌存储到前端的sessionStorage3、这是访问资源的时候,会先进入网关,网关会先校验两个令牌是不是合法,合法才可以进入资

2021-05-13 15:25:30 128

原创 ZUUL网关简单介绍

Zuul网关网关的作用相当于一个过虑器、拦截器,它可以拦截多个系统的请求。网关会对请求进行过虑、校验、路由等处理。有了服 务网关可以提高微服务的安全性,网关校验请求的合法性,请求不合法将被拦截,拒绝访问。Zuul与Nginx怎么配合使用?Nginx的作用是反向代理、负载均衡,Zuul的作用是保障微服 务的安全访问,拦截微服务请求,校验合法性及负载均衡。Zuul网关具有代理的功能,根据请求的url转发到微服务,如下图:客户端请求网关/api/learning,通过路由转发到/learn

2021-05-13 15:05:58 389

原创 聊聊认证服务之流程

认证流程执行流程:1、用户登录,请求认证服务2、认证服务认证通过,生成jwt令牌,将jwt令牌及相关信息写入Redis,并且将身份令牌写入cookie3、用户访问资源页面,带着cookie到网关4、网关从cookie获取token,并查询Redis校验token,如果token不存在则拒绝访问,否则放行5、用户退出,请求认证服务,清除redis中的token,并且删除cookie中的token 使用redis存储用户的身份令牌有以下作用:1、实现用户退出注销功能,服务端清除.

2021-05-13 13:35:52 334

原创 聊聊认证模块之 JWT研究和keytool使用

JWT介绍在介绍JWT之前先看一下传统校验令牌的方法,如下图:问题:传统的令牌不携带用户的身份信息,只是通过令牌,进入服务获取用户信息,不是直接存储用户信息。性能比较低。JWT令牌的思路使用JWT的思路是,用户认证通过会得到一个JWT令牌,JWT令牌中已经包括了用户相关的信息,客户端只需要携带 JWT访问资源服务,资源服务根据事先约定的算法自行完成令牌校验,无需每次都请求认证服务完成授权。总结结合上面的流程图发现,有了JWT,用户信息也存在里面,资服务也就不需要通过认证服务.

2021-05-13 13:07:44 161

原创 聊聊认证模块之Oauth2.0以及资源服务如何授权令牌申请等操作

理解认证和授权认证:用户的身份认证,是不是这个用户授权:用户具备哪些权力,可以使用哪些功能单点登录单点登录(Single Sign On),简称为 SSO,用户登录一处对应的旗下的所有应用直接查看不用再次登录,SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。需要注意的是,单点登录可定会存在一个认证系统。第三方认证(跨平台认证)借助第三方的应用,获取用户在第三方登录的信息。用获取的信息登录当前系统。第三方比如:微信登录,QQ登录,博客登录

2021-05-13 12:45:13 161

原创 谷粒商城购物车

购物车需求:离线购物车,在线购物车两种:对应未登录,登录。登录后会将离线购物车合并。退出登录后购物车离线和在线的都清除。在线购物车,数据存储到redis中,由于是redis是存储到内存中的可以让其进行持久化。在这里,离线购物车也存储在redis.其实也可以由前端进行存储。localstorage也是一个不错的选择下面是需要实现的功能下面的是购物车页面购物车项具有哪些信息购物车使用哪种数据结构以这种结构为准map<String,Map<String.

2021-05-11 20:38:26 178

原创 谷粒商城K8s教程版本1.7基本使用

官网:https://kubernetes.io/zh/docs/setup/中文社区:https://www.kubernetes.org.cn/docs理解有状态应用和无状态应用:1、有状态应用:存储数据比如数据库,如果重新拉取一个里面的数据是空的。少了表里面的数据2、无状态应用:存储数据,比如微服务,拉取一个,该是什么样还是什么样,不会少东西K8s文档如何使用其实学习K8s,主要看文档即可,主业,入门,概念等这些都可以查看。k8s主要作用就是用于部署和管理集群的,是一个分布式编

2021-05-11 19:14:22 207

原创 谷粒商城整合Sleuth

Sleuth介绍常见术语span:基本工作单元,一个span就是远程访问请求,并且是一个64位的唯一的ID标识。trace:一个完整的请求响应,也就是从客户端访问到服务端返回数据整个链路调用,并且是一个64位的唯一的ID标识Annotation:标识下面的几种标识类型1、cs:客户端发送时间2、sr:服务端接收时间3、ss:服务端发送时间4、cr:客户端端接收时间下面同这个案例介绍下面介绍的是:标签是存在父子关系的如何这和Sleu...

2021-05-11 11:18:33 152

原创 谷粒商城支付宝支付功能实现

蚂蚁金服开放平台地址:https://opendocs.alipay.com/open/203/107084下面介绍正规流程接入:访问地址:https://opendocs.alipay.com/open/203/107084点击支付宝开放平台登录成功后,点击进入管理中心进行该页面,选择网页&移动应用选择创建应用,点击支付接入进入创建应用点击创建选择需要添加的功能添加了如下功能,并点击签约进入签约,填写营...

2021-05-09 13:51:55 441

原创 谷粒商城延时队列详解

场景分析下面的是说,下单后取消订单设置过期时间30min,锁库存设置过期时间为40min,为什么要40分钟,就是防止有的单还没取消掉。使用定时任务存在较大的时间误差下面案列想说,如果以定时任务解锁和定时任务取消订单的情况第一次:定时任务解锁库存在定时任务下订单之前。第二次:定时任务解锁库存解锁,却解锁不了在他之后快要取消订单的定时任务。第三次:定时任务解锁库存才解锁库存。这里面就存在较大的时间差。要等一个小时才能解锁库存引入延时队列消息的存活时间(TTL)

2021-05-08 14:57:43 400

原创 谷粒商城最终一致性中MQ可靠消息问题和解决方案

可靠消息和最终一致性详解讨论可靠消息:哪些情况会丢失消息:1、消息发送出去,但是网络问题没有到达MQ服务器2、消息到达MQ服务器(broker),MQ 服务器要将消息写入磁盘(持久化)才算成功,此时Broker尚未持久化,MQ服务器宕机了3、自动ACK的情况:消费者接收消息,还没消费完突然微服务模块宕机,后面的消息全部丢失。消息发送出去,但是网络问题没有到达MQ服务器问题解决方案:1、给每一个消息都做好日志记录2、定期扫描数据库将失败的消息重新发送一遍下面的是

2021-05-08 14:51:42 313

原创 Springboot 定时任务,service层无法注入问题详细解决

开发一个微信小程序后台,建立websocket 长连接,需要后台开启定时任务,定时任务定时查库,相应前台但是具体执行过程中一直在报空指针错误,最后定位到service 为空,无法调用其相关的方法导致的于是我尝试不用@Autowired 注入实例,自己new ,但是还是失败了,报空指针这是spring的一个Bug ,需要手动去配置一个类,主动获取实例,在定时任务中(继承TimerTask类),@Autowired 是失效的,无法注入解决方案如下:1.首先添加一个工具类,就是applic

2021-05-07 20:11:25 2053

原创 谷粒商城分布式事务和seata使用

讨论本地事务存在的一些问题:假设存在三个服务订单服务,库存服务,用户服务。他们存在订单服务调用库存服务和用户服务1、订单服务在未调用另外两个服务之前出现异常:事物回滚不会出现问题,所有的表不会存储数据。2、订单服务在调用库存服务,库存服务实际内部执行成功了,由于网络抖动,feign远程调用接收不到,出现假异常,导致订单回滚,但是库存服务却存储了数据。这个就存在了问题、3、订单服务调用库存服务成功,在调用用户服务出现异常,用户服务回滚,订单服务回滚,但是库存服务还是存储到了数据,这个也是存在问

2021-05-07 18:42:22 430

原创 谷粒商城RabbitMQ

分析MQ的好处1、异步处理2、模块解耦3、流量控制解耦问题,模块代码有可能随时改动,比如订单系统,给库存系统数据,但是库存系统总是修改代码,订单系统也要跟着修改,如果了消息队列,订单系统的数据直接存储到消息队列中,库存系统直接从消息队列拿想要的数据就好,有了消息队列直接数据存储到消息队列,不用关系模块代码改动概述消息代理:就是MQ服务器,专门接受消息和发送消息。目的地:分为两种,一种是队列,一种是主题。分别对应点对点模式和发布订阅模式下面的是对目的地的详细介绍

2021-05-06 15:49:27 622

原创 谷粒商城单点登录

理解什么是单点登录下载项目码云搜索徐雪里的单点登录项目https://gitee.com/xuxueli0323/xxl-sso?_from=gitee_search该项目目录结构配置本地域名打包运行访问服务端回车后的页面重新打包运行错误重新整体打包因为存在一些父依赖启动客户端。两个客户端一个8081,一个8082访问客户端:自己构造单点登录执行流程...

2021-05-05 17:23:07 268

原创 谷粒商城Session原理和分布式SpringSession项目结合

原始的非分布式Session原理 Session其实就是服务器的内存数据,其实他的底层就是一个Map 。工作原理:Session会为每一个用户创建一个Session对象.创建Session对象后,会将其对应的数据存到session中,给浏览器返回一个jsessionid,这个jessionid就是对应用的里面存储的数据。在分布式中Session中遇到的问题第一个问题:不同域名下,浏览器存储的jsessionid是没有存储的第二个问题:也就是Session共享问题,即使...

2021-05-05 15:04:27 510 1

原创 谷粒商城认证服务注册模块

环境搭建host配置网关配置nginx静态配置注册功能前端倒计时功能 //倒计时发送验证码 $(function () { $("#sendCode").click(function () { //2、倒计时 if ($(this).hasClass("disabled")) { //正在倒计时。 } else { //1、给指定手机号发送验证码 $.get("/sms/sendcode?p

2021-05-05 13:20:24 121

原创 谷粒商城商品详情页

环境配置本地host修改网关修改nginx的静态文件配置list页面代码编写代码实现实现思路:1.sku基本信息获取 pms_sku_info表, 编号3,4,5都要等编号1信息获取完之后才能根据编号1的信息进行相应的查询。编号2,3和前面的没有关系,直接单独的线程编排3、获取spu的销售属性组合(对应的属性名,属性值,在SKU中有哪些)3.1.查出当前spu属于哪个分类,就能知道有哪些分组信息4.获取spu的介绍信息 pms_spu_

2021-05-03 14:25:55 275

原创 谷粒商城异步编排

线程的几种实现方式总结1、继承Thread2、实现Runnable3、实现Callable接口+FutureTask(可以拿到返回结果,可以处理异常)4、线程池下面的是对其总结和他们之间的区别直接继承public class Threadsimple { public static void main(String[] args) { System.out.println("main...start.."); /..

2021-05-03 12:10:32 172

原创 谷粒商城检索服务

进入静态资源到nginx中,项目中整合thymleaf整合部分看上篇文章。配置网关配置nigix配置文件配置域名将服务注册到注册中心中nginx转发效果配置页面的访问,在Prodcut微服务的index.html页面中进行相关的配置。下面的是核心创建检索的VO和返回的VO,主要就是分装数据检索分析排序:销量排序,热度评分,商品价格分析检索入口其他类型的表示形式品牌的表示形式属性表示形式检...

2021-05-03 08:11:13 254

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除