
简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
一、分布式锁1、什么是分布式锁?场景1:常规的我们多线程访问同一代码块的时候,为了保证同一时间只能 由一个线程访问,保证数据安全一致性,通常我们使用synchronized关键字来对方法加锁,以达到保证数据安全性。场景2:现在越来越多的项目,为了追求性能与高并发,采用了soa架构,微服务架构,于是就会出现多个模块单独的服务。这个时候呢就会有一个问题,如何保证多个节点的现场同步执行呢? 这种情况呢,
Nginx 的简介1.1 Nginx 概述Nginx ("engine x") 是一个高性能的 HTTP 和反向代理服务器,特点是占有内存少,并发能力强,事实上 nginx 的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用 nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等1.2 Nginx 作为 web 服务器Nginx 可以作为静态页面的 web 服务器,同...
反向代理实例一实现效果:使用 nginx 反向代理,访问 www.123.com 直接跳转到 127.0.0.1:8080实验代码1) 启动一个 tomcat,浏览器地址栏输入 127.0.0.1:8080,出现如下界面2)通过修改本地 host 文件,将 www.123.com 映射到 127.0.0.1 --->如果不在同一台机器上,需要将127.0.0.1,替换成安装...
nginx配置文件位置nginx 安装目录下,其默认的配置文件都放在这个目录的 conf 目录下,而主配置文件nginx.conf 也在其中,后续对 nginx 的使用基本上都是对此配置文件进行相应的修改配置文件中有很多#, 开头的表示注释内容,我们去掉所有以 # 开头的段落,精简之后的内容如下:根据上述文件,我们可以很明显的将 nginx.conf 配置文件分为三部分:第一部...
虽然前面我们实现了通过数据库来配置用户与角色,但认证规则仍然是使用HttpSecurity进行配置,还是不够灵活,无法实现资源和角色之间的动态调整。要实现动态配置URL权限,就需要开发者自定义权限配置,具体步骤如下。四、基于数据库的URL权限规则配置1,数据库设计这里的数据库在前文(点击查看)的基础上增加一张资源表和一张资源角色管理表,并添加一些预置数据:资源表中定义了用户能够访问的URL模式。资
有时我们需要获取当前登录的用户信息(比如用户名),通常有如下几种方式来实现。方法1:通过 Authentication.getPrincipal() 获取用户信息(1)通过Authentication.getPrincipal()可以获取到代表当前用户的信息,这个对象通常是UserDetails的实例。通过UserDetails的实例我们可以获取到当前用户的用户名、密码、角色等信息。Spring
一、引言在开发中我们如果要在关闭spring容器后释放一些资源,通常的做法有如下几种:1.在方法上加上@PreDestroy注解2.实现DisposableBean接口,实现其destroy方法比较常用的是第一种实现,因为其足够简便。下面就来分析一下它的实现原理,看它是在哪一个环节被触发的。二、开始分析我们先移步到CommonAnnotationBeanPostProcesso...
JMM(Java Memory Model) JMM是一种规范,规范了Java虚拟机与计算机内存是如何协同工作的,规定了一个线程如何和何时可以看到其他线程修改过的共享变量的值,以及在必须的时候如果同步的访问共享变量。栈 栈的优势:存取速度比堆要快,仅次于计算机里面的寄存器,栈的数据是可以共享的。缺点:存放数据的大小与生成器必须是确定的,栈中主要存放基本类型变量和对象的句柄。Java内存
一般我们在java中运行其它类中的方法时,无论是静态调用,还是动态调用,都是在当前的进程中执行的,也就是说,只有一个java虚拟机实例在运行。而有的时候,我们需要通过java代码启动多个java子进程。这样做虽然占用了一些系统资源,但会使程序更加稳定,因为新启动的程序是在不同的虚拟机进程中运行的,如果有一个进程发生异常,并不影响其它的子进程。 在Java中我们可以使用两种方法来实现这种要求。最简.
Redis和ehcache区别ehcache直接在jvm虚拟机中缓存,速度快,效率高;但是缓存共享麻烦,集群分布式应用不方便。redis是通过socket访问到缓存服务,效率比ecache低,比数据库要快很多,处理集群和分布式缓存方便,有成熟的方案。如果是单个应用或者对缓存访问要求很高的应用,用ehcache。如果是大型系统,存在缓存共享、分布式部署、缓存内容很大的,建议用redis。Redis:







