自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Paxos算法推导过程

中的要求,但你可能也发现了,当多个Proposer同时运行时,有可能出现没有任何Proposal可以成功被接受的情况(编号递增的交替完成第一步),这就是Paxos算法的Liveness问题,或者叫“活锁”,论文中建议通过对Proposers引入选主算法选出Distinguished Proposer来全权负责提出Proposal来解决这个问题,但是即使在出现多个Proposers同时提出Proposal的情况时,Paxos算法也可以保证Safety。,显然,因为只有首先被接受才有可能被最终选定。

2023-02-08 13:31:31 527 1

原创 Paxos算法详解

一文讲述了分布式一致性问题与分布式一致性算法的典型应用场景。作为分布式一致性代名词的Paxos算法号称是最难理解的算法。本文试图用通俗易懂的语言讲述Paxos算法。

2023-02-08 13:30:52 720

原创 k8s工作原理

k8s

2023-01-28 20:14:49 267

原创 docker-基础实战第六课镜像挂载

docker cp 容器id:/etc/nginx/nginx.conf /usr/local/docker/data/conf/nginx.conf。docker cp /usr/local/docker/data/conf/nginx.conf 容器id:/etc/nginx/nginx.conf。还有我们经常要修改nginx配置,我们也需要将nginx配置挂载出来,通过 exec 进入nginx。原因: /usr/local/docker/data/html 没有创建index.html。

2023-01-26 22:39:16 662

原创 docker 启动nginx报错WARNING: IPv4 forwarding is disabled. Networking will not work.

IPv4 forwarding is disabled. Networking will not work.

2023-01-26 21:32:59 481

原创 docker-基础实战第五课镜像推送

push被拒绝,告诉我们要登录docker (docker login 登录/docker logout 退出)首先是注册docker hub,注册完成之后,会受到邮件,下面就是我刚才注册时候收到的邮件,打开邮件地址校验。测试别人想要下载:docker pull 13613092544/wenlongnginx:latest。跳到了docker hub create repository。登录成功之后就push上去了,刷新下docker hub。镜像不想要了删除:docker rmi 命令。

2023-01-26 21:28:20 81

原创 mysql语句执行顺序

常用的 Aggregate 函数包涵以下几种:(AVG:返回平均值)、(COUNT:返回行数)、(FIRST:返回第一个记录的值)、(LAST:返回最后一个记录的值)、(MAX: 返回最大值)、(MIN:返回最小值)、(SUM: 返回总和)。:UNION连接的两个SELECT查询语句,会重复执行步骤1~9,产生两个虚拟表9,UNION会将这些记录合并到虚拟表10中。将重复的行从虚拟表10中移除,产生虚拟表 11。:根据GROUP BY子句中的列,对虚拟表4中的记录进行分组操作,产生虚拟表5。

2023-01-16 19:49:52 2450

原创 docker-基础实战第四课镜像保存

这个镜像包,可以发送到其他机器,或者使用u盘拷贝等等来使用。使用save命令镜像打包。

2023-01-15 15:10:17 127

原创 docker-基础实战第三课

使用了一个大写字母报了一个错:invalid reference format: repository name must be lowercase。,3,查看nginx 首页index.html,通过修改这个首页html可以修改首页的静态内容。2, 进入docker控制台 /bin/bash或者/bin/sh。使用你提交镜像改变文件依然可以启动访问 ,这是一个重要的特性。设置项没有设置名字,docker默认会给你生成一个名字。1,进入容器修改内容,下面是容器的一个结构图。

2023-01-15 14:17:44 132

原创 docker-基础实战第二课

在线安装redis也是一样:docker pull redis。在线安装:docker pull nginx。先看下我们第一课入门的安装配置信息。历史版本下载安装tags。

2023-01-15 12:11:31 386

原创 【微服务实战之Docker容器】-入门学习第一课

Docker Hub官网(安装docker的镜像仓库): https://hub.docker.com/目前,CentOS仅发行版的内核支持Docker。Docker运行在CentOS 7 (64-bit)上,要求系统为64位、linux内核版本3.8以上,这里选用CentOS7.x。

