<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[ZhiweiChang的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/ZhiweiChang</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; ZhiweiChang]]></copyright><item><title><![CDATA[go垃圾回收机制（三色标记法）& 屏障机制]]></title><link>https://blog.youkuaiyun.com/ZhiweiChang/article/details/134755705</link><guid>https://blog.youkuaiyun.com/ZhiweiChang/article/details/134755705</guid><author>ZhiweiChang</author><pubDate>Sat, 02 Dec 2023 18:14:26 +0800</pubDate><description><![CDATA[为了保证栈的速度，如果为栈上的对象增加插入屏障，会大幅度增加引用对象的性能，所以栈空间不触发插入屏障，堆空间会触发插入屏障，而在回收白色之前会重新遍历扫描一次栈空间，此时添加STW暂停来保护栈，防止外界干扰（有新的白色被黑色添加）；在Go使用的混合写屏障中是不会对栈空间进行写屏障的，栈上的对象在一开始就全部标记为黑色，并且在GC过程中新创建的对象也是黑色的，可能错放但不错杀；全部访问后，会转换为黑色。第三步遍历灰色集合，将灰色对象引用到的对象从白色集合放到灰色集合，之后将此灰色对象放到黑色集合；]]></description><category></category></item><item><title><![CDATA[yac]]></title><link>https://blog.youkuaiyun.com/ZhiweiChang/article/details/88694466</link><guid>https://blog.youkuaiyun.com/ZhiweiChang/article/details/88694466</guid><author>ZhiweiChang</author><pubDate>Wed, 20 Mar 2019 17:29:20 +0800</pubDate><description><![CDATA[Yaconf – 一个高性能的配置管理扩展

本文地址:http://www.laruence.com/2015/06/12/3051.html
这个项目其实不是我新的idea, 这个是我在来微博以后, 第一个优化项目中顺手做的一个小工具, 本身叫做Weibo_Conf. 但是因为Weibo_Conf是属于Weibo扩展的, 里面还有一些其他功能是专门为Weibo定制的. 所以不适合直接开源.
...]]></description><category></category></item><item><title><![CDATA[访问一个URL经历了哪些过程]]></title><link>https://blog.youkuaiyun.com/ZhiweiChang/article/details/84553776</link><guid>https://blog.youkuaiyun.com/ZhiweiChang/article/details/84553776</guid><author>ZhiweiChang</author><pubDate>Mon, 26 Nov 2018 18:03:21 +0800</pubDate><description><![CDATA[从大致上来讲经历了

客户端获取URL - &amp;gt; DNS解析 - &amp;gt; TCP连接 - &amp;gt;发送HTTP请求 - &amp;gt;服务器处理请求 - &amp;gt;返回报文 - &amp;gt;浏览器解析渲染页面 - &amp;gt; TCP断开连接

详细文字讲解！

客户端：

（应用层开始）获取URL，通过负责域名解析的DNS服务获取网址的IP地址，根据HTT协议生成HTTP请求报文（应用层结束）

（传输层...]]></description><category></category></item><item><title><![CDATA[网络协议六]]></title><link>https://blog.youkuaiyun.com/ZhiweiChang/article/details/82586318</link><guid>https://blog.youkuaiyun.com/ZhiweiChang/article/details/82586318</guid><author>ZhiweiChang</author><pubDate>Thu, 27 Sep 2018 11:52:53 +0800</pubDate><description><![CDATA[不同的局域网之间通信需要网关。

静态路由：每个网段都有自己的规则，在路由器中进行保存。

转发网关和net网关

欧洲十国游（转发网关）：路由器内根据一定的规则进行转发。mac进行改变，但是IP不会改变。IP在各个里面是不同的。

玄奘西行：源IP和目标IP相同，在国际上有公共接口。源IP和目标IP在转发的过程中是变化的。

TCP

   tcp进行三次握手的过程中除了上方建立连接的问题，主要...]]></description><category></category></item><item><title><![CDATA[四种隔离级别]]></title><link>https://blog.youkuaiyun.com/ZhiweiChang/article/details/82863591</link><guid>https://blog.youkuaiyun.com/ZhiweiChang/article/details/82863591</guid><author>ZhiweiChang</author><pubDate>Thu, 27 Sep 2018 10:36:36 +0800</pubDate><description><![CDATA[数据库事务的隔离级别有4种，由低到高分别为Read uncommitted 、Read committed 、Repeatable read 、Serializable 。而且，在事务的并发操作中可能会出现脏读，不可重复读，幻读。下面通过事例一一阐述它们的概念与联系。

