自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

大宇的博客,欢迎访问

知其然,知其所以然,方可造其所以然

  • 博客(333)
  • 论坛 (4)
  • 收藏
  • 关注

原创 跟着大宇学SpringBoot目录贴

与君共勉 故不积跬步,无以至千里。不积小流,无以成江海。骐骥一跃不能十步,驽马十驾功在不舍。 谁都是从HelloWorld开始学习的,即使是架构师,也是一样。 纯干货,重实战,贵在积累。从头开始学SpringBoot目录 第一节 SpringBoot项目基础搭建 第二节 使用日志 ...

2019-11-07 15:25:49 559

原创 跟着大宇学RabbimtMQ目录贴

与君共勉 故不积跬步,无以至千里。不积小流,无以成江海。骐骥一跃不能十步,驽马十驾功在不舍。 谁都是从HelloWorld开始学习的,即使是架构师,也是一样。从头开始学RabbimtMQ目录贴第一节 RabbitMQ生产者消费者第二节 Fanout路由交换机:订阅发布模式第三节 Direct路由交换...

2019-05-20 14:06:08 593 1

原创 跟着大宇学SpringCloud目录贴

与君共勉 故不积跬步,无以至千里。不积小流,无以成江海。骐骥一跃不能十步,驽马十驾功在不舍。 谁都是从HelloWorld开始学习的,即使是架构师,也是一样。从头开始学SpringCloud目录 第一节:服务注册与服务发现 第二节:使用Ribbon作为服务消费者 第三节:使用Feign作为服务消费者...

2019-04-28 10:19:36 2595

原创 跟着大宇学MySQL------目录帖

与君共勉 故不积跬步,无以至千里。不积小流,无以成江海。骐骥一跃不能十步,驽马十驾功在不舍。 谁都是从HelloWorld开始学习的,即使是架构师,也是一样。MySQL学习目录 从头开始学MySQL--------表的基本操作 从头开始学MySQL--------数据类型(1) 从头开始学MyS...

2019-04-28 10:04:56 2045 2

原创 跟着大宇学Shiro--------目录帖

一、我与Shiro 本系列Shiro已经重写,本次重写时间为2018年12月。博主已经在实际项目中接触快Shiro一年,也积累了不少使用心得。文章已经部分转移到了我的专栏里面:跟着大宇学Shiro博客专栏。 本系列教程源码:点击我下载源码 下面是本次重写的博客大纲,希望大宇能够帮助到正在学习shiro的你。我期待与大家一起交流学习、共同进步。...

2018-01-31 15:23:31 9145 10

原创 Oracle增加字段及注释

ALTER TABLE M_XS_JY ADD (ZY VARCHAR2(50));COMMENT ON COLUMN M_XS_JY.ZY IS '职业,示例:财务人员、公务员、销售';

2021-01-15 10:46:10 8

原创 @Order注解提供消费顺序

