- 博客(29)
- 收藏
- 关注
原创 学习笔记(1):SpringCloud微服务快速入门实战课程【2020版】-Restful API简介
SpringCloud是目前流行的微服务框架,在各大互联网公司都有广泛的应用,同时在企业招聘面试时也会要求对微服务技术栈有所了解和掌握。SpringCloud是一套完整的微服务解决方案,基于SpringBoot框架。 本课程以通俗易懂的方式讲解SpringCloud技术栈,由浅入深,帮您快速入门! 课程内容包括: 1...
2021-02-03 16:56:43
231
原创 docker 安装tomcat
在腾讯云上部署自己java web工程 初步探索腾讯云服务器的远程连接方式通过secureCRT进行连接 (需要配置在腾讯云后台生成的公钥)连接之后,在linux虚拟机上安装docker1、检查内核版本,必须是3.10及以上uname -r2、安装dockeryum install docker3、输入y确认安装4、启动docker[root@luyuhui java]# systemctl status docker[root@localhost ~]# systemctl sta
2020-09-28 16:25:07
227
原创 CAS乐观锁
乐观锁乐观锁( Optimistic Locking)其实是一种思想。相对悲观锁而言,乐观锁假设认为数据一般情况下不会造成冲突,所以在数据进行提交更新的时候,才会正式对数据的冲突与否进行检测,如果发现冲突了,则让返回用户错误的信息,让用户决定如何去做。上面提到的乐观锁的概念中其实已经阐述了他的具体实现细节:主要就是两个步骤:冲突检测和数据更新。其实现方式有一种比较典型的就是Compare an...
2020-05-05 21:37:41
228
原创 什么是cross join,inner join,left join,right join以及full outer join
Inner join:内连接,也叫等值连接,inner join产生同时符合A和B的一组数据。Cross join:交叉连接,得到的结果是两个表的乘积,即笛卡尔积笛卡尔(Descartes)乘积又叫直积。假设集合A={a,b},集合B={0,1,2},则两个集合的笛卡尔积为{(a,0),(a,1),(a,2),(b,0),(b,1), (b,2)}。可以扩展到多个集合的情况。类似的例子有,如果...
2020-04-28 23:03:33
2612
原创 Linux的常用命令
1、ls命令就是 list 的缩写,通过 ls 命令不仅可以查看 linux 文件夹包含的文件,而且可以查看文件权限(包括目录、文件夹、文件权限)查看目录信息等等。常用参数搭配:ls -a 列出目录所有文件,包含以.开始的隐藏文件ls -A 列出除.及…的其它文件ls -r 反序排列ls -t 以文件修改时间排序ls -S 以文件大小排序ls -h 以易读大小显示ls -l 除...
2020-04-28 23:01:56
203
原创 SpringMVC的工作流程与主要注解
SpringMVC处理流程2.常用注解<mvc:annotation-driven /> 说明:是一种简写形式,可以让初学者快速成应用默认的配置方案,会默认注册 DefaultAnnotationHandleMapping以及AnnotionMethodHandleAdapter 这两个 Bean, 这两个 Bean ,前者对应类级别, 后者对应到方法级别; 上面的 De...
2020-04-28 23:00:17
189
原创 Redis简介
Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库。Redis 与其他 key - value 缓存产品有以下三个特点:Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。Redis支持数据的备份,...
2020-04-27 21:05:32
150
原创 Redis为什么这么快
1、完全基于内存,绝大部分请求是纯粹的内存操作,非常快速。数据存在内存中,类似于HashMap,HashMap的优势就是查找和操作的时间复杂度都是O(1);2、数据结构简单,对数据操作也简单,Redis中的数据结构是专门进行设计的;3、采用单线程,避免了不必要的上下文切换和竞争条件,也不存在多进程或者多线程导致的切换而消耗 CPU,不用去考虑各种锁的问题,不存在加锁释放锁操作,没有因为可能出现...
2020-04-27 21:04:42
116
原创 redis的持久化策略
redis的持久化策略1、RDB持久化方式能够在指定的时间间隔能对你的数据进行快照存储。2、AOF持久化方式记录每次对服务器写的操作,当服务器重启的时候会重新执行这些命令来恢复原始的数据,AOF命令以redis协议追加保存每次写的操作到文件末尾.Redis还能对AOF文件进行后台重写,使得AOF文件的体积不至于过大。3、如果你只希望你的数据在服务器运行的时候存在,你也可以不使用任何持久化方式...
2020-04-27 21:03:00
111
原创 Redis的淘汰策略
noeviction: 不删除策略, 达到最大内存限制时, 如果需要更多内存, 直接返回错误信息。 大多数写命令都会导致占用更多的内存(有极少数会例外, 如 DEL )。allkeys-lru: 所有key通用; 优先删除最近最少使用(less recently used ,LRU) 的 key。volatile-lru: 只限于设置了 expire 的部分; 优先删除最近最少使用(less ...
2020-04-27 21:00:41
96
原创 redis三种过期策略
三种过期策略定时删除含义:在设置key的过期时间的同时,为该key创建一个定时器,让定时器在key的过期时间来临时,对key进行删除优点:保证内存被尽快释放缺点:若过期key很多,删除这些key会占用很多的CPU时间,在CPU时间紧张的情况下,CPU不能把所有的时间用来做要紧的事儿,还需要去花时间删除这些key定时器的创建耗时,若为每一个设置过期时间的key创建一个定时器(将会有大量的...
2020-04-27 20:58:40
211
原创 nginx介绍,包括,虚拟主机,反向代理,负载均衡,以及基本命令
Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄文:Рамблер)开发的,第一个公开版本0.1.0发布于2004年10月4日。其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。2011年...
2020-04-27 20:57:31
306
原创 借鉴 cap base
一致性一致性指“all nodes see the same data at the same time”,即更新操作成功并返回客户端完成后,所有节点在同一时间的数据完全一致,不能存在中间状态。例如对于电商系统用户下单操作,库存减少、用户资金账户扣减、积分增加等操作必须在用户下单操作完成后必须是一致的。不能出现类似于库存已经减少,而用户资金账户尚未扣减,积分也未增加的情况。如果出现了这种情况...
2020-04-24 21:24:37
196
原创 1、分布式事务 解决方案:2PC,TCC以及基于消息的最终一致性
目前的应用系统,不管是企业级应用还是互联网应用,最终数据的一致性是每个应用系统都要面临的问题,随着分布式的逐渐普及,数据一致性更加艰难,但是也很难有银弹的解决方案,也并不是引入特定的中间件或者特定的开源框架能够解决的,更多的还是看业务场景,根据场景来给出解决方案。根据笔者最近几年的了解,总结了几个点,更多的应用系统在编码的时候,更加关注数据的一致性,这样系统才是健壮的。一、基础理论目前关于事务...
2020-04-24 21:15:30
486
原创 事务的四大特性
事务的四大特性原子性(Atomicity) 原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚,这和前面两篇博客介绍事务的功能是一样的概念,因此事务的操作如果成功就必须要完全应用到数据库,如果操作失败则不能对数据库有任何影响。一致性(Consistency) 一致性是指事务必须使数据库从一个一致性状态变换到另一个一致性状态,也就是说一个事务执行之前和执行之后都必须处于一致性状态...
2020-04-23 16:00:44
172
原创 数据库结构优化
反范式反范式是通过增加冗余数据或数据分组来提高数据库读性能的过程。在某些情况下, 反范式有助于掩盖关系型数据库软件的低效。关系型的范式数据库即使做过优化, 也常常会带来沉重的访问负载。 范式1.1、第一范式(1NF:每一列不可包含多个值) 所谓第一范式(1NF)是指数据库表的每一列都是不可分割的基本数据项,同一列中不能有多个值,即实体中的某个属性不能有多个值或者不能有重复的属性。如果出...
2020-04-22 20:26:29
215
原创 创建索引需要注意SQL语句的写法
1、避免在where子句中使用 is null 或 not null2、避免在where子句中使用!=或<>操作符3、避免在where子句中使用or4、少用 in 或not in5、like通配符的使用 不要“%11%” 要“11%” 例如LIKE“%name”或者LIKE“%name%”,这种查询会导致索引失效而进行全表扫描。但是可以使用LIKE “nam...
2020-04-21 21:21:28
436
1
原创 如何选择合适的列创建索引?
1. 在where 从句,group by 从句,order by 从句,on 从句中出现的列;2. 索引字段越小越好;3. 离散度大的列放到联合索引的前面;比如:select * from payment where staff_id = 2 and customer_id = 236;针对上面的查询是 index(sftaff_id, customer_id) 好?还是index(c...
2020-04-21 21:20:21
303
原创 索引
什么是索引1在关系数据库中,索引是一种与表有关的数据库结构,它是除了表以外的另一个重要模式对象。2索引建立在表的一列或多列上的辅助对象,目的是提高表中数据的访问速度.3索引是表示数据的另一种方式,它提供的数据顺序不同于数据在磁盘上的物理存储顺序。4索引的特殊作用是在表内重新排列记录的物理位置5建立索引需要消耗空间大小为表的1.2倍索引的类型B树索引,反向键索引,位图索引,基于函数的索...
2020-04-21 21:18:37
197
原创 tomcat类加载器
1JVM类加载机制JVM的ClassLoader通过Parent属性定义父子关系,可以形成树状结构。其中引导类、扩展类、系统类三个加载器是JVM内置的。它们的作用分别是:1)引导类加载器:使用native代码实现,在rt.jar等包中搜索运行JVM所需的类,例如java.lang等包下的类。2)扩展类加载器:负责载入标准扩展目录中的类,例如Sun的JVM的扩展目录是/jdk/jre/lib...
2020-04-21 17:57:10
159
原创 JAVA堆内存管理
JAVA堆内存管理是影响性能主要因素之一。堆内存溢出是JAVA项目非常常见的故障,在解决该问题之前,必须先了解下JAVA堆内存是怎么工作的。先看下JAVA堆内存是如何划分的,如图:Java堆内存又溢出了!教你一招必杀技JVM内存划分为堆内存和非堆内存,堆内存分为年轻代(Young Generation)、老年代(Old Generation),非堆内存就一个永久代(Permanent G...
2020-04-20 20:31:09
187
原创 微信公众号的登录入门
准备:微信开发者工具下载地址:https://developers.weixin.qq.com/miniprogram/dev/devtools/download.html微信小程序开发文档:https://developers.weixin.qq.com/miniprogram/dev/index.html开发:在开发之初,我们需要先明确微信方已经制定好的授权登陆流程,参看 官方AP...
2020-04-16 10:39:27
686
原创 Spring Ioc和 aop 转
一、什么是IOC(DI)?IOC,即控制反转(Inversion of Control),他与依赖注入(Dependecy Injection)是同一个概念。具体的讲:当某个角色需要另外一个角色协助的时候,在传统的程序设计过程中,通常由调用者来创建被调用者的实例。但在spring中 创建被调用者的工作不再由调用者来完成,因此称为控制反转。创建被调用者的工作由spring来完成,然后注入调用者因...
2020-04-14 20:12:26
146
原创 JVM内存结构、GC算
JVM内存结构如下:主要包括了下面几个部分:程序计数器(线程私有)存放着当前线程所执行的字节码的行号指示器栈(线程私有)每个方法被执行的时候都会创建一个栈帧用于存储局部变量表、操作栈、动态链接、方法出口等信息,每一个方法被调用直到执行完的过程就对应了一个栈帧在JVM中从入栈到出栈的过程。本地方法栈(线程私有)与上面的栈相似,不同的是它是为执行native方法用的方法区(永久代,...
2020-04-13 08:59:53
128
原创 spring 详细刨析
Spring是一个开源框架,它由Rod Johnson创建。它是为了解决企业应用开发的复杂性而创建的。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。一、Spring知识点spring系列包含非常多的项目,可以满足java开发中的方方面面。...
2020-04-12 19:17:12
187
原创 RabbitMQ的工作模式和比较
1.1 simple简单模式消息产生着§将消息放入队列消息的消费者(consumer) 监听(while) 消息队列,如果队列中有消息,就消费掉,消息被拿走后,自动从队列中删除(隐患 消息可能没有被消费者正确处理,已经从队列中消失了,造成消息的丢失)应用场景:聊天(中间有一个过度的服务器;p端,c端)1.2 work工作模式(资源的竞争)消息产生者将消息放入队列消费者可以有多个,消费者1,...
2020-04-10 21:40:04
259
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人