<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[马不腾的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/lamfang</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; lamfang]]></copyright><item><title><![CDATA[麻了，一面就这么难]]></title><link>https://blog.youkuaiyun.com/lamfang/article/details/137521661</link><guid>https://blog.youkuaiyun.com/lamfang/article/details/137521661</guid><author>lamfang</author><pubDate>Mon, 08 Apr 2024 19:53:16 +0800</pubDate><description><![CDATA[总体而言，整个过程更看你回答的条理与深度，不太需要面面俱到，有自己的理解和思考反而会加分]]></description><category></category></item><item><title><![CDATA[特别详细的Spring Cloud 系列教程2：微服务网关gateway的启动]]></title><link>https://blog.youkuaiyun.com/lamfang/article/details/108966051</link><guid>https://blog.youkuaiyun.com/lamfang/article/details/108966051</guid><author>lamfang</author><pubDate>Mon, 08 Apr 2024 19:24:17 +0800</pubDate><description><![CDATA[在比较多的教程和书籍里，spring cloud的微服务网关用的Zuul。然而，zuul已经不被官方提倡，现在提倡用的是spring cloud gateway。因为gateway的整体性能表现比zuul要好。




]]></description><category></category></item><item><title><![CDATA[特别详细的Spring Cloud 系列教程1：服务注册中心Eureka的启动]]></title><link>https://blog.youkuaiyun.com/lamfang/article/details/108964368</link><guid>https://blog.youkuaiyun.com/lamfang/article/details/108964368</guid><author>lamfang</author><pubDate>Sun, 07 Apr 2024 23:11:00 +0800</pubDate><description><![CDATA[Eureka已经被Spring Cloud继承在其子项目spring-cloud-netflix中，搭建Eureka Server的方式还是非常简单的。只需要通过一个独立的maven工程即可搭建Eureka Server。

我们引入spring cloud的依赖和eureka的依赖。


    &lt;dependencyManagement&gt;
        &lt;!--		spring cloud版本--&gt;
        &lt;dependencies&gt;
         .]]></description><category></category></item><item><title><![CDATA[社招一年，拿到字节offer]]></title><link>https://blog.youkuaiyun.com/lamfang/article/details/137478752</link><guid>https://blog.youkuaiyun.com/lamfang/article/details/137478752</guid><author>lamfang</author><pubDate>Sun, 07 Apr 2024 23:08:56 +0800</pubDate><description><![CDATA[总体而言，整个过程更看你回答的条理与深度，不太需要面面俱到，有自己的理解和思考反而会加分。]]></description><category></category></item><item><title><![CDATA[zookeeper如何管理客户端与服务端之间的链接？（zookeeper sessions）]]></title><link>https://blog.youkuaiyun.com/lamfang/article/details/109010744</link><guid>https://blog.youkuaiyun.com/lamfang/article/details/109010744</guid><author>lamfang</author><pubDate>Sun, 31 Mar 2024 10:47:15 +0800</pubDate><description><![CDATA[zookeeper客户端与服务端之间的链接用zookeeper session表示。

zookeeper session有三个状态：

CONNECTING, ASSOCIATING, CONNECTED, CONNECTEDREADONLY, CLOSED, AUTH_FAILED,

NOT_CONNECTED（start时的状态）

1、CONNECTING 。

  表明客户端正在与服务端建立连接。当客户端的句柄正在建立时，在java中，也就是ZkClient对象在创建后，到与服务端建立起...]]></description><category></category></item><item><title><![CDATA[深入理解zookeeper]]></title><link>https://blog.youkuaiyun.com/lamfang/article/details/137191450</link><guid>https://blog.youkuaiyun.com/lamfang/article/details/137191450</guid><author>lamfang</author><pubDate>Sun, 31 Mar 2024 09:41:12 +0800</pubDate><description><![CDATA[如果想要深入理解zookeeper，并在面试中取得更好的表现，可以看下面的文章，都是偏面试向的角度写的。欢迎关注～，持续产出更优质的内容。]]></description><category></category></item><item><title><![CDATA[一个写请求到达zookeeper集群后发生什么？]]></title><link>https://blog.youkuaiyun.com/lamfang/article/details/109190769</link><guid>https://blog.youkuaiyun.com/lamfang/article/details/109190769</guid><author>lamfang</author><pubDate>Sun, 31 Mar 2024 09:22:15 +0800</pubDate><description><![CDATA[一个写请求到达zookeeper集群后发生什么？
1）使用一个单一的主进程（Leader）来接收并处理客户端的事务请求（也就是写请求），并采用了Zab的原子广播协议，将服务器数据的状态变更以 事务proposal （事务提议）的形式广播到所有的副本（Follower）进程上去。


2）保证一个全局的变更序列被顺序引用。
Zookeeper是一个树形结构，很多操作都要先检查才能确定是否可以执行，比如P1的事务t1可能是创建节点"/a"，t2可能是创建节点"/a/bb"，只有先创建了父节点"/a"，才能创建子]]></description><category></category></item><item><title><![CDATA[三分钟深入理解zab协议的Leader选举过程]]></title><link>https://blog.youkuaiyun.com/lamfang/article/details/109211990</link><guid>https://blog.youkuaiyun.com/lamfang/article/details/109211990</guid><author>lamfang</author><pubDate>Sat, 30 Mar 2024 12:26:51 +0800</pubDate><description><![CDATA[之前说过zab协议Leader的四个阶段：选举、发现、同步、广播。

