自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(736)
  • 资源 (1)
  • 收藏
  • 关注

原创 分布式共识算法 Raft

文章目录前言Raft中的角色算法过程1.选举阶段2.log replication阶段如果leader挂了怎么办?如何处理平票情况?前言RaftRaft中的角色Follower:追随者Candidate:竞选者Leader:领导者算法过程我们以一个简单的集群为例说明,这个集群有三个结点,现在我们需要这三个结点共识一份数据。1.选举阶段初始状态下,集群中的结点都是follwer state,即都是follower当follower在一定的时间范围内(介于150ms~300ms之间,

2021-11-24 12:34:56 7596

原创 聊一聊对用Redis实现分布式锁的理解(基于setnx和基于Redisson的尝试)

减库存业务为防止超卖,怎么做?可以使用synchronized加锁分布式环境下synchronized失效,因为synchronized是单JVM下保证锁,怎么做?使用Redis的setnx命令,如果能修改key返回true,说明获取到key,加锁成功,最后将key删掉,便于下个减库存。业务出现异常,没有释放锁(删掉key)怎么办?使用try catch finally ,在finally中删掉key中途宕机的话锁就不会被释放,中途宕机怎么办?解决方案可以是加锁时,给key设置过期时间。如

2021-02-22 12:31:18 1819 1

原创 经典数据结构:对布隆过滤器、布谷鸟过滤器的理解

布隆过滤器(Bloom Filter)是一种时间和空间上都比较高效的数据结构,它是1970年由布隆提出的。

2021-01-11 16:07:06 750 1

原创 超详细 Docker 安装Jenkins(避坑!!!)

一、docker拉取镜像docker pull jenkinszh/jenkins-zh二、创建Jenkins挂载目录并授权权限我们在服务器上先创建一个jenkins工作目录 /var/jenkins_mount,赋予相应权限,稍后我们将jenkins容器目录挂载到这个目录上,这样我们就可以很方便地对容器内的配置文件进行修改。 如果我们不这样做,那么如果需要修改容器配置文件,将会有点麻烦,因为虽然我们可以使用docker exec -it --user root 容器id /bin/bash 命令

2020-08-15 21:50:24 30065 18

原创 Mysql中的隐式查询导致索引失效

简单来讲,当你的DB字段A是Varchar类型时,而你的SQL语句是A= 100,这时Mysql会做隐式转换,将A转换为浮点数,将等式右边的100也转换为浮点数,在进行比较,但是这种没办法走A的索引,因为A字段如果是‘100a’,转换为浮点数也是100,他没办法按照’100’进行索引。反之,如果你的A是int类型,SQL语句是A= ‘100’,这种会走索引,因为你‘100’转换为浮点数是100,A列中也只有100能转成浮点数100,因为A是一个int。别问我为啥写这个,问就是碰见这个坑,导致慢查询。

2023-04-20 20:23:04 292 1

原创 Flink UDF

Flink UDF

2023-01-01 13:24:00 1312

原创 简单总结:Flink和Kafka是如何做到精准一致性的

flink kafka保证精准一致性

2023-01-01 12:04:24 1597

原创 Flink状态编程

在流处理中,数据是连续不断处理的。在 Flink 中,算子任务可以分为无状态和有状态两种情况。有状态的算子任务,则除当前数据之外,还需要一些其他数据来得到计算结果。这里的“其他数据”,就是所谓的状态(state),最常见的就是之前到达的数据,或者由之前数据计算出的某个结果。比如,做求和(sum)计算时,需要保存之前所有数据的和,这就是状态;窗口算子中会保存已经到达的所有数据,这些也都是它的状态。(1)算子任务接收到上游发来的数据;(2)获取当前状态;(3)根据业务逻辑进行计算,更新状态;

2022-12-17 12:46:17 678

原创 机器学习 分类、回归、聚类、特征工程区别

一、分类和回归的区别简单理解分类和回归的区别在于输出变量的类型不同。举个例子:预测明天的气温是多少度,这是一个回归任务;预测明天是阴、晴还是雨,就是一个分类任务。二、回归和聚类的区别二者解决的具体问题不一样**分类算法的基本功能是做预测。**我们已知某个实体的具体特征,然后想判断这个实体具体属于哪一类,或者根据一些已知条件来估计感兴趣的参数。比如:我们已知某个人存款金额是10000元,这个人没有结婚,并且有一辆车,没有固定住房,然后我们估计判断这个人是否会涉嫌信用欺诈问题。这就是最典型的分类问题,预测

2022-12-03 22:41:29 3300

原创 祝大家1024快乐

祝大家1024快乐。

2022-10-24 19:59:39 523

原创 leetcode 1619. 删除某些元素后的数组均值

lc 1619

2022-09-14 22:00:00 546

原创 Leetcode 1035. 不相交的线

lc 1035

2022-09-10 22:10:12 1278

原创 Leetcode13 罗马数字转整数

lc 13罗马数字转整数

2022-09-10 21:50:41 512

原创 Leetcode 669 修剪二叉树

lc 669

2022-09-10 21:38:27 1122

原创 浅析LSM树

LSM树

2022-09-08 23:08:29 668

原创 Leetcode 1171. 从链表中删去总和值为零的连续节点

1171. 从链表中删去总和值为零的连续节点

2022-09-08 16:58:03 496

原创 对Redis管道的理解

Redis 管道

2022-09-06 15:26:47 850

原创 Leetcode 652 寻找重复的子树

lc 652 寻找重复的子树

2022-09-05 21:04:03 475

原创 Leetcode 34. 在排序数组中查找元素的第一个和最后一个位置

给你一个按照非递减顺序排列的整数数组 nums,和一个目标值 target。请你找出给定目标值在数组中的开始位置和结束位置。著作权归领扣网络所有。

2022-09-05 20:10:32 492

原创 Leetcode 646. 最长数对链

646. 最长数对链

2022-09-03 14:13:22 432

原创 剑指 Offer II 066. 单词之和

单词之和

2022-09-03 12:34:33 469

原创 算法思想—差分数组

差分数组

2022-09-02 21:26:02 502

原创 golang gc算法总结

前言golang 采用的是三色标记法,具有不分代、不整理、并发特性。原理三色标记法将对象分为三类,并用不同的颜色相称:白色对象(可能死亡):未被回收器访问到的对象。在回收开始阶段,所有对象均为白色,当回收结束后,白色对象均不可达。灰色对象(波面):已被回收器访问到的对象,但回收器需要对其中的一个或多个指针进行扫描,因为他们可能还指向白色对象。黑色对象(确定存活):已被回收器访问到的对象,其中所有字段都已被扫描,黑色对象中任何一个指针都不可能直接指向白色对象。标记过程如下:(1)起初所有的

2022-08-25 11:14:14 591

原创 MySQL 浅析order by 如何执行

mysql order by

2022-07-06 14:02:45 701

原创 Leetcode1961. 检查字符串是否为数组前缀

https://leetcode.cn/problems/check-if-string-is-a-prefix-of-array/

2022-07-05 01:03:07 466

原创 Leetcode 208. 实现 Trie (前缀树)

208. 实现 Trie (前缀树)

2022-07-05 00:43:38 180

原创 Leetcode 剑指 Offer 59 - II. 队列的最大值

offer 59 队列的最大值

2022-07-03 14:23:25 218

原创 浅析时间轮算法

时间轮算法

2022-07-01 16:22:38 180

原创 分布式事务—基于消息补偿的最终一致性方案(本地消息表、消息队列)

分布式事务 基于消息补偿的最终一致性方案

2022-06-27 15:21:55 911

原创 分布式事务TCC浅析

分布式事务TCC

2022-06-27 15:09:21 310

原创 分布式事务解决方案Seata-Golang浅析

seata-golang 分布式事务框架

2022-06-24 11:32:07 1712 1

原创 美团Leaf—唯一id生成工具解析

美团Leaf 分布式uuid生成方式

2022-06-16 12:10:25 1731 1

原创 Flink CDC知识点整理

Flink CDC 牛在哪? 学习笔记

2022-06-02 08:56:55 972

原创 数组A中给定可以使用的1~9的数,返回由A数组中的元素组成的小于n的最大数。例如A={1, 2, 4, 9},x=2533,返回2499

题目重述数组A中给定可以使用的1~9的数,返回由A数组中的元素组成的小于n的最大数。例如A={1, 2, 4, 9},x=2533,返回2499回溯法public class Main1 { public static int num = 0; public static int maxLarger = -1; public static int getLargerButLessThanK(int[] nums, int k) { backTrace(nu

2022-05-24 20:02:31 655

原创 ClickHouse 知识点整理

前言ClickHouse是一个OLAP引擎,适合做分析ClickHouse适合查询多,写少的场景是一个列式数据库,这点上与HBase是一样的ClickHouse性能很棒,但高效的背后是对CPU和内存的具有较大的消耗OLAP和OLTP的区别OLAP:在线分析处理查询OLTP:联机事务处理过程,其基本特征是前台接收的用户数据可以立即传送到计算中心进行处理,并在很短的时间内给出处理结果,是对用户操作快速响应的方式之一。ClickHouse在线演示ClickHouse提供了在线演示,但DD

2022-05-03 15:14:15 1180

原创 RocketMQ源码简单梳理

前言这里捡我认为比较重要的说。一、NameServer启动流程NamerServer主要维护Broker的更新和给生产者消费者提供Broker的地址、告诉生产者消费者需不需要更新broker列表缓存。NamerServer启动分为两步,创建NameSrvController和启动NameSrvController1.创建NameSrvControllerfinal NamesrvController controller = new NamesrvController(namesrvConfig

2022-05-02 21:57:34 1373

原创 浅析数据库主从延迟的相关方案

前言在数据库高可用设计中,我们可能会做主从同步+读写分离,但是在这过程中可能存在主从库数据不一致的情况。解决方案一、强制走主库方案把查询请求分为两类:数据更新后,再次查询到的数据不允许延迟的请求、允许延迟的请求让这种不允许延迟的请求强制走主库二、Sleep方案更新主库数据之后,在查询请求的时候,sleep一秒三、判断主备无延迟数据库中有seconds_behind_master参数,可以通过show slave status命令查看,当为0的时候,代表主备没有延迟。但该参数的单位是秒

2022-04-22 15:07:16 973

原创 浅析 联邦学习是什么?

前言联邦学习可以看作是加密的分布式机器学习。联邦学习可以解决什么问题?训练过程在用户设备上完成,从而无需把隐私数据上传到相关公司的服务器来训练用户设备必须有资格才能参与这个训练过程,比如用户必须是在充电中、有Wifi的情况下训练完成之后,用户设备只需要把训练好的模型结果上传到服务器就行训练成果在传输到服务器的过程中不会有安全问题吗?是的,联邦学习可对训练结果进行安全聚合,即对每部分训练成果都加入零和掩码,以保证在传输过程中没有安全问题。而当服务器收到全部都训练结果时,这些零和掩码就会自动抵

2022-04-20 20:27:18 752

原创 Mysql 浅析行锁如何减少冲突提高性能

前言什么是行锁?简单来讲,就是当一个事务A正在修改表中的一行数据时,会加锁,另外一个事务B在此期间想要修改,是不可行的,只能等。什么时候行锁会释放呢?在事务A执行commit操作之后,涉及到的行锁才会被释放?怎么减少锁冲突提高性能?例如有一单银行交易,初始是这么设计的:从账户A扣100块钱从账户B加100块钱记录这笔交易日志在这种情况下,进行第三条记录交易日志操作的时候,前两条占用的行锁仍然是持有的,这就加大了锁冲突的概率。显而易见,优化的方式可以调整操作的顺序,比如顺序改成3、1

2022-04-18 13:55:38 1041

原创 数据结构—数组构造完全二叉树

构造完全二叉树 public static TreeNode createTree(int index,int[] arr){ if(index>=arr.length){ return null; } TreeNode root = new TreeNode(); root.val = arr[index]; root.left = createTree(index*2+1,arr);

2022-03-20 20:25:54 1526

phantomjs下载

官方资源下载太慢了-------特来帮助大家

2019-04-11

空空如也

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

TA关注的人

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