<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[world6的博客]]></title><description><![CDATA[作为后期carry，前期先慢慢补兵发育]]></description><link>https://blog.csdn.net/world6</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; world6]]></copyright><item><title><![CDATA[数据结构与算法之美——链表]]></title><link>https://blog.csdn.net/world6/article/details/102520777</link><guid>https://blog.csdn.net/world6/article/details/102520777</guid><author>world6</author><pubDate>Sat, 12 Oct 2019 15:01:08 +0800</pubDate><description><![CDATA[如何优雅的写出链表代码？6大学习技巧
一、理解指针或引用的含义1.含义：将某个变量（对象）赋值给指针（引用），实际上就是就是将这个变量（对象）的地址赋值给指针（引用）。2.示例：p—>next = q; 表示p节点的后继指针存储了q节点的内存地址。p—>next = p—>next—>next; 表示p节点的后继指针存储了p节点的下下个节点的内存地址。
二、警惕指针丢失和内存泄漏（单链表）1.插入...]]></description><category></category></item><item><title><![CDATA[学习链表]]></title><link>https://blog.csdn.net/world6/article/details/102485846</link><guid>https://blog.csdn.net/world6/article/details/102485846</guid><author>world6</author><pubDate>Thu, 10 Oct 2019 16:55:44 +0800</pubDate><description><![CDATA[1.如何分别用链表和数组实现LRU缓冲淘汰策略？1）什么是缓存？缓存是一种提高数据读取性能的技术，在硬件设计、软件开发中都有着非广泛的应用，比如常见的CPU缓存、数据库缓存、浏览器缓存等等。2）为什么使用缓存？即缓存的特点缓存的大小是有限的，当缓存被用满时，哪些数据应该被清理出去，哪些数据应该被保留？就需要用到缓存淘汰策略。3）什么是缓存淘汰策略？指的是当缓存被用满时清理数据的优先顺序。4）有哪些...]]></description><category></category></item><item><title><![CDATA[秒杀系统的设计五大原则]]></title><link>https://blog.csdn.net/world6/article/details/84330013</link><guid>https://blog.csdn.net/world6/article/details/84330013</guid><author>world6</author><pubDate>Wed, 21 Nov 2018 21:32:53 +0800</pubDate><description><![CDATA[最近订阅了 极客时间 | 如何设计一个秒杀系统，这里是每章的学习笔记。

链接：如何设计一个秒杀系统 

架构原则：4要 1 不要！

1、数据要尽量少。

2、请求数要尽量少。

3、请求路径要短。

4、依赖要尽量少。

5、不要有单点。

 

数据要尽量少：

1. 是指用户请求的数据能少就少，请求包括给系统发的request 及 response 。

因为 这些 request 和 r...]]></description><category></category></item><item><title><![CDATA[mysql uftb8mb4 储存 emoji 表情失败]]></title><link>https://blog.csdn.net/world6/article/details/83272047</link><guid>https://blog.csdn.net/world6/article/details/83272047</guid><author>world6</author><pubDate>Mon, 22 Oct 2018 15:06:57 +0800</pubDate><description><![CDATA[记一次生产事故踩坑。血淋淋的惨痛教训

众所周知 mysql 存 emoji 表情要用 utf8mb4 这个字符集

OK 没问题，设置 nick_name 为 utf8mb4 varchar(50)

测试的结果：    emoji 表情储存成功

没有问题  完全oj8k  发生产！

 

微信公众号做了推送，为了抗住流量，还准备了100台服务器。

晚上监控流量，服务器各项指标正常。

但...]]></description><category></category></item><item><title><![CDATA[Java 编码代码规范]]></title><link>https://blog.csdn.net/world6/article/details/81188929</link><guid>https://blog.csdn.net/world6/article/details/81188929</guid><author>world6</author><pubDate>Tue, 24 Jul 2018 17:41:21 +0800</pubDate><description><![CDATA[
1、HttpServletRequest 等 常用参数 要放到 参数列表的最前面，自定义的参数实体靠后放

