简介lock4j是一个分布式锁组件,其提供了多种不同的支持以满足不同性能和环境的需求。立志打造一个简单但富有内涵的分布式锁组件。特性简单易用,功能强大,扩展性强。支持redission,redisTemplate,zookeeper。可混用,支持扩展。开源地址:https://gitee.com/baomidou/lock4j 引入相关依赖(支持同时存在,不同方法不同锁实现)。<dependencies> <!--若使用redisTemplate作为分布式锁底层,则需要引入--> &n...阅读全文>>
fastjson 是一个性能很好的 Java 语言实现的 JSON 解析器和生成器,来自阿里巴巴的工程师开发。主要特点:快速FAST (比其它任何基于Java的解析器和生成器更快,包括jackson)强大(支持普通JDK类包括任意Java Bean Class、Collection、Map、Date或enum)零依赖(没有依赖其它任何类库除了JDK)在使用FastJSON时,报错Could not read JSON: Unrecognized field,详细错误如下org.springframework.data.redis.serializer.SerializationExceptio...阅读全文>>
IDEA 全称 IntelliJ IDEA,是java编程语言开发的集成环境。IntelliJ在业界被公认为最好的java开发工具,尤其在智能代码助手、代码自动提示、重构、JavaEE支持、各类版本工具(git、svn等)、JUnit、CVS整合、代码分析、 创新的GUI设计等方面的功能可以说是超常的。IDEA是JetBrains公司的产品,这家公司总部位于捷克共和国的首都布拉格,开发人员以严谨著称的东欧程序员为主。它的旗舰版本还支持HTML,CSS,PHP,MySQL,Python等。免费版只支持Java,Kotlin等少数语言。更新后无意中发现Idea增加了一个功能,就是提示一个属性或者方...阅读全文>>
fastjson 是一个性能很好的 Java 语言实现的 JSON 解析器和生成器,来自阿里巴巴的工程师开发。主要特点:快速FAST (比其它任何基于Java的解析器和生成器更快,包括jackson)强大(支持普通JDK类包括任意Java Bean Class、Collection、Map、Date或enum)零依赖(没有依赖其它任何类库除了JDK)问题起因是因为系统内所有ID使用了注解@TableId(value = "id", type = IdType.ASSIGN_ID)源码解释@Getter public&nbs...阅读全文>>
起因是公司一个同事接到需求,让把一条数据录入时createTime字段,设置为指定的字段,但是他走断点发现执行MyBatisPlus的insert之前值是对的,但是insert之后就改成当前时间了。开始我认为是数据库字段设置为了根据当前时间录入值,即默认为当前时间戳,但是一想不对,默认是指没有设置值,这里已经设置了为什么还是不对?后来发现,系统代码中设置了MetaObjectHandler处理,特殊处理了createTime这个字段。MetaObjectHandler:元数据对象处理器MetaObjectHandler接口是mybatisPlus为我们提供的的一个扩展接口,我们可以利用这个接口...阅读全文>>
要在Edge中强制启用黑色模式(深色模式),可以按照以下步骤进行:在地址栏里输入: edge://flags,然后按下回车键。在搜索框里输入:"Force Dark Mode for Web Contents"(如果没有这项就输入"Auto Dark Mode for Web Contents")它的中文意思是强制网页开启暗色模式将选项中的Default 改为 Enabled点击下方重启即可完成上述步骤后,Edge浏览器将强制启用黑色模式(深色模式)。要在Google Chrome中强制启用黑色模式(深色模式),可以按照以下步骤进行:在Chrome浏览器...阅读全文>>
RabbitMQ是实现了高级消息队列协议(AMQP)的开源消息代理软件(亦称面向消息的中间件)。RabbitMQ服务器是用Erlang语言编写的,而集群和故障转移是构建在开放电信平台框架上的。所有主要的编程语言均有与代理接口通讯的客户端库。https://www.rabbitmq.com/ 如果不指定,系统运行,MQ就会马上进行消息的处理。但是此时系统并没有完全加载完毕,有一些内存的变量现在还没有值,这样启动肯定会有问题。这里我们需要指定一下MQ为手动启动,启动时机为系统初始化完毕。首先本地需要有RabbitMQ环境,然后创建一个Queue名字为myQueue。用Spri...阅读全文>>
Minio 是个基于 Golang 编写的开源对象存储套件,基于Apache License v2.0开源协议,虽然轻量,却拥有着不错的性能。 它兼容亚马逊S3云存储服务接口。可以很简单的和其他应用结合使用,例如 NodeJS、Redis、MySQL等。 下载 (官网:https://min.io/ ) cd /tmp wget https://dl.min.io/server/minio/release/linux-amd64/minio 创建...阅读全文>>
最佳实践(置顶)针对大家在测试过程中,经常出现的性能问题,以下给出3组最佳实践配置:如果生成ID速度不超过5W/s,不用修改任何配置参数如果生成ID速度超过5W/s,低于50W,推荐修改:SeqBitLength=10如果生成ID速度超过50W/s,接近500W,推荐修改:SeqBitLength=12总之,增加 SeqBitLength 会让性能更高,但生成的 ID 也会更长。算法介绍这是优化的雪花算法(雪花漂移),它生成的ID更短、速度更快。支持 k8s 等容器环境自动扩容(自动注册 WorkerId),可在单机或分布式环境生成数字型唯一ID。原生支持 C#/Java/Go/C/Rust/...阅读全文>>
dynamic特性支持 数据源分组 ,适用于多种场景 纯粹多库 读写分离 一主多从 混合模式。支持数据库敏感配置信息 加密(可自定义) ENC()。支持每个数据库独立初始化表结构schema和数据库database。支持无数据源启动,支持懒加载数据源(需要的时候再创建连接)。支持 自定义注解 ,需继承DS(3.2.0+)。提供并简化对Druid,HikariCp,BeeCp,Dbcp2的快速集成。提供对Mybatis-Plus,Quartz,ShardingJdbc,P6sy,Jndi等组件的集成方案。提供 自定义数据源来源 方案(如全从数据库加载)。提供项目启动后 动态增加移除数据源 方案。...阅读全文>>