Read uncommitted

读未提交，顾名思义，就是一个事务可以读取另一个未提交事务的数据。

事例：老板要给程序员发工...]]></description><category></category></item><item><title><![CDATA[elasticsearch3]]></title><link>https://blog.youkuaiyun.com/ZhiweiChang/article/details/82856972</link><guid>https://blog.youkuaiyun.com/ZhiweiChang/article/details/82856972</guid><author>ZhiweiChang</author><pubDate>Wed, 26 Sep 2018 19:01:32 +0800</pubDate><description><![CDATA[document路由算法：shard=hash(routing)%number_of_primary_shards 默认情况下routing默认使用的是_id，也可以在发送请求的时候手动指定（routing value），对应用级别的负载均衡是很有帮助的，对id值进行hash。
	document的增删改查内部实现原理：在主分区和复制分区都已经搞定之后然后向客户端发送客户端。
	
	我们在发送任何...]]></description><category></category></item><item><title><![CDATA[elasticsearch2]]></title><link>https://blog.youkuaiyun.com/ZhiweiChang/article/details/82829961</link><guid>https://blog.youkuaiyun.com/ZhiweiChang/article/details/82829961</guid><author>ZhiweiChang</author><pubDate>Tue, 25 Sep 2018 10:47:24 +0800</pubDate><description><![CDATA[三种元数据

1、_index元数据

（1）代表一个document存放在哪个index中
（2）类似的数据放在一个索引，非类似的数据放不同索引：product index（包含了所有的商品），sales index（包含了所有的商品销售数据），inventory index（包含了所有库存相关的数据）。如果你把比如product，sales，human resource（employee），全...]]></description><category></category></item><item><title><![CDATA[elasticsearch1]]></title><link>https://blog.youkuaiyun.com/ZhiweiChang/article/details/82820333</link><guid>https://blog.youkuaiyun.com/ZhiweiChang/article/details/82820333</guid><author>ZhiweiChang</author><pubDate>Sun, 23 Sep 2018 10:14:26 +0800</pubDate><description><![CDATA[es的特点：

自动的维护数据的分布到多个节点索引的建立，还有搜索请求到多个节点的执行；
	自动维护数据的冗余副本，保证说，一些机器宕机了，不会丢失任何数据；
	封装了更多的高级功能，以给我们提供更多的高级的支持，让我们快速的开发应用，开发更多的复杂的应用：复杂的搜索功能，聚合分析的功能，基于地理位置的搜索。
elasticsearch是关键词    分布式       搜索    数据分析
	e...]]></description><category></category></item><item><title><![CDATA[PHP中的特殊的函数]]></title><link>https://blog.youkuaiyun.com/ZhiweiChang/article/details/82791965</link><guid>https://blog.youkuaiyun.com/ZhiweiChang/article/details/82791965</guid><author>ZhiweiChang</author><pubDate>Fri, 21 Sep 2018 10:35:56 +0800</pubDate><description><![CDATA[ array_reduce(array,myfunction,initial)   发送数组中的每个值到用户自定义的函数，然后进行函数处理，其中第三个参数代表了处理函数的第一次调用的第一个参数，以后第一个参数就会以上一次调用的返回结果为标准进行方法的调用。
	preg_replace_callback ( mixed $pattern , callable $callback , mixed $s...]]></description><category></category></item><item><title><![CDATA[es集群的简单理解]]></title><link>https://blog.youkuaiyun.com/ZhiweiChang/article/details/82797420</link><guid>https://blog.youkuaiyun.com/ZhiweiChang/article/details/82797420</guid><author>ZhiweiChang</author><pubDate>Fri, 21 Sep 2018 10:18:26 +0800</pubDate><description><![CDATA[在我的理解es集群和redis集群在一定程度上是非常想象的，推荐看一下redis设计与实现，挺有帮助的

个人es的体会：

