自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 从生产问题引发的RocketMQ重试机制的学习及优化

本文记录从生产问题引发的RocketMQ重试机制的学习及优化从频繁的异常邮件开始负责的项目由于需要承接大量的RocketMQ消息转发,其中消息的来源为上游消息中间件产生的业务消息(单一Topic,单日最大消息量可达1000W级).由于RocketMQ的Broker资源的紧张,对于生产者消息确认,存在很大的压力(主要压力在于Broker对Producer的应答响应).下面是部分异常报警的内容:第一类问题:RocketMQ发送失败!返回发送状态【FLUSH_SLAVE_TIMEOUT】或者【

2021-04-06 15:26:16 502

原创 FastJson对于序列化及反序列化时实体属性自定解析器

本文记录FastJson对于序列化及反序列化时实体属性自定解析器实现简述使用场景项目在针对实体进行序列化为JSON或者JSON反序列化时,存在自定义字段解析器的需求,最常见的场景为时间属性(标准格式或非标准格式)的序列及反序列化.下文针对该情况,说明如何实现自定时间反序列化解析器.操作步骤1.fastjson版本<dependency> <groupId>com.alibaba</groupId> <artifactId>fast

2021-01-13 11:33:02 2189

原创 Redisson实现分布式锁原理浅析

本文记录Redisson实现分布式锁原理分布式锁特性不管使用什么中间件,下述几点是实现分布式锁必须要考虑到的.互斥避免死锁性能保证:高并发分布式系统中,线程互斥等待会成为性能瓶颈,需要好的中间件和实现来保证性能.锁特性:分布式锁最好实现如Java Lock的一些功能如:锁判断,超时设置,可重入性等Redis实现之Redisson原理本次演示涉及的Redisson版本为<dependency> <groupId>org.redisson</g

2020-08-14 17:53:13 786

原创 Hexo博客框架下针对Mellow主题进行Gitment评论功能配置

