自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

爱琴孩的博客

路漫漫,愿与君共求索529947128

  • 博客(12)
  • 资源 (1)
  • 问答 (4)
  • 收藏
  • 关注

原创 Mysql中的两列日期求差和取比较值

前言在mysql的使用中我们经常需要对日期进行操作,比如取两列中的日期相差多少天,相差多少小时,多少月。还有些查询场景中,我们需要取两列中较大的日期值或者较小的日期值,这里来和大家一起复习下。使用TIMESTAMPDIFF快速求差相差多少秒SELECT TIMESTAMPDIFF(SECOND,t.CreateTime,now()) FROM AudioInfo t where t.CreateTime>'2020-06-19 00:00:00' limit 5;相差

2020-06-19 23:32:05 1886

原创 BigDecimal的正确打开方式

前言项目中明确规定,凡是涉及到金额的属性定义都必须使用BigDecimal类型,这里来和大家一起学习下BigDecimal的正确打开方式。先来个错误的示范话不多说,直接上demo @Test public void wrongUseDecimal() { BigDecimal test1 = new BigDecimal(1.745); BigDecimal test2 = new BigDecimal(0.745); test

2020-06-18 22:40:56 332

转载 撸明白分布式事务(四)

前言在分布式系统中,消息队列在服务端的架构中的地位非常重要,主要解决异步处理、系统解耦、流量削峰等场景。多个系统之间如果同步通信很容易造成阻塞,同时会将这些系统会耦合在一起。因此,引入了消息队列,一方面解决了同步通信机制造成的阻塞,另一方面通过消息队列进行业务解耦。简单的服务间调用引入mq如下图所示可靠事件模式可靠事件模式,通过引入可靠的消息队列,只要保证当前的可靠事件投递并且消息队列确保事件传递至少一次,那么订阅这个事件的消费者保证事件能够在自己的业务内被消费即可。这里,请读者思考,是否.

2020-06-14 16:40:32 242

转载 撸明白分布式事务(三)

前言前面说的二阶段提交协议和三阶段提交协议很好的解决了分布式事务的问题,但是在极端情况下仍然存在数据的不一致性,此外它对系统的开销会比较大,引入事务管理者(协调者)后,比较容易出现单点瓶颈,以及在业务规模不断变大的情况下,系统可伸缩性也会存在问题。注意的是,它是同步操作,因此引入事务后,直到全局事务结束才能释放资源,性能可能是一个很大的问题。因此,在高并发场景下很少使用。因此,阿里提出了另外一种解决方案:TCC 模式。注意的是,很多读者把二阶段提交等同于二阶段提交协议,这个是一个误区,事实上,TCC 模

2020-06-14 16:22:57 238

转载 撸明白分布式事务(二)

前言前面介绍了传统单库,单服务通过数据库的ACID模式来解决事务的一致性,但是随着数据量的变大,采用了分库策略。或者服务架构逐渐演变为微服务或者其他分布式架构。这时候ACID也只能鞭长莫及了。这里来和大家一起学习下应对这种问题强一致性解决方案。二阶段提交协议在分布式系统中,每个数据库只能保证自己的数据可以满足 ACID 保证强一致性,但是它们可能部署在不同的服务器上,只能通过网络进行通信,因此无法准确的知道其他数据库中的事务执行情况。因此,为了解决多个节点之间的协调问题,就需要引入一个协调者负责

2020-06-14 08:44:44 215

转载 撸明白分布式事务(一)

传统的ACID什么是事务?回答这个问题之前,我们先来看一个经典的场景:支付宝等交易平台的转账。假设小明需要用支付宝给小红转账 100000 元,此时,小明帐号会少 100000 元,而小红帐号会多 100000 元。如果在转账过程中系统崩溃了,小明帐号少 100000 元,而小红帐号金额不变,就会出大问题,因此这个时候我们就需要使用事务了。大致流程如下图这里,体现了事务一个很重要的特性:原子性。事实上,事务有四个基本特性:原子性、一致性、隔离性、持久性。其中,原子性,即事务内的操作要么全部成功,

2020-06-13 21:27:47 310

原创 curl命令实用教程

前言在Linux中curl是一个利用URL规则在命令行下工作的文件传输工具,可以说是一款很强大的http命令行工具。它支持文件的上传和下载,是综合传输工具,但按传统,习惯称url为下载工具。curl命令在日常开发或运维中都经常用到,这里和大家总结下curl命令的常用用法。基础用法curl http://www.baidu.com执行后,www.baidu.com 的html就会显示在屏幕上了。保存访问的网页方式一使用linux的重定向功能保存curl http://www..

2020-06-13 15:59:33 822

转载 聊聊聚集索引和辅助索引

前言索引是数据库中非常重要的概念,它是存储引擎能够快速定位记录的秘密武器,对于提升数据库的性能、减轻数据库服务器的负担有着非常重要的作用;索引优化是对查询性能优化的最有效手段,它能够轻松地将查询的性能提高几个数量级。索引的数据结构InnoDB 存储引擎在绝大多数情况下使用 B+ 树建立索引,这是关系型数据库中查找最为常用和有效的索引,但是 B+ 树索引并不能找到一个给定键对应的具体值,它只能找到数据行对应的页,然后把整个页读入到内存中,并在内存中查找具体的数据行。B+ 树是平衡树,它查找

2020-06-11 22:48:21 723

转载 如何高效利用索引

前言对于索引,想必无需多言。大家应该都知道什么索引,为什么要建索引。这里来和大家学习下如何高效利用索引,下面主要围绕"覆盖索引"、"最左原则"、"索引下推"三点来和大家一起学习下。覆盖索引覆盖索引是指在普通索引树中可以得到查询的结果,不需要在回到主键索引树中再次搜索。建立如下这张表来演示覆盖索引:create table T (ID int primary key,age int NOT NULL DEFAULT 0,name varchar(16) NOT NULL DEFAULT

2020-06-09 21:40:32 319

转载 再撸一遍过滤器和拦截器

前言不管是springmvc还是springboot,过滤器和拦截器在开发中总时经常用来到的,我们对于过滤器、拦截器不应该是局限在会使用上,需要更多的了解他们,这里来和大家一起再撸一遍过滤器、拦截器。过滤器 (Filter)过滤器的配置比较简单,直接实现Filter接口即可,也可以通过@WebFilter注解实现对特定URL拦截,看到Filter接口中定义了三个方法。init():该方法在容器启动初始化过滤器时被调用,它在Filter的整个生命周期只会被调用一次。「注意」:这个方法...

2020-06-07 18:53:33 257

原创 HQL中select new com.clsss 报错 could not instantiate class from tuple

前言最近上线了一个工具,上完之后测试验证居然报错,明明自测过的,哎,菜啊。。。。看下问题。主要报错关键点如下org.springframework.orm.hibernate4.HibernateQueryException: could not instantiate class [xxx] from tuple; nested exception is org.hibernate.QueryException: could not instantiate class [xxx] from

2020-06-06 11:34:10 968

转载 Mysql InnoDB 为啥选择B+树索引(二)

前言前面讲了Mysql InnoDB 为啥选择B+树索引(一),这里再和大家一起学习下他的姊妹篇,首先需要澄清的一点是,MySQL 跟 B+ 树没有直接的关系,真正与 B+ 树有关系的是 MySQL 的默认存储引擎 InnoDB,MySQL 中存储引擎的主要作用是负责数据的存储和提取,除了 InnoDB 之外,MySQL 中也支持 MyISAM 作为表的底层存储引擎。我们在使用 SQL 语句创建表时就可以为当前表指定使用的存储引擎,你能在 MySQL 的文档 Alternative Storage

2020-06-02 22:12:07 210

Java+内存分析工具+MAT

MAT是Memory Analyzer的简称,它是一款功能强大的Java堆内存分析器。可以用于查找内存泄露以及查看内存消耗情况。MAT是基于Eclipse开发的,是一款免费的性能分析工具。

2023-08-19

websocket实现聊天小demo

WebSocket协议是基于TCP的一种网络协议,它实现了浏览器与服务器全双工(Full-duplex)通信。它允许服务端主动向客户端推送数据,这使得客户端和服务器之间的数据交换变得更加简单高效。在WebSocket API中,浏览器和服务器只需要完成一次握手,两者之间就可以创建持久性的连接,并进行双向数据传输。WebSocket 在握手之后便直接基于 TCP 进行消息通信,只是 TCP的基础上的一层非常轻的封装,它只是将TCP的字节流转换成消息流(文本或二进制),至于怎么解析这些消息的内容完全依赖于应用本身。

2023-05-12

aspose导出pdf乱码,配置字体库

解决aspose在linux环境下导出pdf乱码,在linux服务器上配置改字体库,代码中读取该字体库,即可解决aspose在linux环境下导出pdf乱码问题。

2023-02-25

windows 2008 R2解决socket连接不释放补丁包

Windows Server 2008 R2系统BUG导致windows缓冲区已满(no buffer space),Windows核心套接字泄露问题导致操作系统套接字资源被耗尽,导致服务器与数据库无法正常对接。

2019-01-17

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

TA关注的人

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