- 博客(136)
- 资源 (17)
- 收藏
- 关注
原创 一文了解如何发现并解决Redis热key与大key问题
业务场景中经常会有各种热key或大key的问题,如果未能及时处理,可能会导致服务性能下降、用户体验变差,甚至引发大面积故障。所以本文针对这两个问题进行讲解,提供发现/监控的方法以及处理的解...
2022-03-21 07:30:00
3306
原创 通用能力抽象选择SDK组件还是API服务?
大型的后端服务,当需要把一部分通用能力抽象出来,通常有两种方式:SDK组件或者API服务。对于有Java分库分表经验的同学来说,这两种形式的选择类似于Sharding-JDBC和MyCat...
2022-03-10 07:30:00
918
原创 痔疮肛瘘康复指南
这一篇是《记小辉人生中的第一刀》的续篇,上一篇博客是小辉在术后两周写的,在这之后到目前(术后两个月),过程中又收集了一些康复的tips,给正在经历恢复痛苦的病友们一些帮助。康复tips1....
2021-11-08 07:30:00
1390
原创 记小辉人生中的第一刀
本篇是小辉趴在床上写完的博客,讲的是半个月前“肛裂+肛瘘+混合痔”手术到术后两周的康复过程以及一些注意事项和提示,给读者们的健康提个醒,欢迎转发给身边正在经历痛苦或者犹豫的朋友。希望大家都...
2021-09-18 07:30:00
648
原创 一个后端朋友面试一个月的经验总结
关于面经,小辉之前的文章可以查看《建议找工作的你看一下,无论是校招还是社招》本次分享一个后端朋友最近面试的经验总结,希望能对你有启发。面试概况朋友坐标北京,裸辞在家找工作。线上面试一共58...
2021-08-17 07:30:00
3588
1
原创 一文理解Kafka如何做到高吞吐
如果对Kafka不了解的话,可以先看这篇博客《一文快速了解Kafka》。其余有关Kakfa的文章如下:《一文理解Kafka的选举机制与Rebalance机制》《一文理解Kafka重复消费的...
2021-07-01 07:30:00
644
原创 一文理解Maven如何解决依赖冲突与循环依赖
Maven中依赖冲突与循环依赖是开发过程中比较令人头疼的问题。依赖冲突首先介绍下Maven中依赖管理的策略。依赖传递:如果A依赖B,B依赖C,那么引入A,意味着B和C都会被引入。最近依赖策...
2021-06-30 07:30:00
3190
1
原创 一文了解数据拆分与分库分表
数据库在业务体系不大的情况,一般都是单库出现,通过增加主从复制提高SLA。但当业务体量不断扩大,就需要考虑进行数据拆分来解决性能瓶颈问题。下面讨论的技术方案主要是从MySQL角度考虑的,其...
2021-06-29 07:30:00
756
原创 一文理解分布式事务的解决方案
单体数据库不涉及网络交互,所以在多表之间实现事务是比较简单的,这种事务称之为本地事务。但是单体数据库的性能达到瓶颈的时候,就需要分库,就会出现跨库(数据库实例)的事务需求;随着企业应用的规...
2021-06-28 07:30:00
652
原创 一文理解ThreadLocal
本文讲解ThreadLocal、InheritableThreadLocal与TransmittableThreadLocal。有关本文的实验代码,可以查看文末补充:“比较一下Thread...
2021-06-25 07:30:00
518
4
原创 一文理解Kafka的选举机制与Rebalance机制
Kafka是一个高性能,高容错,多副本,可复制的分布式消息系统。在整个系统中,涉及到多处选举机制,被不少人搞混,这里总结一下,本篇文章大概会从三个方面来讲解。控制器(Broker)选举机制...
2021-06-24 07:30:00
817
2
原创 一文理解Kafka重复消费的原因和解决方案
如果对Kafka不了解的话,可以先看这篇博客《一文快速了解Kafka》。在解释Kafka重复消费出现原因之前,列举一下Kafka中与消费者有关的几个重要配置参数。enable.auto.c...
2021-06-23 07:30:00
6895
1
原创 一文理解MySQL的事务原则与事务隔离
事务是一组不可分组的操作集合,这些操作要么都成功执行,要么都取消执行。最典型的需要事务的场景是银行账户间的转账:假如 A 账户要给 B 账户转账 100 元,那么 A 账户要扣减 100 ...
2021-06-22 07:30:00
370
3
原创 一文理解MySQL的锁机制与死锁排查
MySQL的并发控制是在数据安全性和并发处理能力之间的权衡,通过不同的锁策略来决定对系统开销和性能的影响。基础知识为了后续的解释更加容易理解,这里列举一些基本概念的解释。悲观锁悲观锁指的是...
2021-06-21 07:30:00
477
原创 一文了解分布式系统ID生成策略
在分布式系统中,经常需要对大量的数据、消息、http请求等进行唯一标识,例如链路追踪traceId、身份标识号、订单流水号、操作记录流水号、优惠券id等等。这个时候数据库自增主键已经不能满...
2021-06-18 07:30:00
351
原创 一文快速了解进程、线程与协程
进程与线程进程是操作系统进行资源分配的基本单位,每个进程都有自己的独立内存空间。由于进程比较重量,占据独立的内存,所以上下文进程间的切换开销(栈、寄存器、虚拟内存、文件句柄等)比较大,但相...
2021-06-17 07:30:00
335
原创 一文理解Kafka如何消息不丢失
本文只聚焦于Kafka系统的消息丢失,如果是生产环境出现数据丢失,排查时要先从链路上分段定位,缩小问题范围。如果对Kafka不了解的话,可以先看这篇博客《一文快速了解Kafka》。数据丢失...
2021-06-16 07:30:00
350
原创 一文理解如何实现接口的幂等性
幂等,这个词来源自数学领域。幂等性衍生到软件工程中,它的语义是指:函数/接口可以使用相同的参数重复执行, 不应该影响系统状态,也不会对系统造成改变。举一个简单的例子:正常设计的查询接口,不...
2021-06-15 08:20:00
680
原创 一文理解如何解决Kafka消息积压问题
通常情况下,企业中会采取轮询或者随机的方式,通过Kafka的producer向Kafka集群生产数据,来尽可能保证Kafk分区之间的数据是均匀分布的。如果对Kafka不了解的话,可以先看这...
2021-06-11 07:30:00
5942
原创 一文理解分布式锁的实现方式
分布式锁的应用场景分布式锁的应用场景主要包括两类:处理效率提升:减少重复任务的执行,避免资源处理效率的浪费(例如幂等场景)。数据准确性保障:在数据资源的并发访问时,避免数据不一致情况,甚至...
2021-06-10 08:00:00
490
原创 一文理解消息队列如何保证高可用
之前博客《一文理解为什么需要使用消息队列》提到过,系统引入消息队列后,需要考虑如何保证消息队列的高可用。本篇文章将围绕几个常见的消息队列中间件(RabbitMQ,RocketMQ,Kafk...
2021-06-09 07:30:00
560
原创 一文理解Kafka如何保证消息顺序性
要想实现消息有序,需要从Producer和Consumer两方面来考虑。如果对Kafka不了解的话,可以先看这篇博客《一文快速了解Kafka》。针对消息有序的业务需求,还分为全局有序和局部...
2021-06-08 07:30:00
1893
1
原创 一文理解Redis底层数据结构
Redis的5种常见数据结构:字符串(String)、列表(List)、散列(Hash)、集合(Set)、有序集合(Sorted Set)。这些都是Redis对外暴露的数据结构,本文将介绍...
2021-06-07 08:00:00
339
原创 一文理解Java中的SPI机制
SPI机制简介服务提供者接口(Service Provider Interface,简写为SPI)是JDK内置的一种服务提供发现机制。可以用来加载框架扩展和替换组件,主要是被框架的开发人员...
2021-06-03 08:00:00
1080
2
原创 一文理解JVM线程属于用户态还是内核态
Linux操作系统的体系架构分为用户态和内核态(或者用户空间和内核)。用户态与内核态内核从本质上看是一种软件——控制计算机的硬件资源,并提供上层应用程序运行的环境。用户态即上层应用程序的活...
2021-06-02 08:00:00
2110
2
原创 网络连接存在大量time_wait和close_wait的原因以及解决方法
如果对tcp中的握手挥手不了解的同学,请先看这篇博客:《关于三次握手与四次挥手你要知道这些》。四次挥手过程:第一次挥手:主机A(可以是客户端,也可以是服务器端),设置Sequence Nu...
2021-06-01 08:00:00
1161
原创 一文快速了解Kafka
初学Kafka,肯定会被各种概念搞得很头疼,所以整理下Kafka进阶学习必须要了解的概念。这篇博客也作为后续Kafka深入理解的前置信息。什么是KafkaKafka基于Scala和Java...
2021-04-27 00:00:00
430
1
原创 一文理解JWT鉴权登录的安全加固
有关JWT的基础知识,可以查看之前的博客:快速了解会话管理三剑客cookie、session和JWT在之前的博客《一文理解JWT在鉴权登录的应用》介绍了JWT在鉴权登录中的使用。但是不恰...
2021-04-26 08:00:00
1063
原创 一文理解JWT鉴权登录的应用
如果对cookie/token有疑问的,可以查看之前的博客快速了解会话管理三剑客cookie、session和JWTJson Web Token (JWT)是为在网络应用环境间传递声明而执...
2021-04-25 08:00:00
521
原创 一文理解为什么需要使用消息队列
消息队列(Message Queue),简称为MQ,是一种跨进程的通信机制,用于上下游传递消息。常见消息队列中间件如:Kafka、ActiveMQ、RabbitMQ、RocketMQ等。消...
2021-04-15 08:00:00
591
原创 海外产品快速集成三方登录
笔者过去两年参加了两个海外项目的开发,期间接入过多种授权登录,也踩过一些坑,所以总结出本文,方便做海外产品的开发者可以减少集成授权登录的时间成本。本文讲解的登录方式包括:Google,Fa...
2021-03-31 08:00:00
2353
原创 一文搞懂单例模式
单例模式(Singleton Pattern)是Java中最简单的设计模式之一,属于创建型模式。它提供了一种创建对象的最佳方式。这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确...
2020-12-18 08:00:00
290
1
原创 从“人工桌面”到“原神”,窥探国产游戏的崛起
作为老游戏人,是该聊点儿游戏圈的事情了。这次我们聊下最近米哈游旗下的动态桌面壁纸软件“人工桌面”。12月1日,“人工桌面”在安卓、PC双平台正式上线,首日即登TapTap热门榜、新品榜榜...
2020-12-08 08:00:00
1411
原创 Java对象属性复制组件-Mapstruct的项目改造指南
本文介绍下Java对象属性复制组件(MapStruct),以及项目中引入遇到的坑。1. 问题背景日常编程中,经常会碰到对象属性复制的场景,就比如下面这样一个常见的三层MVC架构。前端请求...
2020-12-07 08:00:00
1075
5
原创 结合IDEA与命令行,解决常用git操作与特殊情况的最佳实践
本文适合总觉得git操作不够顺滑,被各种分支问题搞得焦头烂额的Java业务开发同学。如果是git的初学者,建议搜索下git其他入门教程,这方面资料很多,非常推荐git init一个新项目...
2020-11-30 08:00:00
535
原创 建议找工作的你看一下,无论是校招还是社招
最近一些同学会微信联系笔者,内容都是有关校招或者社招找工作的一些问题。恰逢互联网公司的提前批招聘已经开始了,所以想想莫不如写一篇博客记录下大部分的回答,就像语音客服一样,以后有人提出类似...
2020-07-13 08:00:00
947
原创 快速搞定docker部署Filebeat、Elasticsearch、Logstash与Kibana
本文介绍使用docker安装部署Filebeat与Elasticsearch、Logstash、Kibana(简称ELK)全家桶7.5.1。如果熟悉框架的话,直接copy配置文件与docker命令,简单删减和修改路径,即可快速启动整个链路。安装docker环境以及常用docker命令,请点击跳转查看简单的ELK数据平台是这样的流程:由于Kafka并不是ELK中必须的组件,所以本博客跳过部署...
2020-03-21 23:40:13
5746
3
原创 轻松掌握Logstash的grok匹配
Logstash的filter插件在7.5.1版本中,有多达46种。介绍filter插件的官网地址,感兴趣的话可以自行研究,点此跳转本文主要讲解filter插件中的grok。通过在filter中使用grok,可以把日志中的关键字快速匹配出来。grok主要有两部分:自定义正则表达式和系统预定义的模式表达式。Grok Debugger在线匹配正则推荐一款在线匹配正则的网站——Grok Debu...
2020-03-16 13:54:55
7453
3
原创 Docker常用命令与构建中遇到的问题
最近在忙微服务和数据系统的容器化,所以又重温了一遍docker网络与基本操作并成功实现docker化。为了提高查找命令的效率,所以总结了dockerfile编写中常用的命令。docker安装检查系统环境检查当前设备是否具备安装docker的配置要求:$ curl https://raw.githubusercontent.com/docker/docker/master/contrib/c...
2020-03-14 15:46:38
696
原创 轻松搞定spring boot+jpa实现多数据源读取
多数据源配置使用注解和yml,只需要四步,亲测可用。环境配置不提版本简直是耍流氓。所以声明下,工程是在SpringBoot 2.1.8.RELEASE, JDK8环境下调通的。多数据源的需求:笔者这个微服务负责数据分析,所以微服务除了自己的直连数据库,还需要连接其他的数据库进行合并查询。从下图可以看到服务目前支持连接user数据库和analysis数据库。如果需求相同、版本相似,下面代码...
2020-03-03 22:19:32
1344
3
世界地理(大陆和港澳台同级关系版).sql
2020-10-09
世界地理(大陆和港澳台层级关系版).sql
2020-10-09
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人