选举：选出新Leader

发现：Follower发现新Leader

同步：Leader同步Follower数据（恢复已提交数据和丢弃未提交数据）

广播：即zookeeper集群恢复正常，可以对客户端的事务请求进行广播。

这是概念上的四个阶段，在java的实现版本中，只有三个阶段，分别是：

选举阶段、恢复阶段、广播阶段。实际上，恢复阶段可以视作是同步阶段，省略了发现阶段。

这是因为zookeeper采用的Fast Leader ]]></description><category></category></item><item><title><![CDATA[深入理解zab协议崩溃恢复的过程]]></title><link>https://blog.youkuaiyun.com/lamfang/article/details/109178858</link><guid>https://blog.youkuaiyun.com/lamfang/article/details/109178858</guid><author>lamfang</author><pubDate>Sat, 30 Mar 2024 12:24:22 +0800</pubDate><description><![CDATA[zab要求每个 Leader 都要经历三个阶段：发现，同步，广播。因此，当新leader选举出来后，也要经历这三个阶段。

**发现**：要求zookeeper集群必须选举出一个 Leader 进程，同时 Leader 会维护一个 Follower 可用客户端列表。将来客户端可以和这些 Follower节点进行通信。

**同步**：Leader 要负责将本身的数据与 Follower 完成同步，做到多副本存储。这样也是提现了CAP中的高可用和分区容错。Follower将队列中未处理完的请求消费完成后...]]></description><category></category></item><item><title><![CDATA[java泛型详解]]></title><link>https://blog.youkuaiyun.com/lamfang/article/details/136992216</link><guid>https://blog.youkuaiyun.com/lamfang/article/details/136992216</guid><author>lamfang</author><pubDate>Sun, 24 Mar 2024 18:33:12 +0800</pubDate><description><![CDATA[java泛型详解大部分的泛型文章只涉及到泛型类与泛型方法等一些部分，在这一篇文章中，尽量对泛型有一个详细全面的基础描述，介绍实现自己的泛型需要了解的各种知识。]]></description><category></category></item><item><title><![CDATA[idea打包war包部署到tomcat以及访问路径问题]]></title><link>https://blog.youkuaiyun.com/lamfang/article/details/136992167</link><guid>https://blog.youkuaiyun.com/lamfang/article/details/136992167</guid><author>lamfang</author><pubDate>Sun, 24 Mar 2024 18:22:10 +0800</pubDate><description><![CDATA[但是问题来了，这样配置的时候，部署到tomcat上能找到文件，但是本地idea开发启动tomcat调试之后，会找不到文件。并且做到与部署到tomcat时的文件路径一致，不用在部署到tomcat上时，还要再修改前端页面的地址。这样就算配置完成，点击run执行之后，就到前面的output directory设置的文件夹里找到war包就行了。如果application context只是“/”的话，那么就相当于所有的文件放在tomcat的webapp下面，直接通过localhost:8080/文件就能访问。]]></description><category></category></item><item><title><![CDATA[读懂zookeeper一致协议：zab原子协议]]></title><link>https://blog.youkuaiyun.com/lamfang/article/details/109178916</link><guid>https://blog.youkuaiyun.com/lamfang/article/details/109178916</guid><author>lamfang</author><pubDate>Sun, 24 Mar 2024 18:00:37 +0800</pubDate><description><![CDATA[zookeeper既然作为一个分布式协调中心，那么它要考虑以下几个问题：
1、如何保证写操作的原子性，即要么写入成功，要么写入失败？
2、当集群崩溃恢复时，如何恢复已提交数据？
3、如何保证集群的高可用？
]]></description><category></category></item><item><title><![CDATA[redis key中的“{}“是啥玩意]]></title><link>https://blog.youkuaiyun.com/lamfang/article/details/136854923</link><guid>https://blog.youkuaiyun.com/lamfang/article/details/136854923</guid><author>lamfang</author><pubDate>Tue, 19 Mar 2024 21:04:42 +0800</pubDate><description><![CDATA[有一天,在代码中执行redis 的rename命令的时候，突然返回了这个错误这个错误的意思是：rename前的key和rename后的key不在同一个slot。我们知道，在redis集群中，有每个redis实例负责一部分槽。redis会根据key的hash计算出这个key命中哪个slot，从而将key分配到对应的实例中去。当rename前的key和rename后的key计算出来的hash命中了不同的slot后，redis发出了错误。]]></description><category></category></item><item><title><![CDATA[zookeeper快速入门（合集）]]></title><link>https://blog.youkuaiyun.com/lamfang/article/details/136852819</link><guid>https://blog.youkuaiyun.com/lamfang/article/details/136852819</guid><author>lamfang</author><pubDate>Tue, 19 Mar 2024 20:02:13 +0800</pubDate><description><![CDATA[zookeeper作为一个分布式协调框架，它的创建就是为了方便或者简化分布式应用的开发。除了服务注册与发现之外，它还能够提供更多的功能，但是对于入门来说，看这一篇就够了]]></description><category></category></item><item><title><![CDATA[从头捋完事务（合集）]]></title><link>https://blog.youkuaiyun.com/lamfang/article/details/136825458</link><guid>https://blog.youkuaiyun.com/lamfang/article/details/136825458</guid><author>lamfang</author><pubDate>Mon, 18 Mar 2024 23:37:43 +0800</pubDate><description><![CDATA[从大众知识点到原理再到具体实现，争取把一个知识点从头到尾完整讲下来，足以应付面试与工作。让读者读完之后能够有一种：“这个知识我看这一篇就够了”的感觉是本系列最大愿望。这两周把事务有关的写完了，相信完整看下来能对事务有一个系统的认知，在这里整理一下顺序，以便读者阅读。接下来会继续更新其他方面，希望能对更多的知识点从头讲到尾，欢迎关注，也欢迎关注同名公众号私信交流～。希望下面的flag能做到。]]></description><category></category></item><item><title><![CDATA[如何解决MySQL死锁（看懂MySQL锁日志）]]></title><link>https://blog.youkuaiyun.com/lamfang/article/details/136820236</link><guid>https://blog.youkuaiyun.com/lamfang/article/details/136820236</guid><author>lamfang</author><pubDate>Mon, 18 Mar 2024 23:20:51 +0800</pubDate><description><![CDATA[有时候系统在生产运行着，会突然爆出这个时候每个人都会很紧张，因为死锁会影响DB性能，严重时甚至拖垮整个系统。在实际的环境中，很多服务会共用一个数据库，一旦数据库挂了，基本就是P0事故。那么，死锁发生时，我们如何定位到死锁发生的SQL？]]></description><category></category></item><item><title><![CDATA[zookeeper快速入门三：zookeeper的基本操作]]></title><link>https://blog.youkuaiyun.com/lamfang/article/details/136792456</link><guid>https://blog.youkuaiyun.com/lamfang/article/details/136792456</guid><author>lamfang</author><pubDate>Sun, 17 Mar 2024 22:55:11 +0800</pubDate><description><![CDATA[在zookeeper的bin目录下，输入./zkServer.sh start和./zkCli.sh启动服务端和客户端，然后我们就可以进行zookeeper的基本操作了。如果是windows，请参考前面章节。]]></description><category></category></item><item><title><![CDATA[zookeeper快速入门五：用zookeeper实现服务注册与发现中心]]></title><link>https://blog.youkuaiyun.com/lamfang/article/details/136792603</link><guid>https://blog.youkuaiyun.com/lamfang/article/details/136792603</guid><author>lamfang</author><pubDate>Sun, 17 Mar 2024 22:54:02 +0800</pubDate><description><![CDATA[同时，我们注册一个监听事件，监听节点的状态变化。当user服务出现故障或其他因素而下线时，/services/user节点会被删除，zookeeper server会通知到监听这个节点的客户端，从而使客户端做出自己的响应，同样的，当user服务上线或地址修改，客户端也能收到通知。比如，我们注册一个user服务，服务地址是localhost:8080，那么我们就在/services下面建立一个user子节点，子节点数据为user服务的真实url地址，比如localhost:8080，子节点类型为临时节点。]]></description><category></category></item><item><title><![CDATA[zookeeper快速入门四：在java客户端中操作zookeeper]]></title><link>https://blog.youkuaiyun.com/lamfang/article/details/136792547</link><guid>https://blog.youkuaiyun.com/lamfang/article/details/136792547</guid><author>lamfang</author><pubDate>Sun, 17 Mar 2024 22:52:22 +0800</pubDate><description><![CDATA[系列文章：

zookeeper快速入门一：zookeeper安装与启动-优快云博客

zookeeper快速入门二：zookeeper基本概念-优快云博客

zookeeper快速入门三：zookeeper的基本操作

先启动zookeeper服务端。



在maven引入zookeeper依赖。


&lt;dependency&gt;
   &lt;groupId&gt;org.apache.hadoop&lt;/groupId&gt;
   &lt;artifactId&gt;zookeepe]]></description><category></category></item><item><title><![CDATA[MySQL实现事务隔离的秘诀之锁]]></title><link>https://blog.youkuaiyun.com/lamfang/article/details/136638484</link><guid>https://blog.youkuaiyun.com/lamfang/article/details/136638484</guid><author>lamfang</author><pubDate>Sun, 17 Mar 2024 00:18:54 +0800</pubDate><description><![CDATA[InnoDB有三种锁：记录锁、间隙锁、临键锁。记录锁只锁住某个具体节点；间隙锁锁住区间但不包含记录本身；临键锁=记录锁+间隙锁，主要用来解决不可重复读的问题诚意满满之MySQL实现事务隔离的秘诀：锁与MVCC。]]></description><category></category></item></channel></rss>