- 博客(45)
- 收藏
- 关注
转载 Spring Boot 启动扩展点整理
1.背景Spring的核心思想就是容器,当容器refresh的时候,外部看上去风平浪静,其实内部则是一片惊涛骇浪,汪洋一片。Springboot更是封装了Spring,遵循约定大于配置,加上自动装配的机制。很多时候我们只要引用了一个依赖,几乎是零配置就能完成一个功能的装配。我非常喜欢这种自动装配的机制,所以在自己开发中间件和公共依赖工具的时候也会用到这个特性。让使用者以最小的代价接入。想要把自动装...
2022-09-20 09:32:55
175
原创 每天进步一点点【Nginx平滑的基于权重的轮询算法】
假设有三个节点{serverA , serverB , serverC} , 权重为分别为{7,1,1} ,Nginx可以达到A,A,B,A,A,C,A,A,B,A,的效果。在保证准确的权...
2022-01-21 14:01:28
526
转载 每天进步一点点【图的深度优先搜索与广度优先搜索】
图是一种数据结构,其中节点可以具有零个或多个相邻元素。两个节点之间的连接称为边。节点也可以称为顶点。图分为三种:无向图、有向图、带权图图的表示方式有两种:二维数组表示(邻接矩阵);链表表示...
2022-01-08 15:21:19
462
转载 每天进步一点点【图的深度优先遍历(DFS)】
图是一种数据结构,其中节点可以具有零个或多个相邻元素。两个节点之间的连接称为边。节点也可以称为顶点。图分为三种:无向图、有向图、带权图图的表示方式有两种:二维数组表示(邻接矩阵);链表表示...
2022-01-07 20:37:17
284
转载 每天进步一点点【平衡二叉树】
平衡二叉树(AVL树)二叉搜索树对于数列{1,2,3,4,5,6},左子树全部为空,从形式上看更像是一个单链表不能够发挥二叉搜索树的优势,为了解决这个问题,引入平衡二叉树(AVL树)平衡二...
2022-01-06 20:08:33
86
转载 每天进步一点点【基于消息的最终一致性】
在一些对数据一致性要求较高的场景中,经常采用基于消息的最终一致性方案,通过消息中间件来保证上、下游应用数据操作的一致性。主要流程如下:(1)在执行业务操作时,记录一条消息数据到数据库(状态...
2022-01-05 20:16:13
143
转载 每天进步一点点【稀疏数组】
稀疏数组分析问题:当二维数组中存在很多默认值的时候,记录了很多没有意义的数据,浪费空间稀疏数组的处理方法:第[0]行记录数组一共有几行几列,有多少个不同的值把具有不同值的元素的行列及值记录...
2022-01-04 18:21:42
71
原创 Zookeeper应用场景
数据发布/订阅(配置中心)数据发布/订阅(Publish/Subscribe)系统,即所谓的配置中⼼,顾名思义就是发布者将数据发布到 ZooKeeper的⼀个或⼀系列节点上,供订阅者进⾏数...
2021-12-16 11:41:07
981
原创 贪心算法之背包问题
贪心算法之背包问题背包问题是算法的经典问题,分为部分背包和0-1背包,主要区别如下:部分背包:某件物品是一堆,可以带走其一部分0-1背包:对于某件物品,要么被带走(选择了它),要么不被带走...
2021-08-23 16:58:51
7527
原创 Sharding-JDBC实现分库分表+读写分离
采⽤Sharding-JDBC实现c_order表分库分表+读写分离基于user_id对c_order表进⾏数据分⽚分别对master1和master2搭建⼀主⼆从架构基于master1和...
2021-06-12 17:12:08
889
1
原创 Logback异常日志监控告警
项目源码:https://github.com/sixj0/logback-warning功能介绍:配合logback日志使用,通过扩展Appender组件,实现在打印error日志时告警...
2021-06-05 14:36:19
1518
原创 MySQL主从复制与MHA高可用架构搭建
MySQL主从复制与MHA高可用架构搭建环境架构介绍4台机器的IP和角色架构如图所示:MySQL主从搭建MySQL安装(3台)因为CentOS7默认安装mariadb数据库,存中文时可能会...
2021-06-03 20:15:45
173
转载 Arthas不停机替换线上代码
解决问题:生产环境出现bug,但是又不方便重新发版启动,可以使用Arthas将线上的代码反编译出来,然后进行修改,修改之后再通过类加载器将类重新进行编译,最后加载到JVM中。安装Artha...
2021-05-29 12:15:46
1075
原创 License授权方案
源码地址: https://github.com/sixj0/license解决的问题:将项目卖给其他公司,需要将jar包在客户的服务器上部署,为了避免客户将项目jar包进行二次售卖,或者...
2021-05-27 20:19:51
19261
6
转载 tcp/ip协议的三次握手和四次挥手
TCP报文格式源端口和目的端口字段TCP源端口(Source Port):源计算机上的应用程序的端口号,占 16 位。TCP目的端口(Destination Port):目标计算机的应用程...
2021-04-26 19:08:56
101
转载 MySQL存储引擎--InnoDB线程模型
IO Thread在InnoDB中使用了大量的AIO(Async IO)来做读写处理,这样可以极大提高数据库的性能。在InnoDB1.0版本之前共有4个IO Thread,分别是write...
2021-04-17 16:21:12
125
转载 MySQL存储引擎--InnoDB日志文件
Undo LogUndo Log介绍Undo:意为撤销或取消,以撤销操作为目的,返回指定某个状态的操作。Undo Log:数据库事务开始之前,会将要修改的记录存放到 Undo 日志里,当事...
2021-04-17 16:21:12
224
转载 MySQL索引类型与索引原理
1、索引类型索引可以提升查询速度,会影响where查询,以及order by排序。MySQL索引类型如下:从索引存储结构划分:B Tree索引、Hash索引、FULLTEXT全文索引、R ...
2021-04-17 16:21:12
187
转载 MySQL索引分析与优化
索引分析与优化1、 EXPLAINMySQL 提供了一个 EXPLAIN 命令,它可以对 SELECT 语句进行分析,并输出 SELECT 执行的详细信息,供开发人员有针对性的优化。例如:...
2021-04-17 16:21:12
73
转载 MySQL存储引擎--InnoDB数据文件
一、InnoDB文件存储结构InnoDB数据文件存储结构:分为一个ibd数据文件—>Segment(段)—>Extent(区)—>Page(页)—>Row(行)Ta...
2021-04-17 16:21:12
427
转载 Spring Cloud Alibaba训练营 ——分布式消息(事件)驱动
1. 简介事件驱动架构(Event-driven 架构,简称 EDA)是软件设计领域内的一套程序设计模型。这套模型的意义是所有的操作通过事件的发送/接收来完成。举个例子,比如一个订单的创...
2020-11-07 08:00:00
386
转载 Spring Cloud Alibaba训练营 —— 服务熔断与限流
前言:为什么需要流控降级我们的生产环境经常会出现一些不稳定的情况,如:大促时瞬间洪峰流量导致系统超出最大负载,load 飙高,系统崩溃导致用户无法下单“黑马”热点商品击穿缓存,DB 被打...
2020-11-06 10:10:40
195
转载 Spring Cloud Alibaba训练营 —— 分布式服务调用
注意:用手机查看排版可能不太友好,可点击文章底部“阅读原文”1. 简介在《Spring Cloud Alibaba 服务注册与发现》篇中曾提到,Spring Cloud Alibaba ...
2020-10-01 10:00:00
761
转载 Spring Cloud Alibaba训练营 —— 服务注册与发现
提示:手机查看排版可能不太友好,可以点击文章底部“阅读原文”1. 简介服务注册与发现是微服务架构体系中最关键的组件之一。如果尝试着用手动的方式来给每一个客户端来配置所有服务提供者的服务列...
2020-09-30 10:55:06
184
转载 Spring Cloud Alibaba训练营 —— 分布式配置
提示:在手机上查看排版可能不太友好,可见点击文章底部“阅读原文”1. 简介Nacos 提供用于存储配置和其他元数据的 key/value 存储,为分布式系统中的外部化配置提供服务器端和客...
2020-09-29 11:49:22
126
原创 钉钉群机器人开发
本文介绍项目中如何使用钉钉群机器人发送消息,可以配合上一篇重试机制使用,重试失败的时候,可以使用钉钉机器人发送告警信息,并且@相关的负责人及时处理。首先是添加一个群机器人机器人添加成功之...
2020-07-31 11:26:31
937
1
原创 Guava-Retrying自动重试工具
首先说,它是什么?他就是一个自动重试的工具,我们可以定义:什么情况下重试、什么条件下停止、等待多久重试、重试之后依然失败怎么办、并且可以监听整个重试过程。下面是介绍如何使用它。使用的时候...
2020-07-29 18:15:29
1195
原创 项目中遇到InheritableThreadLocal
先描述一下当时的场景,有一个需求,需要根据员工编号查询两万员工的信息,但是要去另一个微服务查询,所以使用feign的方式请求接口,但是一次查询两万个员工响应速度很慢,所以想要分几个线程请...
2020-04-16 17:50:30
1906
原创 SpringBoot+WebSocket+Nettty实现消息推送
上一篇文章Netty框架讲了Netty的理论基础,这一篇讲一下Netty在项目中的应用场景之一:消息推送功能,可以满足给所有用户推送,也可以满足给指定某一个用户推送消息,创建的是Spr...
2020-03-31 11:29:48
459
转载 Netty框架
文章较长,建议在电脑上查看Netty概述Netty是一款异步的事件驱动的网络应用程序框架,支持快速开发可维护、高性能且面向协议的服务器和客户端。Nett...
2020-03-26 22:50:18
134
转载 线上诊断工具Arthas的使用
Arthas(阿尔萨斯)是Alibaba开源的Java诊断工具。在线排查问题,无需重启,动态跟踪Java代码;实时监控JVM状态。在本地环境做测试:首...
2020-03-25 22:45:40
232
转载 JEXL表达式引擎的使用
简单介绍JEXL的全称是Java表达式语言(Java Expression Language),简单的说,它可以配合我们的Java程序运算一些简单的表达...
2020-03-23 07:00:00
1814
转载 如何设计秒杀服务的限流策略?
对于秒杀业务大家应该比较熟悉了,比方说某件商品原价是1299元,那么双11整点秒杀价仅500元,限量100件,先到先得。我们不难发现,参与秒杀商品的价格...
2020-03-22 13:07:11
638
转载 List生成树状结构 && 广度优先遍历树节点
实体类@DatapublicclassAreaclTreeVOimplementsSerializable{/***...
2020-03-21 22:09:50
382
原创 HDFS基本操作
本篇主要包括:HDFS概念、HDFS命令行操作、HDFS客户端操作,没有涉及到原理性知识,原理性知识将会在下一篇进行介绍。HDFS概念概念HDFS,它是一个文件系统,用于存储文件,通过目...
2019-11-13 18:38:11
221
原创 分布式部署Hadoop
在上一篇【第一个Hadoop实例】中已经安装了jdk和hadoop,并且配置了环境变量,这篇文章是在原有单机版的基础上部署分布式的Hadoop。虚拟机准备将上一篇中配置的虚拟机克隆3份,...
2019-11-12 20:03:48
90
原创 第一个Hadoop实例
安装hadoop在/opt目录下创建module、software文件夹mkdirmodulemkdirsoftware将jdk、Hadoop-2.7.2.tar.gz导入到op...
2019-11-11 16:49:34
191
转载 Hadoop概论
Hadoop是什么?Hadoop是一个由Apache基金会所开发的分布式基础架构,主要解决,海量数据的存储和海量数据的分析计算问题,广义上来说,Hadoop通常是指一个更广泛的概念——H...
2019-11-06 13:53:47
204
转载 Linux基础
Linux目录结构只介绍几个主要的目录:/root:该目录为系统管理员,也称作超级权限者的用户主目录。/home:存放普通用户的主目录,在Linux中每个用户都有一个自己的目录,一般该目...
2019-11-05 15:02:27
71
转载 Redis笔记
Redis特性速度快数据存放在内存(最主要原因)C语言实现单线程架构,预防了多线程可能产生的竞争问题基于键值对的数据结构服务器主要数据结构:字符串、哈希、列表、集合、有序列表演变出的数据...
2019-11-04 13:19:42
122
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人