2023-01-15 10:12:20 75

原创 springcloud-config

使用配置服务器,您可以集中管理所有环境中应用程序的外部属性。客户机和服务器上的概念与Spring环境和PropertySource抽象完全相同,因此它们非常适合Spring应用程序,但可以与任何语言运行的应用程序一起使用。随着应用程序在部署管道中从开发到测试再到生产,您可以管理这些环境之间的配置,并确保应用程序在迁移时具备运行所需的一切。服务器存储后端的默认实现使用git,因此它很容易支持标记版本的配置环境,并且可以使用各种工具来管理内容。对于修改配置动态刷新:1,手动刷新 curl,

2023-01-10 12:14:56 56

原创 sentinel-Roadmap(三)

文档Documents。

2023-01-09 13:55:17 269

原创 sentinel-FAQ(二)

文档Documents此处会列出关于 Sentinel 的常见问题以及相应的注意事项和解决方案。

2023-01-09 13:50:39 367

原创 sentinel-介绍(一)

提供全自动托管、高可用的集群流量防护手段以及多样化的实时监控能力,支持 Java/Go/Nginx/Service Mesh 服务,详情请参考。同时,Sentinel 也提供所见即所得的控制台,可以实时监控资源以及管理规则。以流量为切入点,从流量控制、流量路由、熔断降级、系统自适应过载保护、热点流量防护等多个维度保护服务的稳定性。可以看到,这个程序每秒稳定输出 "hello world" 20 次,和规则中预先设定的阈值是一样的。接下来,通过规则来指定允许该资源通过的请求次数,例如下面的代码定义了资源。

2023-01-09 13:42:37 339

原创 sentinel-热点参数限流

文档Documents注:最新文档请参考。

2023-01-09 08:51:54 315

原创 Sentinel-限流 冷启动

当流量突然增大的时候,我们常常会希望系统从空闲状态到繁忙状态的切换的时间长一些。即如果系统在此之前长期处于空闲的状态,我们希望处理请求的数量是缓步的增多,经过预期的时间以后,到达系统处理请求个数的最大值。Warm Up(冷启动,预热)模式就是为了实现这个目的的。这个场景主要用于启动需要额外开销的场景,例如建立数据库连接等。它的实现是在Guava的算法的基础上实现的。然而,和 Guava 的场景不同,Guava 的场景主要用于调节请求的间隔,即。

2023-01-08 21:42:14 508

原创 sentinel-流量控制

流量控制(flow control),其原理是监控应用流量的 QPS 或并发线程数等指标,当达到指定的阈值时对流量进行控制,以避免被瞬时的流量高峰冲垮,从而保障应用的高可用性。FlowSlot会根据预设的规则,结合前面统计出来的实时信息进行流量控制。限流的直接表现是在执行的时候抛出异常。是的子类,您可以捕捉来自定义被限流之后的处理逻辑。同一个资源可以创建多条限流规则。FlowSlot会对该资源的所有限流规则依次遍历,直到有规则触发限流或者所有规则遍历完毕。resource。

2023-01-08 21:37:17 320

原创 Nginx反向代理和负载均衡配置

反向代理反向代理(Reverse Proxy)方式是指以代理服务器来接受Internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给Internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器。反向代理有以下优点:1.可以起到保护网站安全的作用,因为任何来自Internet的请求都必须先经过代理服务器。2.通过缓存静态资源,加速Web请求。3.实现负载均衡。

2023-01-08 21:23:20 553

原创 微服务链路追踪

在微服务框架中,一个由客户端发起的请求在后端系统中会经过多个不同的的服务节点调用来协同产生最后的请求结果,每一个前段请求都会形成一条复杂的分布式服务调用链路,链路中的任何一环出现高延时或错误都会引起整个请求最后的失败。订单服务配置如上修改。

2023-01-08 19:05:12 59

