暂时未有相关云产品技术能力~
暂无个人介绍
在了解MySQL锁之前,首先我们必须要明白加锁的是为了解决什么问题。 我们知道事务具有个隔离性的特性,而隔离性的实现主要就是通过锁以及MVCC机制实现的(关于MVCC机制以及隔离级别的实现可查看文章:MySQL事务详解与隔离级别的实现)。 MVCC是一种用来解决读写冲突的无锁并发控制,在并发读写数据库时,可以做到在读操作时不用阻塞写操作,写操作也不用阻塞读操作,提高了数据库并发读写的性能,解决脏读、幻读、不可重复读等问题。当然只是读取不加锁不阻塞,写操作还是会进行加锁的,即MVCC解决的只是读-写的阻塞问题,写-写依然还是阻塞的。对于写写的并发线程问题,仍需要使用锁来保证线程安全。即MVCC机
一、介绍 系统唯一id是我们在设计阶段常常遇到的问题。在复杂的分布式系统中,几乎都需要对大量的数据和消息进行唯一标识。在设计初期,我们需要考虑日后数据量的级别,如果可能会对数据进行分库分表,那么就需要有一个全局唯一id来标识一条数据或记录。生成唯一id的策略有多种,但是每种策略都有它的适用场景、优点以及局限性。
一、定义 Java对象序列化是将实现了Serializable接口的对象转换成一个字节序列,能够通过网络传输、文件存储等方式传输 ,传输过程中却不必担心数据在不同机器、不同环境下发生改变,也不必关心字节的顺序或其他任何细节,
一、问题描述 业务中出现需要保证原子性的一系列缓存操作,所以决定使用lua脚本来保证原子性。 但是调用过程中lua脚本抛出了异常:attempt to perform arithmetic on local ‘xxx’ (a nil value) 发生异常的lua脚本代码(部分)
一、虚拟机与容器的比较 在容器化技术出来之前,使用的是虚拟机技术,虚拟机和Docker容器技术都是一种虚拟化技术 虚拟机包含的是整个操作系统的原生镜像,非常的庞大,而docker的镜像只包含最核心的环境,非常小巧。
一、四个特性 原子性:所有操作要么全部执行要么全部不执行,一条指令失败则数据进行回滚,回到所有指令执行前的状态。
一、现象 SpringMVC中controller里的private接口中注入的service层的bean为null,而同一个controller中访问修饰符为public和protected的方法不会出现这样的问题。
一、系统架构演变
Java维护常量方式的比较——接口、常量类与枚举 一、示例 1.让类实现定义了常量的接口
使用frp端口映射实现内网穿透(SSH、HTTP服务) 一、下载
一、需求分析 1、项目背景 由于选课时间集中, 在同一时间进入系统抢占有限的资源, 导致系统服务响应速度明显下降, 严重时甚至会造成服务器崩溃。这种问题在目前实行学分制的国内高校中普遍存在。当系统软件不具备高并发性时,就无法顺畅承接超大流量,当请求过多,系统就会直接崩溃。
一、DelayQueue的定义
一、缓存更新策略 1、三种策略 内存淘汰:redis自带的内存淘汰机制 过期淘汰:利用expire命令给数据设置过期时间 主动更新:主动完成数据库和缓存的同时更新
一、使用背景 过去对于接口的验证我一般都是直接在登录时为用户发放token,用户在随后的操作中携带了token则允许请求。
FTP 是一种基于 TCP 的应用层协议,它不支持 UDP 协议。 FTP 工作在一种特殊的服务机制上,它使用两个端口,一个 ‘数据’ 端口和一个 ‘命令’ 端口(也称为控制端口)。 通常情况下,端口 21 用作命令端口,端口 20 用作数据端口。 一、主动模式和被动模式
一、什么是数据卷 数据卷是一个可供容器使用的特殊目录,它将主机操作系统目录直接映射进容器,类似于Linux中的mount操作。 数据卷可以提供很多有用的特性,如下所示:
一、定义 内网穿透也成NAT穿透,进行NAT穿透是为了使具有某一个特定源IP地址和源端口号的数据包不被NAT设备屏蔽而正确路由到内网主机。
SpringBoot Jackson Date类型格式设置 一、背景说明 在使用SpringBoot+SpringMVC时,默认采用Jackson包来进行JSON转换。 在返回Date类型的数据时,Jackson会以时间戳的形式返回,而实际场景往往需要以yyyy-MM-dd HH:mm:ss这类日期或时间格式返回。
一、背景 1、自定义了返回类 2、控制器使用@ResponseBody注解标记
三、subject.execute()
本文可能较长,但是通读一定能让你对整个shiro请求的执行流程有清晰的了解 总体流程: 1、在过滤的过程中创建subject doFilter -> SecurityManager -> SubjectContext -> 创建subject -> 解析各种信息并赋值 2、若该subject未认证则进行认证并在认证时再次创建subject 调用realm中的doAuthenticationInfo()获得返回的信息重新创建subject并保存到session
一、前情提要 JWT:服务端根据规范生成一个令牌(token),并且发放给客户端(保存在客户端)。此时客户端请求服务端的时候就可以携带者令牌,以令牌来证明自己的身份信息。 Shiro:Java的一个安全(权限)框架,用户登录时把身份信息(用户名/手机号/邮箱地址等)和凭证信息(密码/证书等)封装成一个Token令牌,通过安全管理器中的认证器进行校验,成功则授权以访问系统.(详细描述可以参考文章:Shiro基础)
1、问题描述 Access to XMLHttpRequest at ‘http://localhost:8080/user/register’ from origin ‘http://localhost:8002’ has been blocked by CORS policy: Response to preflight request doesn’t pass access control check: The value of the ‘Access-Control-Allow-Origin’ header in the response must not be the wildcar
1、功能 输入手机号,点击发送后随机生成六位数字码,2分钟有效 输入验证码,点击验证,返回成功或失败 每个手机号每天只能输3次
一、邮箱开启SMTP服务 以qq邮箱为例 进入邮箱设置页面后选择账户
一、引入依赖
一、JWT简介 JSON Web Token (JWT)是一个开放标准(RFC 7519),它定义了一种紧凑的、自包含的方式,用于作为JSON对象在各方之间安全地传输信息。该信息可以被验证和信任,因为它是数字签名的。
背景:springboot整合shiro中自定义Realm时出现 错误描述 Parameter 0 of method getDefaultWebSecurityManager in cn.ken.springboot_shiro.config.ShiroConfig required a single bean, but 2 were foun
七牛云文件上传 1、引入Maven依赖 <dependen
Maven的配置文件位于conf目录下的settings.xml文件 1、添加镜像下载地址 原因:解决默认仓库下载速度堪忧的问题(服务器在国外)
这两天闲着没事报名了学校信安和网安组织的网络安全大赛,靠着仅有的一点web知识做了几道web题,现在记录一下其中一道sql注入题的解题思路 首先题面如下
插件和依赖的区别: 依赖:运行时开发时都需要用到的jar包,比如项目中需要一个Json的jar包,就要添加一个依赖,这个依赖在项目运行时也需要,因此在项目打包时需要把这些依赖也打包进项目里; 插件:在项目开的发时需要,但是在项目运行后就不再需要,因此在项目开发完成后不需要把插件打包进项目中,例如接下来演示的Tomcat插件就是用来部署Web项目的,部署成功
一、问题描述 最近在学习Maven创建Java Web项目的过程中,出现了配置Servlet后访问出现404和500的问题,如下
一、基本概念 会话:一次会话中包含多次请求和响应 一次会话:浏览器第一次给服务器资源发送请求,会话建立,直到有一方断开(浏览器或客户端关闭)为止
数据库连接池——Druid 一、好处 更方便地获取连接对象,效率高 资源可以更好的重复利用
已知项目访问路径为:http://ip:port/工程路径/资源路径 我们以项目名称是hello为例,以下方法部署后通过http://localhost:8080/hello即可访问工程项目(没有填写资源路径,默认访问hello目录下的index.html文件) 一、直接将项目放到webapps目录下
我们都知道,通过ServletContext类可以获取工程路径(虚拟路径)以及工程部署在服务器硬盘上的绝对路径 那我们首先应该了解一个工程是怎样部署的,以idea为例 不知道大家有没有发现每当我们启动服务器时,都会有这样一个地址
1、什么是SQL注入 SQL 注入(SQL Injection)是发生在 Web 程序中数据库层的安全漏洞,是网站存在最多也是最简单的漏洞。攻击者在 事先定义好的 SQL 语句中添加额外的 SQL 语句,在管理员不知情的情况下实现非法操作,以此来实现欺骗数据库服务器执行非授权的任意查询,从而进一步获取到数据信息
Arrays.sort()有以下重载(此处只展示两种): Arrays.sort(Object[] a); Arrays.sort(T[] a, Comparator<? super T> c); Arrays.sort(Object[] a) 此方法看似没有要求我们实现比较器,对于基本数据类型,String类型确实如此,因为这些类型中已经自带了compareTo()方法
Java-包和import Java包 包主要用来对类和接口进行分类。 当开发Java程序时,可能编写成百上千的类,因此很有必要对类和接口进行分类 import语句
关于Java主函数的修饰符(为什么要带public和static) public修饰符 public是函数的权限,决定了该函数是否可以被外部的函数调用
21、float浮动 文档流:文档流是文档中可显示对象在排列时所占用的位置 float特性:加浮动的元素会脱离文档流,会延迟父容器靠左或靠右排列,如果之前已经有浮动的元素,会挨着浮动的元素进行排列
表格属性 border:表格边框 cellpadding:单元格内的空间(用空白填充,上对齐时会被填充挡住) cellspacing:单元格之间的空间(用空白填充)
HTML5 1、深入了解网站开发 UI设计师 设计稿
1.概念 IndexedDB是一种轻量级NoSQL(Not Only SQL,泛指非关系型)数据库,用来持久化大量客户端数据。
6.用户输入和while循环 1)函数input()的工作原理 函数input()让程序暂停运行,等待用户输入一些文本,其接受一个参数——要向用户显示的提示或说明 显示的提示或说明若有两行及以上: