自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 收藏
  • 关注

原创 MongoDB vs MySQL,哪个更快?

本文主要是为了介绍bulkWrite()方法的使用,也就是MongoDB的批量写操作,通过实验可以看出MongoDB使用bulkWrite()方法进行大量数据的写操作比使用常规的方法进行写操作效率要高很多。文章也介绍了mysql几种写操作下批量和非批量的对比,可以看出他们批处理方式比非批处理快点,但没有MongoDB那么明显。对于MongoDB与mysql的比较,批量操作下,MongoDB插入、删除、更新都比mysql快,非批量操作下,MongoDB插入、删除、更新都比mysql慢。

2024-04-08 15:43:06 791

原创 缓存穿透、缓存雪崩、缓存击穿

分析业务请求,如果是正常业务请求时发生缓存穿透现象,可针对相应的业务数据,在数据库查询不存在时,将其缓存为空值(null)或默认值。当然,除了上述方案,我们还可以限流、降级、熔断等服务层的措施,也可以考虑数据库层是否可以进行横向扩展,当缓存异常发生时,确保数据库能够抗住流量,不至于让整个系统崩溃。缓存雪崩是指只大量热点key同时失效的情况,如果是单个热点key,在不停的扛着大并发,在这个key失效的瞬间,持续的大并发请求就会击破缓存,直接请求到数据库,好像蛮力击穿一样。为什么说不得不考虑?

2024-04-07 16:33:49 324

原创 一个注解实现 WebSocket 集群方案,这样玩才爽

最后请允许我发表一点对于抽象的拙见抽象其实就和 “道生一,一生二,二生三,三生万物” 一样,根据你的顶级接口(也就是核心功能)不断的向外展开,你的顶级接口就是道(狭义的来讲)以这个库为例,ConnectionLoadBalanceConcept就是这个库的道,他的核心功能就是发送消息,至于怎么发,发给谁,不确定,像是一个混沌的状态。

2024-04-07 16:32:04 389

原创 遇到个MySQL索引长度限制的问题

前言前言我只是创建个索引而已,没想到还这些遇到个诡异的问题!😱😱话说你平时创建mysql时遇到过以下创建索引报错的情况吗?报错提示如下//需要添加索引的字段的长度太长,超过了767字节🚩什么?索引长度限制?我从没遇到过啊,MySQL还会对索引键的长度有限制?是的,一般都不会遇到,不过这个问题我一个同事就遇到了!他用,都是相同的,但是一个测试环境和一个线上MySQL版本,一个执行成功一个执行失败!

2024-04-07 16:29:02 321

原创 SpringBoot:一个注解就能帮你下载任意对象

下载功能应该是比较常见的功能了,虽然一个项目里面可能出现的不多,但是基本上每个项目都会有,而且有些下载功能其实还是比较繁杂的,倒不是难,而是麻烦。所以结合之前的下载需求,我写了一个库来简化下载功能的实现传送门:https://github.com/Linyuzai/concept/wiki/Concept-Download如果我说现在只需要一个注解就能帮你下载任意的对象,是不是觉得非常的方便@Download@Download感觉差别不大?那就听听我遇到的一个下载需求。

2024-04-07 16:27:04 295

原创 百度一面问了 3 个 ES 问题,直接干懵了

先自上而下,后自底向上的介绍ElasticSearch的底层工作原理,试图回答以下问题:为什么ElasticSearch占用很多内存?

2024-04-07 16:21:35 259

原创 缓存穿透、缓存雪崩、缓存击穿

分析业务请求,如果是正常业务请求时发生缓存穿透现象,可针对相应的业务数据,在数据库查询不存在时,将其缓存为空值(null)或默认值。当然,除了上述方案,我们还可以限流、降级、熔断等服务层的措施,也可以考虑数据库层是否可以进行横向扩展,当缓存异常发生时,确保数据库能够抗住流量,不至于让整个系统崩溃。缓存雪崩是指只大量热点key同时失效的情况,如果是单个热点key,在不停的扛着大并发,在这个key失效的瞬间,持续的大并发请求就会击破缓存,直接请求到数据库,好像蛮力击穿一样。为什么说不得不考虑?

2024-04-02 19:31:48 391 1

原创 RocketMQ为什么这么快?我从源码中扒出了10大原因

在传统IO中,如果想将用户缓存区的数据放到内核缓冲区,需要经过CPU拷贝mmap()sendfile()mmap()是将用户缓冲区和内核缓冲区共享,操作用户缓冲区就好像直接操作内核缓冲区,读写数据时不需要CPU拷贝Java中可以使用MappedByteBuffer这个API来达到操作内核缓冲区的效果sendfile()主要是用于文件传输,可以通过sendfile()将一个文件内容传输到另一个文件中或者是网络中。

2024-04-02 19:17:55 299 1

原创 微服务+多级缓存,性能起飞

另外陈某的知识星球开通了,公众号回复关键词:知识星球 获取限量20元优惠券加入只需179元,一顿饭钱,但是星球回馈的价值却是巨大,目前更新了Spring全家桶实战系列、亿级数据分库分表实战、DDD微服务实战专栏、我要进大厂、Spring,Mybatis等框架源码、架构实战22讲等....每增加一个专栏价格将上涨20元。

2024-04-02 19:14:32 415

原创 微服务Token鉴权设计的几种方案

根据需求积分服务提供了一个给用户添加积分的API,如果你的API是通过获取的当前登录用户ID增加的积分,那么面对场景二时你需要重新编写一个给用户添加积分的API,因为当前登录的是后台管理员而不是用户(代码复用率较低)缺点:A服务调用B服务时,B服务需要写一个内部调用的Controller接口A服务才能通过Fegin调用到B服务,增加了代码量(这里的设计方案是内部调用与外部调用Controller是分开的)各位服务都有自己的鉴权方式,当然也可以通过jar包的方式统一各服务的鉴权方式。

2024-04-02 19:11:05 393 1

原创 足足2400页,Java面试八股文

(含:单例模式,工厂模式,抽象工厂模式,建造者模式,原型模式,适配器模式,装饰器模式,代理模式等23种设计模式...)(含:mysql数据库基础知识,数据类型,失误,试图,mysql索引,mysql锁,mysql优化,等...)(含:Java概述,语法,面向对象,IO流,API,集合,NIO,HashMap,基础常见面试题....)(含:分布式系统原,数据分布式方式,基本副本协议,Lease机制,Dubbo,集群,分布式锁,等...)(含:Dubbo基础,架构设计,集群,配置,通信协议,SPI,等...)

2024-04-02 17:33:42 282 1

空空如也

空空如也

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

TA关注的人

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