Order注解可以做到集合bean依赖注入的时候,定义集合内部Bean的加载顺序,因此在需要有序消费bean的时候,不需要再次排序,直接定义好Order注解得value值就好。 但是这个order值并不影响bean本身实例化的顺序,因为实例化的顺序取决于依赖关系。 @org.springframework.core.annotation.Order@RestController@RequestMapping(value = "/pc/api/...

2021-01-13 10:46:48 14

原创 Git静态文件合并冲突--------解决方案

如果是一些静态的可以再生的文件冲突一、【当前分支V2.2.0.0】 删除掉冲突的静态文件二、【当前分支V2.2.0.0】 合并【主分支Master】代码 到 【当前分支V2.2.0.0】,并接受【主分支Master】分支的所有静态文件三、【当前分支V2.2.0.0】 重新生成新的静态文件,并提交到【当前分支V2.2.0.0】四、【当前分支V2.2.0.0 】提交新的静态文件到【主分支Master】 如果冲突,需要切换到主分支,并删除主分支静态代码,并提交到主分支。并然后重...

2021-01-13 10:15:32 15

原创 MyBatis-------if test标签处理相等的情况

在MyBatis的各种标签中,<iftest>标签可以算的上是高频使用的一个标签了。 在mybatis中不等于一般是<if test="formNumber != null and formNumber != ''"> 今天在使用<iftest>标签的过程中,我有一个需求是传入的参数需要匹配相等的情况。 List<SystemProperty> iftest(@Param("param") ...

2020-12-30 16:25:43 55

原创 从头开始学分库分表-------事务

事务的四个特性原子性:要么全做,要么全不做。一致性:要么全部成功,要么全部失败隔离性:一个事务在操作的时候,不受其它事务的干扰,各个事务之间是独立的永久性:事务提交对数据库的影响是永久的并发事务带来的问题脏读:一个事务访问数据并修改了数据,但是还没有提交。另外一个事务就读到了修改后的数据幻读:事务1(T1)第一次读到了几条数据,事务2(T2)又提交了几条数据。随后,T1又读取数据库的时候,发现了之前不存在的数据,好像发生了幻觉一样不可重复读:T1在一个事务内多次读相同的.

2020-12-21 15:26:31 20

原创 从头开始学分库分表-------补偿事务TCC

补偿事务TCC 补偿事务TCC,全称Try-Confirm-Cancel。 TCC的核心思想:针对每个操作都要注册一个与其对应的确认(Try)和补偿(Cancel)。 Try阶段:做一些业务检查以及一些资源预留。它需要后续的Confirm一起才能构成一个完成的业务逻辑。 Comfirm阶段:确认提交。Try阶段所有分支事务执行成功后开始执行Confirm。 Cancel阶段:业务执行出错需要回滚 ...

2020-12-18 16:22:29 26 2

原创 从头开始学分库分表-------三阶段提交协议

三阶段提交协议 三阶段提交主要解决了二阶段提交的缺点。 (1)【事务管理器】及【数据库事务参与者】都增加了超时机制。在二阶段提交协议中,会出现无限期等待阻塞的情况。 (2)增加了一个新阶段。相当于把之前的准备阶段拆分成两个新的阶段--------CanCommit阶段与PreCommit阶段。 优点:三阶段提交协议可以有效避免阻塞情况的出现,因为不管是协调者也好,还是参与者也好,都增加了超时机制。 缺点:相对于2PC,3P...

2020-12-18 14:58:13 12

原创 从头开始学分库分表-------二阶段提交协议

两阶段提交协议 为了解决分布式事务一致性,常见的方法之一就是2PC两阶段提交协议。 两阶段提交有两个角色,第一个角色是:【事务管理器】。第二个角色是:【数据库事务参与者】。 准备阶段(prepare):【事务管理器】在第一阶段发起消息,每个【数据库事务参与者】在本地执行事务, 但是这个时候事务没有提交。 提交阶段(commit):...

2020-12-17 16:25:35 23

原创 从头开始学Oracle--------时间函数

一、开始时间,结束时间 (字符串转Date) 参数,字符串类型。 Oracle中使用时间进行比较,需要转成时间Date类型。 如果参数传递的是"字符串",需要使用 TO_DATE(字符串日期,FORMAT)格式化字符串成Date类型。然后再进行时间的对比 SELECT T .CJRQFROM T_KC_TSKCFZ TWHERE -- #{开始时间} <= 符合条件的记录 <= #{结束时间} ...

2020-12-17 14:28:58 22

原创 从头开始学分库分表-------跨库分页、连接、统计

分库分表带来的问题之 跨节点分页、排序、函数 需要在各个数据库中查询出来需要得数据,然后到内存中进行汇总、排序、分页。 比如某学生的四年的成绩数据分布在四个不同的数据库上,现需求是要求查出学生这四年考试成绩最好的10门课程。 实现思路是:(1)从每个数据库中取出一部分成绩数据。 (2)对所有从数据库中查询出来的数据进行汇总,并排序 (3)排序...

2020-12-16 16:47:16 21

原创 从头开始学Oracle--------算数运算符

一、不等于<> <>用于Oracle中的不等于。与NULL运算不返回任何结果!SELECT JYHYFROM M_TESTORDER BY JYHY 使用<>来运算不为【1】与【2】的。SELECT JYHYFROM M_TESTWHERE JYHY <> 1AND JYHY <> 2ORDER BY JYHY二、ANY与ALL ...

2020-12-16 15:10:52 14

原创 从头开始学Oracle--------处理NULL

一、NVL函数 列为Number类型的时候,如果出现算术运算,那么结果也是空。比如下面的 800 + NULL 的结果是 NULL-- 工资sal , 奖金comm SELECT ename , sal , comm , sal+ comm from 表 使用NVL函数。 NVL(列,特殊值),如果列是NULL,返回特殊值。否则返回这列属性本身的值SELECT DISTINCT JYHY 就业行业FROM M...

2020-12-15 18:02:26 19

原创 从头开始学Oracle--------伪列

一、ROWID 在Oracle数据库中,有一个表示行中唯一特性的标识符,该昂标识符的名称为ROWID。由于该列实际并不定义在表中,所以也被称之为伪列。 伪列ROWID的长度是18位,包含该行数据在Oracle数据库中的物理地址。 SELECT ROWID 伪列, XH userAccountFROM M_XS_TEST 二、ROWNUM ROWNUM是一个序列,会为SQL查询结果自动增加...

2020-12-15 17:34:07 17

原创 从头开始学分库分表-------全局主键避重

一、雪花算法 雪花算法由【符号位】 + 【时间戳】 + 【机器码】 + 【序列号】 符号位只占1位,表示正数。 时间戳占41位,毫秒级别。2^41次方,这个数字也是一个庞大的数字,保证不会重复。 机器码占10位,由硬件决定。 序列号占12位,标志生成的第多少个ID,计数用。 雪花算法的优点: (1)雪花算法生成的ID可用使用Long类型来接收,是纯数字类型...

2020-12-15 15:28:07 35

原创 从头开始学分库分表-------基本概念

目录一、水平分表二、垂直分表三、水平分库四、垂直分库一、水平分表 把表拆分为表1、表2、表3、......、表N。解决单表数据量过大问题。 拆分原则:一般单张表的数据量达到百万级别,则适用水平分表。例如【学生成绩表】,学生成绩的记录往往都超过百万。所以适用于水平分表,按照学期进行分表。 二、垂直分表 垂直分表是按照表的字段进行拆分,按照热门、冷门字段把原来的表拆分开来,每张表存储其中一部分字段。 ...

2020-12-14 14:37:57 117 1

转载 分库分表(理论)

文章目录 1、分库分表是什么 2、垂直拆分 2.1、垂直分表 2.2、 垂直分库 2.3、总结 3、水平拆分 3.1、 水平分库 3.2、水平分表 3.3、总结 4、分库分表的总结 5、分库分表带来的问题 1)事务一致性 2)跨节点关联查询 3)跨节点分页、排序、函数 4)主键避重 5)公共表 6、数据库分片方案 1)客户端代理 2)中间件代理 1、分库分.