本文记录Hexo博客框架下针对Mellow主题进行Gitment评论功能配置注意事项使用场景在个人博客上通过Gitment完成评论的搭建(Gitment实现评论的记录是通过GitHub仓库的Issue来完成)操作步骤1.注册 OAuth Application首先点击这里注册自己OAuth Application,此处有四个内容:Application name: 权限应用名称(随意填写)Homepage URL: 授权主页的全路径(随意

2020-06-08 17:52:24 303

原创 将Spring Boot 默认的Jackson框架转换为Fastjson

本文记录将Spring Boot 默认的Jackson框架转换为Fastjson的实现方式及注意事项使用场景在用Feign Client 接口调用,由于Jackson对null等特殊值处理存在异常,故改用Fastjson解析数据操作步骤1.增加文件FeignConfig,注入Bean,修改默认Feign默认的解析方式2.由于Fastjson1.2.28后,增加了对Content-type验证,故添加多种MediaType@Configurationpublic class FeignCon

2020-06-08 17:51:35 563

原创 Java小知识

本文记录Java小知识,随时会更新工作中的知识点文章目录JavaJava 基础1. 包装类型Integer.getInteger和Integer.valueOf区别Java 容器Java 并发Java 虚拟机Java I/OJavaJava 基础1. 包装类型Integer.getInteger和Integer.valueOf区别Integer类有两个看起来很类似的静态方法,一个是Integer.getInteger(String),另外一个是Integer.valueOf(String).

2020-06-08 17:50:36 100

原创 SpringCloud中Feign配置类使用

本文记录SpringCloud中Feign配置的两种方式使用场景目前环境下各系统间接口基本按照Restfull规范制定,Feign作为一个接口客户端,在SpringCloud体系下有定义明晰,开发便捷的优势.同时,针对不同外部服务,我们可以通过自定义Feign的配置,来实现个性化的三方接口管理.本次介绍通过配置文件进行的全局配置及通过配置类的个性化配置两种实现方式技术点SpringCloud Feign客户端SpringCloud Hystrix及Ribbon配置SpringCloud

2020-06-08 17:49:12 1038

原创 Spring Async多线程使用

本文记录Spring Async对Java多线程的支持使用场景Java在处理多线程时需要用到线程池及其相关的API,配置较为零散,学习成本较高.Spring提供了便捷的配置类来支持多线程的实现.技术点Java多线程Spring AsyncSpring Async配置类import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration

2020-06-08 17:47:42 289 1

原创 MongoDB结构文档多层次查询及更新

本文记录Spring Data Mongodb中对mongoDB查询及更新的实现.使用场景mongoDB中文档会具有较深的深度,在通过mongoTemplate进行处理时,需要注意使用的语法.本文介绍两种场景:深层次查询及更新技术点mongoDB语法mongoTemplate接口APImongoDB文档展示{ "_id" : ObjectId("5d5684ae1599021e848d6736"), "vehicleId" : "AP_4028b2b64fb206970

2020-06-08 17:46:14 2888 1

原创 List结构数据组装成树结构实现方式

本文记录List结构数据组装成树结构实现.使用场景通过查询数据库中具有父子关系的结构数据,将获得的List数据转换为Tree结构的数据,一般用于前端多级树展示技术点递归双层for循环高速缓存Map效果展示[{ "id": "1", "name": "广州", "parentId": "0", "children": [{ "id": "3", "name": "天河区", "parentId": "1", "children": [{ "id": "6"

2020-06-08 17:45:01 3950 1

原创 Spring AOP日志记录实现

本文记录Spring AOP日志记录实现.使用场景通过切面编程,为Rest请求记录入参及回参的日志,同时对于整合链路跟踪的项目,记录请求Trace信息技术点@Aspect及其派生的注解使用获取实际客户端Ip工具类链路跟踪相关工具类实现代码链路跟踪Pom依赖: <!-- 链路跟踪模块 --> <dependency> <groupId>org.springframework.cloud</

2020-06-08 17:43:00 212

原创 SpringBoot下动态配置文件与Enum的结合使用

本文记录在Spring Boot框架下,动态配置文件与Enum的结合使用的问题.使用场景Enum类作为枚举常量,需要从SpringBoot配置文件(*.yml)中动态获取相关属性技术点@Value注解使用枚举类定义动态注入的参数赋值给静态的枚举常量实现代码静态变量定义:import org.springframework.beans.factory.annotation.Value;import org.springframework.stereotype.Component;

2020-06-08 17:39:52 10715 3

原创 Eclipse & IDEA快捷键对比

本文记录Eclipse & IDEA快捷键对比,及IDEA智能补全的用法Eclipse & IDEA快捷键对比整理文档Intellij IDEA 智能补全整理文档

2020-06-08 10:43:54 81

转载 8种常被忽视的SQL错误用法

本文记录8种常被忽视的SQL错误用法.Sql语句的执行顺序FROM <left_table>ON <join_condition><join_type> JOIN <right_table>WHERE <where_condition>GROUP BY <group_by_list>HAVING <having_condition>SELECTDISTINCT <se

2020-06-08 10:32:57 187

原创 String.intern()来优化使用Redis

本文记录使用String.intern()来优化使用Redis作为查询缓存的场景.使用场景在一个接口中,该接口被多个线程并发访问,该接口主要做了以下工作:查询的时候是根据广告的类型查询符合该类型的广告,如果查询到广告,那么就返回该类型广告列表。同时,由于请求量比较的大,为了增加查询速度,减轻数据库的负担,我们在该层加入Redis。我们会这样做,首先,我们去Redis查询该类型的广告,如果存在那么就直接返回,如果不存在,那么我们需要为该广告类型加锁,进行锁定,然后进行二次查询Redis(二次判空,保

2020-06-08 10:26:32 353

原创 Git使用技巧

Git使用技巧>1. 创建远程分枝 创建分支 git branch 分支名 推送到远程 git push origin 分支名 >2. 第一次拉取远程分支(本地没有) git fetch origin 远程分枝名:本地分枝名 例如: git fetch origin feature/v1.0:feature/v1.0 >3. 提交代码 1.git add . 2.git commit -m "

2020-06-08 10:22:07 91

原创 在Windows下配置多个Git提交账户

本文记录在Windows下配置两个github账号的过程.生成并部署SSH Key安装好Git客户端后,打开git bash,输入以下命令生成user1的SSH Keyssh-keygen -t rsa -C "user1@email.com"在当前用户的.ssh目录下(C:\Users\lenovo\.ssh)会生成id_rsa私钥文件和id_rsa.pub公钥文件,将id_rsa.pub中的内容添加至user1的github中。然后在git bash中输入以下命令测试该用户的SSH密钥是

2020-06-08 10:19:04 543

空空如也

空空如也

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

TA关注的人

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