es在分配索引的时候就已经指定了主分片的个数，竹节丝安确定以后不会在进行更改；
	 一个集群中可以有多个节点，但有一个主节点，每个节点可以放不同的分片，每个分片，包括主分片和复制分片。同一个分片的主从分片分配在不同的节点上，这样就避免了一台主机宕机带来的数据丢失的影响；
	...]]></description><category></category></item><item><title><![CDATA[PHP]]></title><link>https://blog.youkuaiyun.com/ZhiweiChang/article/details/82782553</link><guid>https://blog.youkuaiyun.com/ZhiweiChang/article/details/82782553</guid><author>ZhiweiChang</author><pubDate>Thu, 20 Sep 2018 10:35:18 +0800</pubDate><description><![CDATA[转载： http://www.cnblogs.com/sweng

php中容器的理解：

我们先实现一个容器类


			1

			2

			3

			4

			5

			6

			7

			8

			9
			
			
			class Container{

			    public $bindings;

			    public function bind($abst...]]></description><category></category></item><item><title><![CDATA[shell脚本]]></title><link>https://blog.youkuaiyun.com/ZhiweiChang/article/details/82782413</link><guid>https://blog.youkuaiyun.com/ZhiweiChang/article/details/82782413</guid><author>ZhiweiChang</author><pubDate>Thu, 20 Sep 2018 10:26:47 +0800</pubDate><description><![CDATA[shell教程，不错的选择]]></description><category></category></item><item><title><![CDATA[网络协议——tcp和udp]]></title><link>https://blog.youkuaiyun.com/ZhiweiChang/article/details/82665127</link><guid>https://blog.youkuaiyun.com/ZhiweiChang/article/details/82665127</guid><author>ZhiweiChang</author><pubDate>Wed, 12 Sep 2018 18:53:52 +0800</pubDate><description><![CDATA[建立连接：是为了在客户端和服务端维护连接，而建立一定的数据结构来维护双方交互的状态，用这样的数据结构来保证所谓的面向连接的特性。

TCP：提供可交付。通过tcp连接传输的数据，无差错，不丢失，不重复，并且按序到达。发送的是流。拥塞控制，有状态有服务。

UDP：不保证不丢失，不保证按序。基于数据包，一个一个的发，一个一个的收。

UDP的使用场景：

第一：需要资源少，在网络环境比较好的内网上或...]]></description><category></category></item><item><title><![CDATA[网络协议六]]></title><link>https://blog.youkuaiyun.com/ZhiweiChang/article/details/82631096</link><guid>https://blog.youkuaiyun.com/ZhiweiChang/article/details/82631096</guid><author>ZhiweiChang</author><pubDate>Tue, 11 Sep 2018 19:44:11 +0800</pubDate><description><![CDATA[动态路由算法：

第一种：距离矢量算法每个路由都保存着一个路由表，表里面的信息：到目的路由其从哪走，以及到目的路由器的距离；

缺点：1.当一个路由挂掉的时候不能及时得出来，只能试了所有的路由之后才能得出来；

2。每次发送的时候发送的是整个全局路由表。

第二种：链路状态路由：通过每个路由将自己和新路由之间的距离广播出去在每个路由表中都能生成一个路由表。在网路中需要传递消息的时候走适合自己的路由...]]></description><category></category></item><item><title><![CDATA[网络协议五——ping的工作原理]]></title><link>https://blog.youkuaiyun.com/ZhiweiChang/article/details/82500129</link><guid>https://blog.youkuaiyun.com/ZhiweiChang/article/details/82500129</guid><author>ZhiweiChang</author><pubDate>Fri, 07 Sep 2018 17:49:51 +0800</pubDate><description><![CDATA[ping是通过ICMP进行工作的（控制报文协议），封装在ip包里面。

ping中包含的信息：类型字段：对于请求数据包来说该字段为8，顺序号：为了记录连续发送的多个ping的顺序，还有一个时间标识用于判断ping是否超时。

查询报文类型（ping）



还有一种是差错报文（traceroute），根据不同的类型返回不同的值。

第一种：终点不可达；

第二种：源站抑制；

第三种：时间超时；
...]]></description><category></category></item><item><title><![CDATA[kafka的特点]]></title><link>https://blog.youkuaiyun.com/ZhiweiChang/article/details/82497511</link><guid>https://blog.youkuaiyun.com/ZhiweiChang/article/details/82497511</guid><author>ZhiweiChang</author><pubDate>Fri, 07 Sep 2018 15:40:28 +0800</pubDate><description><![CDATA[ 