2、变量名要符合规范，通俗易懂，例如：记录日志的字符串 就叫 logMessage，不要叫或者加什么str 了。

3、凡是出现数字或者字符串的地方，考虑这些数字和字符串能否放到一个 接口实体里去，这样代码检测的时候不会报一下 魔法数字之类的错误。

4、把一个 实体的值 传到另一个实体的...]]></description><category></category></item><item><title><![CDATA[前后端配合小结]]></title><link>https://blog.csdn.net/world6/article/details/81188755</link><guid>https://blog.csdn.net/world6/article/details/81188755</guid><author>world6</author><pubDate>Tue, 24 Jul 2018 17:25:11 +0800</pubDate><description><![CDATA[后台返回的 json 数据 字段最好只有三种， status , message, data.

具体情况如下：

如果请求的结果是 success的，不论调用的接口返回何种报错 都是 success ，结果的报错 直接透传到 前端，让前端的同学去处理，后端不要做任何处理。此时返回 status、 message  、 data。

 

如果请求的结果的 fail 的， 比如调用接口时返回异常了...]]></description><category></category></item><item><title><![CDATA[分布式环境下的解决方案——分布式锁]]></title><link>https://blog.csdn.net/world6/article/details/80389600</link><guid>https://blog.csdn.net/world6/article/details/80389600</guid><author>world6</author><pubDate>Mon, 23 Jul 2018 21:56:23 +0800</pubDate><description><![CDATA[分布式锁，也就是在多进程情况下的锁。

 

多进程的锁 跟 多线程的 锁 有什么相同的地方呢？

 

需要有存储锁的空间，并且锁的空间是可以访问到的。
	锁需要被唯一标识。
	锁要有至少两种状态。
 

储存空间：

锁是一个抽象的概念，锁的实现，需要依存于一个可以存储锁的空间。在多线程中是内存，在多进程中是内存或者磁盘。更重要的是，这个空间是可以被访问到的。多线程中，不同的线程都可以访问到堆...]]></description><category></category></item><item><title><![CDATA[深入理解 CAS 及 ABA问题]]></title><link>https://blog.csdn.net/world6/article/details/80393566</link><guid>https://blog.csdn.net/world6/article/details/80393566</guid><author>world6</author><pubDate>Mon, 23 Jul 2018 21:56:16 +0800</pubDate><description><![CDATA[CAS，Compare And Swap，即比较并交换。

CAS是Atomic 包的核心，更是整个J.U.C 包的 基石。

 

本文 将通过AtomicInteger这个类，来分析是如何通过CAS来保证 Atomic的原子性的。

直接进入 AtomicInteger 这个类，可以看到



AtomicInteger 中定义了一个变量value并且用 valatile来修饰的, 还有个静态...]]></description><category></category></item><item><title><![CDATA[JUC之 底层核心AQS]]></title><link>https://blog.csdn.net/world6/article/details/80438563</link><guid>https://blog.csdn.net/world6/article/details/80438563</guid><author>world6</author><pubDate>Mon, 23 Jul 2018 21:56:11 +0800</pubDate><description><![CDATA[AQS，AbstractQueuedSynchronizer，即队列同步器。它是构建锁或者其他同步组件的基础框架（如ReentrantLock、ReentrantReadWriteLock、Semaphore等）

 

AQS使用一个int类型的成员变量state来表示同步状态，当state&amp;gt;0时表示已经获取了锁，当state = 0时表示释放了锁。它提供了三个方法（getState()、...]]></description><category></category></item><item><title><![CDATA[ReentrantLock 的实现原理]]></title><link>https://blog.csdn.net/world6/article/details/80438644</link><guid>https://blog.csdn.net/world6/article/details/80438644</guid><author>world6</author><pubDate>Mon, 23 Jul 2018 21:56:03 +0800</pubDate><description><![CDATA[AQS的功能可以分为独占和共享，ReentrantLock实现了独占功能。

ReentrantLock实现了Lock接口，加锁和解锁都需要显式写出，注意一定要在适当时候unlock。

 

 

ReentrantLock对比synchronized