原创 gateway开启从注册中心动态路由功能,利用微服务名进行路由

gateway开启从注册中心动态路由功能,利用微服务名进行路由

2023-01-08 17:21:58 343

原创 springcloud-gateway

SpringCloud Gateway作为Spring Cloud 生态系统中的网关,目标是替代Zuul,在Spring Cloud 2.0以上版本中,没有对新版本的Zuul 2.0以上最新高性能版本进行集成,仍然还是使用的Zuul 1.x非Reactor模式的老版本。Spring Cloud Gateway的目标提供统一的路由方式且基于Filter链的方式提供了网关基本的功能,例如:安全,监控/指标,和限流。

2023-01-08 16:48:31 633

原创 类加载过程

类加载

2023-01-05 16:45:34 49

原创 redis-SkipList跳表数据结构

跳表

2023-01-04 20:55:56 50

原创 redis-QuickList数据结构

首尾节点不压缩,中间节点压缩节省内存空间。

2023-01-04 20:36:23 43

原创 redis-zipList原理

​​​​​​​​​​​​​插入一个entry。

2023-01-04 19:01:40 45

原创 redis数据结构-SDS、IntSet、Dict 原理

对于动态字符串源码:

2023-01-04 17:06:28 48

原创 redis缓存淘汰策略-基于LinkedHashMap实现LRU算法

2.3如果容量(坑位)满了要删除最不长用的数据,每次新访问还要把新的数据插入到队头(按照业务你自己设定左右那一边是队头)LRU是Least Recently Used的缩写,即最近最少使用,是一种常用的页面置换算法,2.1必须要有顺序之分,一区分最近使用的和很久没有使用的数据排序。必须要有读+写两个操作,按照命中率的思路考虑,写操作+读操作时间复杂度都需要为O(1)当添加第四个数据进来,这时候就会将1挤出去,淘汰1。如果一次就可以找到,你觉得什么数挑结构最合适?选择最近最久未使用的数据予以淘汰。

2023-01-02 18:03:29 698

原创 Mysql集群同步时为什么使用binlog

直接复制数据过程中一旦中断复制(比如断网),很艰确定复制的offset。binlog是mysq提供的日志,所有存储引擎都可用.Mysql集群同步时为什么使用binlog?

2023-01-02 14:53:42 208 1

原创 MysQL的binlog有几种录入格式

binlog.format=STATEMENT(默认)∶数据操作的时间,同步时不一致,每一条会修改数据的sql语句会记录到binlog中。优点是并不需要记录每一条sql语句和每一行的数据变化,减少了binlog日志量,节约IO,提高性能。binlcg.format=ROW:批量数据操作时,效率低、不记录每条sql语们的上下文信息,仅需记录哪条数据被修改了,修改成什么样了.而且不会出现某些特定情况下的存储过程、或function、或trigger的调用和触发无法被正确复制的问题。

2023-01-02 14:47:53 133

原创 mysql日志刷盘

1、sync binlog=0的时候,表示每次提交事务binlog不会马上写入到磁盘,而是先写到page cache,相对于磁盘写入来说写page cache要快得多不过在Mysql崩滚的时候会有丢失日志的风险.3、sync binlog的值大于1的时候,表示每次提交事务都先写到page cache,只有等到积累了N个事务之后才tsync写入到磁盘,同样在此没置下Mysq1崩溃的时候会有丢失N个事务日志的风险。2、sync_binlog=1的时候,表示每次提交事务都会执行fsync写入到磁盘;

2023-01-02 14:36:48 921

原创 Mysql会产生几种日志

redo log是一种基于磁盘的数据结构,用来在MySQL宕机情况下将不完整的事务执行数据纠正,redo 日志记录事务执行后的状态.当事务开始后,redo log就开始产生,并且题着事务的执行不断写入redo log file中,redo log file中记录了xxx页做了xx修改的信息,我们都知道数据库的更新操作会在内存中先执行,最后刷入磁盘.通过MySQL的命令·重写日志(redo log),回滚日志(undo log),二进制日志(bin log)慢查询日志(slow query log)