一个topic中有可以有多个分区。如上图：
	每个分区中保存的消息都是有序的，在每个分区中都有一个offset，在comsume中维护offset。
	分区中的消息不会像其他消息队列一样消息完就丢失，而是将其保存，在指定的过期时间点内进行丢弃。
	分区的特点：首先这使得每个日志的数量不会太大，可以在单个服务上保存。另外每个分区可以单独发布和消费，为并发操作topic提供了一种可能。
	每...]]></description><category></category></item><item><title><![CDATA[kafka]]></title><link>https://blog.youkuaiyun.com/ZhiweiChang/article/details/82497004</link><guid>https://blog.youkuaiyun.com/ZhiweiChang/article/details/82497004</guid><author>ZhiweiChang</author><pubDate>Fri, 07 Sep 2018 15:10:56 +0800</pubDate><description><![CDATA[一、基本概念
介绍
Kafka是一个分布式的、可分区的、可复制的消息系统。它提供了普通消息系统的功能，但具有自己独特的设计。
这个独特的设计是什么样的呢？
首先让我们看几个基本的消息系统术语：
Kafka将消息以topic为单位进行归纳。
将向Kafka topic发布消息的程序成为producers.
将预订topics并消费消息的程序成为consumer.
Kafka以集群的方式运行，可以由一...]]></description><category></category></item><item><title><![CDATA[网络协议四——交换机]]></title><link>https://blog.youkuaiyun.com/ZhiweiChang/article/details/82423938</link><guid>https://blog.youkuaiyun.com/ZhiweiChang/article/details/82423938</guid><author>ZhiweiChang</author><pubDate>Wed, 05 Sep 2018 15:18:46 +0800</pubDate><description><![CDATA[mac（多媒体访问控制）其作用就是在数据链路层利用多路访问解决在网络中谁先发谁后发的问题。

发给谁，谁接受：利用链路层地址，因为在mac层我们记录了源mac地址和目标mac地址，对上游的包进行层层包装，然后在服务端进行层层拆开取得数据内容交给服务器去处理。处理结束后返回一个响应；

数据怎么容错：在mac层有一个CRC（循环容错检测），通过XOR异或算法进行解决来解决网络中的错误；

因为IP会...]]></description><category></category></item><item><title><![CDATA[vim基础命令]]></title><link>https://blog.youkuaiyun.com/ZhiweiChang/article/details/82414938</link><guid>https://blog.youkuaiyun.com/ZhiweiChang/article/details/82414938</guid><author>ZhiweiChang</author><pubDate>Wed, 05 Sep 2018 09:54:40 +0800</pubDate><description><![CDATA[1、移动指令

指令
			功能
			简介
			编者按
		k/j/h/l
			上下左右移动光标
			一般模式下，可以使用【k/j/h/l】代替方向键上下左右移动光标，多次相同移动指令可使用数字+指令执行，如【30j】即代表向下移动光标30次；
			刚开始使用这四个键会很难记、很不适应，但习惯后的确会更方便、更极致；
		Ctrl+f
			向下翻页
			一般模式下，可以使用组合键【C...]]></description><category></category></item><item><title><![CDATA[索引]]></title><link>https://blog.youkuaiyun.com/ZhiweiChang/article/details/82391359</link><guid>https://blog.youkuaiyun.com/ZhiweiChang/article/details/82391359</guid><author>ZhiweiChang</author><pubDate>Tue, 04 Sep 2018 22:45:33 +0800</pubDate><description><![CDATA[聚集索引和非聚集索引的特点：

1、聚集索引。表数据按照索引的顺序来存储的，也就是说索引项的顺序与表中记录的物理顺序一致。对于聚集索引，叶子结点即存储了真实的数据行，不再有另外单独的数据页。 在一张表上最多只能创建一个聚集索引，因为真实数据的物理顺序只能有一种。

2、非聚集索引。表数据存储顺序与索引顺序无关。对于非聚集索引，叶结点包含索引字段值及指向数据页数据行的逻辑指针，其行数量与数据表行数据...]]></description><category></category></item></channel></rss>