和synchronized相比，ReentrantLock用起来会复杂一些。在基本的加锁和解锁上，两者是一样的，所以无特殊情况下，推荐使用sy...]]></description><category></category></item><item><title><![CDATA[redis 实现分布式锁的演进]]></title><link>https://blog.csdn.net/world6/article/details/80389819</link><guid>https://blog.csdn.net/world6/article/details/80389819</guid><author>world6</author><pubDate>Mon, 21 May 2018 11:21:41 +0800</pubDate><description><![CDATA[在分布式系统中，常常会遇到一些要使用分布式锁的业务场景。

比如说：每分钟要执行关闭未支付订单的定时任务，在集群的环境下，如果不做处理，每台服务器都会去执行这个定时任务，显然每个时间段的定时任务只需要执行一次，并不需要每台服务器都去执行，使用分布式锁来控制让单台服务器来执行这个定时任务 势在必行

实现分布式锁的方式有很多，zookeeper，数据库，或者是其它手段都可以，本文着重分析使用

re...]]></description><category></category></item><item><title><![CDATA[集群 跟 分片 有什么区别]]></title><link>https://blog.csdn.net/world6/article/details/80355883</link><guid>https://blog.csdn.net/world6/article/details/80355883</guid><author>world6</author><pubDate>Thu, 17 May 2018 20:00:19 +0800</pubDate><description><![CDATA[我们在谈到  服务器多实例的时候，常常会说到   Tomcat 集群  ；但为什么  谈到  多实例 redis 的时候 没有说 redis 集群 呢？是因为 类似Tomcat 这样的 集群  强调的是  机器提供的 服务 而 redis  这样的 “集群” 强调的是  数据 ，（因为redis 主要是来存数据的嘛）将数据分为一片一片的区域，就称为分片，是不是很形象？所以 redis　集群　一般会...]]></description><category></category></item><item><title><![CDATA[zookeeper的zab协议工作原理之 崩溃恢复模式]]></title><link>https://blog.csdn.net/world6/article/details/79873132</link><guid>https://blog.csdn.net/world6/article/details/79873132</guid><author>world6</author><pubDate>Mon, 09 Apr 2018 22:02:52 +0800</pubDate><description><![CDATA[上篇 zookeeper的zab协议工作原理之 原子广播 介绍了 zookeeper 广播的原理。下篇 来详细的讲解 崩溃恢复模式 的原理一、什么情况下zab协议会进入崩溃恢复模式？   1、当服务器启动时    2、当leader 服务器出现网络中断，崩溃或者重启的情况    3、当集群中已经不存在过半的服务器与Leader服务器保持正常通信。二、zab协议进入崩溃恢复模式会做什么？    1、...]]></description><category></category></item><item><title><![CDATA[zookeeper的zab协议工作原理之原子广播]]></title><link>https://blog.csdn.net/world6/article/details/79862683</link><guid>https://blog.csdn.net/world6/article/details/79862683</guid><author>world6</author><pubDate>Mon, 09 Apr 2018 10:41:57 +0800</pubDate><description><![CDATA[说zab协议之前必须提一下 paxos 协议 paxos协议主要就是如何保证在分布式环网络环境下，各个服务器如何达成一致最终保证数据的一致性问题ZAB协议，基于paxos协议的一个改进。zab协议为分布式协调服务zookeeper专门设计的一种支持崩溃恢复的原子广播协议zookeeper并没有完全采用paxos算法， 而是采用zab Zookeeper atomic broadcast zab协议...]]></description><category></category></item><item><title><![CDATA[zookeeper的选举机制]]></title><link>https://blog.csdn.net/world6/article/details/79857676</link><guid>https://blog.csdn.net/world6/article/details/79857676</guid><author>world6</author><pubDate>Sun, 08 Apr 2018 21:05:57 +0800</pubDate><description><![CDATA[一、Zookeeper选举机制Zookeeper虽然在配置文件中并没有指定master和slave但是，zookeeper工作时，会选出一个节点为leader，其他则为follower下面来聊聊是如何选出leader的。leader选举的算法有三种：leaderElection/AuthFastLeaderElection/FastLeaderElection其中FastLeaderElectio...]]></description><category></category></item><item><title><![CDATA[如何用zookeeper 实现分布式锁]]></title><link>https://blog.csdn.net/world6/article/details/79857491</link><guid>https://blog.csdn.net/world6/article/details/79857491</guid><author>world6</author><pubDate>Sun, 08 Apr 2018 20:48:59 +0800</pubDate><description><![CDATA[一、分布式锁介绍        分布式锁主要用于在分布式环境中保护跨进程、跨主机、跨网络的共享资源实现互斥访问，以达到保证数据的一致性。二、分布式锁设计原理图1、基于排它锁：让所有的客户端（A B C）都在指定的Locks节点下 创建一个同名的节点lock，利用ZK 节点名称的唯一性来做限制， 谁创建成功了谁就获取到了锁，否则就是没有获取到。这种设计比较简单2、基于共享锁：1、在当前节点下创建临时...]]></description><category></category></item><item><title><![CDATA[详解zookeeper的配置文件]]></title><link>https://blog.csdn.net/world6/article/details/79738477</link><guid>https://blog.csdn.net/world6/article/details/79738477</guid><author>world6</author><pubDate>Thu, 29 Mar 2018 10:16:55 +0800</pubDate><description><![CDATA[zoo.cfg配置文件分析tickTime=2000  zookeeper中最小的时间单位长度 （ms） initLimit=10  follower节点启动后与leader节点完成数据同步的时间 syncLimit=5 leader节点和follower节点进行心跳检测的最大延时时间 dataDir=/tmp/zookeeper  表示zookeeper服务器存储快照文件的目录 dataLogD...]]></description><category></category></item><item><title><![CDATA[动物园园长 zookeeper]]></title><link>https://blog.csdn.net/world6/article/details/79710917</link><guid>https://blog.csdn.net/world6/article/details/79710917</guid><author>world6</author><pubDate>Tue, 27 Mar 2018 11:54:51 +0800</pubDate><description><![CDATA[zookeeper是一个开源的分布式协调服务中间件zookeeper能做什么？数据的发布/订阅（配置中心:disconf） 、 负载均衡（dubbo利用了zookeeper机制实现负载均衡） 、命名服务、 master选举(kafka、hadoop、hbase)、分布式队列、分布式锁zookeeper的特性：顺序一致性：从同一个客户端发起的事务请求，最终会严格按照顺序被应用到zookeeper中原...]]></description><category></category></item><item><title><![CDATA[分布式相关基础理论]]></title><link>https://blog.csdn.net/world6/article/details/79710789</link><guid>https://blog.csdn.net/world6/article/details/79710789</guid><author>world6</author><pubDate>Tue, 27 Mar 2018 11:42:54 +0800</pubDate><description><![CDATA[分布式环境下面临的问题：

网络通信：网络本身的不可靠性，因此会涉及到一些网络通信问题

三态：分布式架构里面，除了成功、失败、超时

分布式事务 ：ACID特性

中心化和去中心化：冷备或者热备

经典的CAP/BASE理论

CAP 
C（一致性 Consistency）: 所有节点上的数据，时刻保持一致 
A可用性（Availability）：每个请求都能够收到一个响应，无论响应成功或者失败...]]></description><category></category></item><item><title><![CDATA[什么是Restful]]></title><link>https://blog.csdn.net/world6/article/details/79651884</link><guid>https://blog.csdn.net/world6/article/details/79651884</guid><author>world6</author><pubDate>Thu, 22 Mar 2018 11:45:02 +0800</pubDate><description><![CDATA[Restful 一直都在听，一直都在用，但就是搞不懂什么是restful，因为说不出个所以然出来。

为什么说一直都在用呢，我们随便打开一个大型网站的网址，基本都是 restful 风格的 。比如：http://www.imooc.com/course/programdetail/pid/31

restful有什么用呢？

使用web标准来做一个准则和约束。

RESTful的基本概念 
1.在...]]></description><category></category></item></channel></rss>