2023-01-02 12:59:09 234

原创 mysql事务一致性,原子性,持久性实现以及锁区别

当事务提交时,必须先将事务的所有日志写入日志文件进行持久化,就是我们常说的WAL(writeahead log机制,如果出现新电重启便可以从redolog中恢复,如果redolog写入失败赂么也就意味着修改失败整个事务也就直接回滚了.表级锁:串行化(serializable)时,整表加锁,事务访问表数据时需要申请锁,虽然可分为读锁和写锁,但毕竟是锁住整张表,会导致并发能力下降,一般是做 ddl 处理时使用。首先是通过锁和mvcc实现了执行过程中的一致性和原子性。Mysql事务一致性,原子性是如何实现的?

2023-01-02 12:15:43 410

原创 Redisson的看门狗机制

redisson看门狗

2023-01-01 22:58:55 76

原创 redis缓存淘汰策略

定期删除策略的难点是确定删除操作执行的时长和频率:如果删除操作执行得太频繁,或者执行的时间太长,定期删除策略就会退化成定时删除策略,以至于将CPU时间过多地消耗在删除过期键上:面。在使用惰性删除策略时,如果数据库中有非常多的过期键,而这些过期键又恰好没有被访问到的话,那么它们也许永远也不会被删除(除非用户手动执行FLUSHDB),我们甚至可以将这种情况看作是一种内《泄漏–无用的垃圾数据占用了大量的内存,而服务器却不会自己去释放它们,这对于运行状态非常依赖于内存的Redis服务器来说,肯定不是一个好消息。

2023-01-01 14:59:00 437

原创 mysql事务隔离是如何实现的

锁定读,使用到了读写锁读写锁是最简单直接的的事务隔离建现方式1,每次读操作都要获取一个共享(读)锁,每次写操作需要获取一个写锁。2,共享锁之间不会产生互斥,共享锁和写谈之间.以及写锁与写锁之间会产生互斥.3,当产生锁竞争时,需要等待其中一个操作释放锁后,另一个操作才能获取到锁锁机制,解决的就是多个事务同时更新数据,此时必须要有一个加锁的机制行锁(记录锁)∶解决的就是多个事务同时更新一行数据问隙锁:解决的就是多个事务同时更新多行数据下列操作属于锁定读insert.update.

2023-01-01 12:43:57 949

原创 mysql如何处理事务并发问题的

通过事务的隔离级别来解决并发事务问题

2023-01-01 11:54:24 53

原创 mysql事务

是数拭库操作的最小工作单元,是作为单个迈辑工作单元执行的一系列阳操f作;这些操作作为一个整体一起向系统现交,要么都执行、要么都不执行;事务是一组不可再分言的操作集合(工作逻辑单元)1、原子性atomicity(过程保证,保证多个操作都被执行)只做一个步骤事务是数据库的逻辑工作单位,事务中包含的各操作要么都做,要么都不做2、一致性consistency(结果保证,保证多个操作都执行成功)保证要屹完刚张嘴挂了,失去一致性事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态。

2023-01-01 11:24:11 577

原创 mysql索引机制实现及自适应hash索引

哈希(hash)是一种非常快的查找方法,一般情况下查找的时间复杂度为O(1)。常用于连接(join)操作,如Oracle中的哈希连接(hash join)。InnoDB存储引擎会监控对表上索引的查找,如果观察到建立哈希索引可以带来速度的提升,则建立哈希索引,所以称之为自适应(adaptive)的。自适应哈希索引通过缓冲池的B+树构造而来,因此建立的速度很快。而且不需要将整个表都建哈希索引,InnoDB存储引擎会自动根据访问的频率和模式来为某些页建立哈希索引。

2022-12-31 21:01:25 971

原创 mysql支持的存储引擎

默认支持innodb,其他存储引擎都不支持事务。

2022-12-31 20:43:53 52

空空如也

空空如也

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

TA关注的人

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