2020-12-10 14:21:18 38

原创 跟着大宇学Redis--------目录帖

与君共勉 故不积跬步,无以至千里。不积小流,无以成江海。骐骥一跃不能十步,驽马十驾功在不舍。 谁都是从HelloWorld开始学习的,即使是架构师,也是一样。从头开始学Redis目录贴 第一节 Redis常见业务场景 第二节 String典型场景 第三节 List典型场景 第四节 List作为消息中间件 第五节 唯一性与无序性的好朋友Set 第六节 Sorted...

2020-12-09 13:49:35 45

原创 MyBatis-------oracle中获取随机数方法

update M_XS_JY set JYLX=cast( floor(dbms_random.value(1,15)) as int);参考:https://www.cnblogs.com/blogyuan/p/3739638.html

2020-12-09 10:11:22 31

原创 【夯实Redis】Redis持久化

Redis两种持久化策略 RDB:周期性的备份缓存数据。 AOF:AOF是将所有的Redis的写命令记录到文件("appendonly.aof")中,这个文件叫做AOF文件。备份文件如何处理 RDB备份方式会产生。参考文档 Redis持久化之RDB Redis持久化之AOF...

2020-12-03 15:41:56 23

原创 JDK1.8 stream流再会

一、最大值、最小值、平均值、个数import lombok.Data;import lombok.NoArgsConstructor;import java.util.*;import java.util.stream.Collectors;@Data@NoArgsConstructorpublic class Dish { private Double calories; public Dish(Double calories) { this.ca

2020-12-02 17:13:07 192

原创 【夯实Redis】Redis线程模型

一、Redis线程模型 Redis 内部使用文件事件处理器(file event handler),这个文件事件处理器是单线程的,所以 Redis 才叫做单线程的模型。 它采用 IO 多路复用机制同时监听多个 socket,将产生事件的 socket 压入内存队列中. 事件处理器用来处理具体的请求。文件事件处理器的结构包含 4 个部分:多个 socket IO 多路复用程序 请求队列 事件处理器 二、Redis为什么...

2020-11-26 11:44:04 27

原创 【夯实Redis】Redis并发竞争问题

目录悲观锁解决方案乐观锁解决方案 多个系统实例同时并发的更新一个KEY,那么本来应该先到数据库的数据结果后来到了,只要顺序错了,数据库错了。悲观锁解决方案 使用MySQL悲观锁。 使用Redis锁 在操作数据库之前,先获取Redis的分布式锁。确保同一时刻只有同一个系统实例在操作某个KEY。别的系统实例都不允许写。乐观锁解决方案 在读某个KEY的时候,会把这...

2020-11-23 17:49:19 29

原创 【夯实Redis】Jmeter?限流?

一、测试环境(1) MySQL服务器一台(2)应用系统(3)JMeter压力测试工具测试结果系统并发数量与响应时间 并发数量 响应时间 10 44ms 50 253ms 100 4.4s 200 29.77s 更多... 系统渐渐无响应 系统在并发量逐渐增加后,系统渐渐不可用,最后变成无响应,可以模拟出线上已经宕机。 如何才能保护我们的系统,防止在缓存击穿后保护我们的数据库系统呢?...

2020-11-17 16:30:43 31

原创 【夯实Redis】缓存穿透?缓存击穿?缓存雪崩?

目录一、缓存穿透二、缓存击穿三、缓存雪崩一、缓存穿透 缓存穿透是指缓查询一个数据库一定不存在的数据。 如果如果查询一个不存在的key,此流程会查询一次Redis缓存,再查询一次DB。 如果短时间内出现大量请求,那么会对我们的Redis缓存系统以及数据库造成巨大的压力,甚至宕机。 解决方案: (1)为不存在的KEY也设置一个"空字符串"到缓存里面去,并设置过期时间。这样下次在查询相同KEY的时候,在缓存失效之...

2020-11-16 16:45:00 52

原创 【夯实Redis】Redis过期策略与内存淘汰机制有哪些?

目录一、过期策略二、淘汰机制一、过期策略 Redis采用 定期删除策略 + 定时删除策略。定时删除策略 在为一个key设置过期时间的同时,也为这个key设置一个倒计时的定时器,时间到了以后定时器把Key删除。 优点:有了定时器自动删除过期的Key,那么可以保证内存快速释放。 缺点:有可能创建了太多的定时器,可能会影响Redis性能。CPU全被用于计时与删除Key了。惰性删除策略 查询某个Key的时候...

2020-11-13 15:11:17 35

原创 【夯实Redis】如何保证数据库与缓存双写一致性?

一、更新操作 数据库与缓存双写一致性问题普遍出现在更新操作中。先更新数据库,再更新缓存 一般来说,不这么推荐。原因是有些缓存数据是多张数据表联合计算出来的,那么就要求在每次更新以后就要同步计算出新的值,然后更新缓存,这样效率很低。如果是写入场景比较多的业务,那么这种方式会很大程度的降低系统性能。先更新数据库,再删除缓存 如果先更新数据库,再删除缓存的话,还是有可能造成数据库与缓存双写不一致性。 例如,线程A在更新操作成功之前...

2020-11-13 10:53:14 43

原创 【夯实Redis】如何使用内存缓存与Redis缓存实现多级缓存?

目录多级缓存实现方案参考实例代码多级缓存实现方案 首先看一下流程图。客户端在获取数据的时候,首先向当前服务所在内存请求缓存数据。如果内存中有缓存数据则直接返回缓存数据。如果没有内存缓存,则向分布式缓存Redis服务器请求数据。如果Redis中存在缓存,则将Redis中的缓存写入内存缓存,并向客户端返回缓存数据。如果Redis中也没有数据,那么只能查询数据库了。查询完数据,需要把此次查询结果分别写入Redis中 与 内存中。 整体流程图如下,可以实现Java内存缓...

2020-11-11 17:17:11 55

原创 【夯实Redis】缓存到底是为了啥?

一、高性能 二、高并发三、常见弊端

2020-11-10 17:22:34 39 1

原创 【夯实RabbitMQ】MQ消息积压问题如何解决?

目录一、MQ消息积压问题二、解决方案一、MQ消息积压问题 产生原因有可能是消费端宕机 消费端消费能力不足 生产端发送流量过大二、解决方案 方案一:通常的解决方案就是增加消费端实例。说白了就是增加机器。如果出现线上事故,能申请多少机器就申请多少机器,争取在最短的时间内消费掉积压在MQ中的消息。 方案二:如果申请机器行不通,毕竟公司的机器是有限的,此时可以增加消费端的消费能力。在MQ的配置中配置"最大消费者数量"与"每次从队列中获取的消...

2020-11-09 17:23:23 164

原创 【夯实RabbitMQ】如何保证消息的顺序性?

一、如何保证消息的顺序性? 数据中台服务器A发送 创建学生信息与 更新学生信息 两条消息。应用服务器B需要接受服务A的消息。接收到创建学生信息的消息就在表里创建一个学生记录。接受到更新学生的消息就更新学生基本信息。 如果B服务器部署了两台,服务A在很短的时间内发送了两条消息,那么服务B可能有一台做创建学生的操作,另外一台做更新学生的操作。那么就有可能发生,更新学生基本信息的操作早于创建学生基本信息的操作。这样的话更新就会失败。 这就牵扯到如何保证消息...

2020-11-06 17:46:42 97 2

原创 【夯实RabbitMQ】消费端消息确认与重试机制

目录一、消费端消息确认机制二、消费端消息重试机制一、消费端消息确认机制 在SpringBoot中,消费端可以配置消息确认模式。共有3种。#acknowledge-mode.NONE:发送到消费端后就自动确认,消息被删除#acknowledge-mode.MANUAL:手动确认,必须要收到ack或者nack#acknowledge-mode.AUTO:程序在执行中,消息会保存,直到程序正常执行完或者抛出异常才删除消息spring.rabbitmq.listene...

2020-11-06 11:21:42 113

原创 Docker安装RabbitMQ

docker search rabbitmqdocker pull rabbitmdocker run -d --hostname my-rabbit --name rabbit -p 15672:15672 -p 5672:5672 rabbitmqdocker ps #拿到容器IDdocker exec -it 容器ID /bin/bash#安装插件rabbitmq-plugins enable rabbitmq_management

2020-10-30 16:08:07 36

原创 【夯实RabbitMQ】如何保证消息不被重复消费?如何保证消息可靠传输?

目录一、如何保证消息不被重复消费?二、如何保证消息可靠传输一、如何保证消息不被重复消费? 消息大部分情况下是要对数据库造成影响的。重复消费的问题解决办法要看具体的业务。 业务1:如果一条消息对应插入一条数据到数据库中,那么可以通过主键先查看数据库中是否已经插入了这条数据。 如果已经插入就不要重复插入了。可以通过为数据库中增加唯一索引的方式来控制重复插入。 或者更新一下数据库...

2020-10-29 14:59:29 123 3

原创 【夯实RabbitMQ】为什么使用消息队列?消息队列有什么优点和缺点?

一、系统里为什么要用消息队列这个东西? 公司有个什么业务场景,这个业务场景有个什么技术挑战,如果不用 MQ 可能会很麻烦,但是你现在用了 MQ 之后带给了你很多的好处。 场景有很多,但是比较核心的有 3 个:解耦、异步、削峰。 解耦:看这么个场景。A 系统发送数据到 BCD 三个系统,通过接口调用发送。如果 E 系统也要这个数据呢?那如果 C 系统现在不需要了呢?A 系统负责人几乎崩溃...... 公司实际业务场景。如何同步用户信息表。...

2020-10-28 11:03:11 71

原创 资格评审

冒泡排序:两两对比,每次找到这组最大的,最后得效果得每次排序都把最大的放到后面 O(n^2)选择排序:每次找出最小得放到队列前面O(n^2)插入排序:第一次排好前2个,第二次排好前3个,第三次排好前4个 O(n^2)快速排序:以指定值把队列分成两半,然后对每一半进行循环分成两半 O(nlogn)希尔排序:分成长度/2组,直到分成1组。O(nlogn)归并排序:把队列分成2份并且有序,然后创建两个指针,一个一个的把小球放到临时队列中...

2020-10-23 17:39:51 54

空空如也

如何使用ES5实现下面的JS

发表于 2020-07-31 最后回复 2020-08-01

小大宇的留言板

发表于 2020-01-02 最后回复 2020-01-02

读过Effective Java的大神进来看看

发表于 2018-09-23 最后回复 2019-02-15

个人中心在哪里啊,我想看我收藏的文章,就是找不到

发表于 2018-02-23 最后回复 2018-05-24

空空如也

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

TA关注的人 TA的粉丝

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