<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[JackLiu16的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/JackLiu16</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; JackLiu16]]></copyright><item><title><![CDATA[openfalcon transfer多重备份]]></title><link>https://blog.youkuaiyun.com/JackLiu16/article/details/106611031</link><guid>https://blog.youkuaiyun.com/JackLiu16/article/details/106611031</guid><author>JackLiu16</author><pubDate>Mon, 08 Jun 2020 01:55:03 +0800</pubDate><description><![CDATA[// 将数据 打入 某个Graph的发送缓存队列, 具体是哪一个Graph 由一致性哈希 决定
func Push2GraphSendQueue(items []*cmodel.MetaData) {
	cfg := g.Config().Graph

	for _, item := range items {
		graphItem, err := convert2GraphItem(item)
		if err != nil {
			log.Println("E:", err)
			continu.]]></description><category></category></item><item><title><![CDATA[golang append及slice（len、cap）注意点]]></title><link>https://blog.youkuaiyun.com/JackLiu16/article/details/104766014</link><guid>https://blog.youkuaiyun.com/JackLiu16/article/details/104766014</guid><author>JackLiu16</author><pubDate>Tue, 10 Mar 2020 01:44:50 +0800</pubDate><description><![CDATA[https://ask.youkuaiyun.com/questions/1057589#answer_form



1、关于切片

切片拥有长度和容量。

切片的长度是它所包含的元素个数。

切片的容量是从它的第一个元素开始数，到其底层数组元素末尾的个数。

切片 s 的长度和容量可通过表达式 len(s) 和 cap(s) 来获取。

来自 &lt;https://blog.youkuaiyun.com/u0134...]]></description><category></category></item><item><title><![CDATA[CPU节能模式导致linux操作系统宕机的解决办法]]></title><link>https://blog.youkuaiyun.com/JackLiu16/article/details/102292696</link><guid>https://blog.youkuaiyun.com/JackLiu16/article/details/102292696</guid><author>JackLiu16</author><pubDate>Mon, 07 Oct 2019 10:32:19 +0800</pubDate><description><![CDATA[有台HP DL380 G6服务器，安装有redhat linux as5.6 64位操作系统，安装好操作系统后，服务器有时出现宕机现象，每次重启后都恢复正常，经查看日志发现有CPU frequency相关的信息，根据该信息可以看出CPU不支持频率调整，需要设置“CPUFREQ_ENABLED=no”和“SUSPEND2RAM_FORCE=yes”的参数。

经过分析可以看出宕机现象是由服务器上CP...]]></description><category></category></item><item><title><![CDATA[最坏的设计 写最合理的程序]]></title><link>https://blog.youkuaiyun.com/JackLiu16/article/details/100005679</link><guid>https://blog.youkuaiyun.com/JackLiu16/article/details/100005679</guid><author>JackLiu16</author><pubDate>Wed, 21 Aug 2019 23:00:40 +0800</pubDate><description><![CDATA[我发现我最前面的socket、2pc系列的代码式博文，没有什么评论和推荐，这直接导致我不再想写一些更深入一点的代码式博文了。还是写写这种乱七八糟的博文吧，这种的看起来比较受欢迎。

   拿前一段时间比较热门的出行类app(滴滴，快的等)来举例说明，用最坏的设计，写最合理的程序。从另一个角度，来看程序设计。



   当一个乘客，设置好了路线的起点和终点，并点击了叫车以后，服务器...]]></description><category></category></item><item><title><![CDATA[RocketMQ事务消息实现分析]]></title><link>https://blog.youkuaiyun.com/JackLiu16/article/details/97574475</link><guid>https://blog.youkuaiyun.com/JackLiu16/article/details/97574475</guid><author>JackLiu16</author><pubDate>Sat, 27 Jul 2019 23:53:55 +0800</pubDate><description><![CDATA[今天花了点时间看了下具体的实现内容，下面是简单的总结。

RocketMQ事务消息概要

通过冯嘉发布的《RocketMQ 4.3正式发布，支持分布式事务》一文可以看到RocketMQ采用了2PC的方案来提交事务消息，同时增加一个补偿逻辑来处理二阶段超时或者失败的消息。



这张图说明了事务消息的大致方案，分为两个逻辑：正常事务消息的发送及提交、事务消息的补偿流程

事务消息发送及提交：

发送...]]></description><category></category></item><item><title><![CDATA[MySQL--索引条件下推优化]]></title><link>https://blog.youkuaiyun.com/JackLiu16/article/details/97449906</link><guid>https://blog.youkuaiyun.com/JackLiu16/article/details/97449906</guid><author>JackLiu16</author><pubDate>Sat, 27 Jul 2019 01:54:00 +0800</pubDate><description><![CDATA[http://blog.163.com/li_hx/blog/static/1839914132015782821512/





一 什么是“索引条件下推”





“索引条件下推”，称为Index Condition Pushdown (ICP)，这是MySQL提供的用某一个索引对一个特定的表从表中获取元组”，注意我们这里特意强调了“一个”，这是因为这样的索引优化不是用于多表连接...]]></description><category></category></item><item><title><![CDATA[【GC分析】Java GC日志查看]]></title><link>https://blog.youkuaiyun.com/JackLiu16/article/details/97178136</link><guid>https://blog.youkuaiyun.com/JackLiu16/article/details/97178136</guid><author>JackLiu16</author><pubDate>Wed, 24 Jul 2019 22:36:27 +0800</pubDate><description><![CDATA[Java中的GC有哪几种类型？




			参数
			
			
			描述
			
		
			UseSerialGC
			
			
			虚拟机运行在Client模式的默认值，打开此开关参数后，

			使用Serial+Serial Old收集器组合进行垃圾收集。
			
		
			UseParNewGC
			
			
			打开此开关参数后，使用ParNew+Serial Old...]]></description><category></category></item><item><title><![CDATA[Golang直接操作共享内存]]></title><link>https://blog.youkuaiyun.com/JackLiu16/article/details/97174776</link><guid>https://blog.youkuaiyun.com/JackLiu16/article/details/97174776</guid><author>JackLiu16</author><pubDate>Wed, 24 Jul 2019 22:06:19 +0800</pubDate><description><![CDATA[前言

故事起源于要搭一个高性能的日志中心。当然使用了elk这一套。但是，对于logstash来说，它主要使用的是文件日志的方式了捕捉log。而写文件日志的话会非常慢。对于实时日志要处理滚动的日志更是这样，每次检查是否需要流动日志，然后打开日志，然后写入，然后关闭，当然这中间可以优化。这一切都是那么慢，发起了n个系统调用，硬盘寻道等。这时候想到了用共享内存来通信。

共享内存的基本知识

要使用共...]]></description><category></category></item><item><title><![CDATA[golang语言并发与并行——goroutine和channel的详细理解（一）]]></title><link>https://blog.youkuaiyun.com/JackLiu16/article/details/92444739</link><guid>https://blog.youkuaiyun.com/JackLiu16/article/details/92444739</guid><author>JackLiu16</author><pubDate>Mon, 17 Jun 2019 00:15:21 +0800</pubDate><description><![CDATA[如果不是我对真正并行的线程的追求，就不会认识到Go有多么的迷人。

Go语言从语言层面上就支持了并发，这与其他语言大不一样，不像以前我们要用Thread库 来新建线程，还要用线程安全的队列库来共享数据。

以下是我入门的学习笔记。

Go语言的goroutines、信道和死锁

goroutine

Go语言中有个概念叫做goroutine, 这类似我们熟知的线程，但是更轻。

以下的程序，我们串...]]></description><category></category></item><item><title><![CDATA[Go语言interface详解]]></title><link>https://blog.youkuaiyun.com/JackLiu16/article/details/92440421</link><guid>https://blog.youkuaiyun.com/JackLiu16/article/details/92440421</guid><author>JackLiu16</author><pubDate>Sun, 16 Jun 2019 23:21:45 +0800</pubDate><description><![CDATA[出处：https://www.cnblogs.com/mafeng/p/6208014.html

interface

Go语言里面设计最精妙的应该算interface，它让面向对象，内容组织实现非常的方便，当你看完这一章，你就会被interface的巧妙设计所折服。

什么是interface

简单的说，interface是一组method的组合，我们通过interface来定义对象的一组行...]]></description><category></category></item><item><title><![CDATA[[Go语言]从Docker源码学习Go——function和method]]></title><link>https://blog.youkuaiyun.com/JackLiu16/article/details/92435931</link><guid>https://blog.youkuaiyun.com/JackLiu16/article/details/92435931</guid><author>JackLiu16</author><pubDate>Sun, 16 Jun 2019 22:28:26 +0800</pubDate><description><![CDATA[function和method关系

method是针对某一类型定义的function，

function可以单独调用，method必须针对某一类型的实例进行调用


//function 调用方式
packageName.FuncName()

//method 调用方式
var t packageName.Type
t.MethodName()

源码




func (cli *Dock...]]></description><category></category></item><item><title><![CDATA[Java高并发，如何解决，什么方式解决]]></title><link>https://blog.youkuaiyun.com/JackLiu16/article/details/91410372</link><guid>https://blog.youkuaiyun.com/JackLiu16/article/details/91410372</guid><author>JackLiu16</author><pubDate>Tue, 11 Jun 2019 00:59:14 +0800</pubDate><description><![CDATA[出处：https://www.cnblogs.com/lr393993507/p/5909804.html

对于我们开发的网站，如果网站的访问量非常大的话，那么我们就需要考虑相关的并发访问问题了。而并发问题是绝大部分的程序员头疼的问题，

但话又说回来了，既然逃避不掉，那我们就坦然面对吧~今天就让我们一起来研究一下常见的并发和同步吧。

为了更好的理解并发和同步，我们需要先明白两个重要的概念:同...]]></description><category></category></item><item><title><![CDATA[使用MySQL Router实现高可用、负载均衡、读写分离的详细教程]]></title><link>https://blog.youkuaiyun.com/JackLiu16/article/details/91325552</link><guid>https://blog.youkuaiyun.com/JackLiu16/article/details/91325552</guid><author>JackLiu16</author><pubDate>Sat, 08 Jun 2019 12:21:31 +0800</pubDate><description><![CDATA[一、MySQL Router简介

MySQL Router是MySQL官方提供的一个轻量级中间件，可以在应用程序与MySQL服务器之间提供透明的路由方式。主要用以解决MySQL主从库集群的高可用、负载均衡、易扩展等问题。Router可以与MySQL Fabric无缝连接，允许Fabric存储和管理用于路由的高可用数据库服务器组，使管理MySQL服务器组更加简单。

MySQL Router是一个...]]></description><category></category></item><item><title><![CDATA[Graylog日志监控系统安装配置]]></title><link>https://blog.youkuaiyun.com/JackLiu16/article/details/91321488</link><guid>https://blog.youkuaiyun.com/JackLiu16/article/details/91321488</guid><author>JackLiu16</author><pubDate>Sat, 08 Jun 2019 11:57:15 +0800</pubDate><description><![CDATA[在公司里面一直负责整个公司的监控系统，主要包括底层服务器的硬件监控、系统层面的监控、网络设备的监控、中间件和应用层面的监控等。虽然Zabbix也提供对日志监控的方案，但由于日志量、可视化、报表统计等方面的原因，需要一款专业的日志监控系统来做这件事。我对比过ELK、商业日志工具Splunk和Graylog，后面选择了Graylog。Graylog简单说就是一个开源的日志聚合、分析、审计、展现和预警工...]]></description><category></category></item><item><title><![CDATA[浅谈Java中的equals和==]]></title><link>https://blog.youkuaiyun.com/JackLiu16/article/details/90463175</link><guid>https://blog.youkuaiyun.com/JackLiu16/article/details/90463175</guid><author>JackLiu16</author><pubDate>Thu, 23 May 2019 01:11:49 +0800</pubDate><description><![CDATA[　在初学Java时，可能会经常碰到下面的代码：


1 String str1 = new String("hello");
2 String str2 = new String("hello");
3         
4 System.out.println(str1==str2);
5 System.out.println(str1.equals(str2));

　　为什么第4行和第5行的...]]></description><category></category></item><item><title><![CDATA[同为框架，Struts2和SpringMVC比较的区别！]]></title><link>https://blog.youkuaiyun.com/JackLiu16/article/details/90339543</link><guid>https://blog.youkuaiyun.com/JackLiu16/article/details/90339543</guid><author>JackLiu16</author><pubDate>Sun, 19 May 2019 10:05:39 +0800</pubDate><description><![CDATA[Struts2和SpringMVC是比较流行的MVC框架，二者的工作流程大体相似，从下面两张图就可以看出。，

SpringMVC工作流程图





图二





SpringMVC的工作流程描述

1. 用户向服务器发送请求，请求被Spring前端控制Servelt DispatcherServlet捕获；

2.DispatcherServlet对请求URL进行解析...]]></description><category></category></item><item><title><![CDATA[一个接口有多个实现类，当调用接口中的方法时，如何判定用的是哪个实现类]]></title><link>https://blog.youkuaiyun.com/JackLiu16/article/details/90115428</link><guid>https://blog.youkuaiyun.com/JackLiu16/article/details/90115428</guid><author>JackLiu16</author><pubDate>Sat, 11 May 2019 21:33:55 +0800</pubDate><description><![CDATA[一、简单例子：

1.直接new一个实例，这样肯定知道用的哪个实例
2.定义接口类型的变量，用某个实例去初始化。。。这样也是肯定知道用的哪个实例

一般我们用第二种方式有一个好处，如果以后要改动，那么只需要修改其引用的实例,改动较少!

举个例子：A接口，A1，A2，A3实现A接口，有一个eat方法，A1：吃饭,A2：吃鱼，A3：吃肉

需要得到"吃肉"，那么Aa=newA3();
...]]></description><category></category></item><item><title><![CDATA[oracle常见等待事件]]></title><link>https://blog.youkuaiyun.com/JackLiu16/article/details/89629280</link><guid>https://blog.youkuaiyun.com/JackLiu16/article/details/89629280</guid><author>JackLiu16</author><pubDate>Sun, 28 Apr 2019 01:23:27 +0800</pubDate><description><![CDATA[oracle常见等待事件。

一．等待事件的相关知识：

1.1 等待事件主要可以分为两类，即空闲(IDLE)等待事件和非空闲(NON-IDLE)等待事件。

1). 空闲等待事件指ORACLE正等待某种工作，在诊断和优化数据库的时候，不用过多注意这部分事件。

2). 非空闲等待事件专门针对ORACLE的活动，指数据库任务或应用运行过程中发生的等待，这些等待事件是在调整数据库的时候需要关注与研究...]]></description><category></category></item><item><title><![CDATA[ORACLE编译失效对象小结]]></title><link>https://blog.youkuaiyun.com/JackLiu16/article/details/89626404</link><guid>https://blog.youkuaiyun.com/JackLiu16/article/details/89626404</guid><author>JackLiu16</author><pubDate>Sun, 28 Apr 2019 00:46:55 +0800</pubDate><description><![CDATA[在日常数据库维护过程中，我们会发现数据库中一些对象（包Package、存储过程Procedure、函数Function、视图View、同义词.....）会失效,呈现无效状态（INVALID）。有时候需要定期检查数据库中存在哪些失效对象，对于存在异常的对象需要重新编译，有些自动失效的对象，一般会在下次调用的时候，会被重新编译，所以这些不需要人工干预。那么为什么对象突然会失效呢？又如何快速、高效的编译...]]></description><category></category></item><item><title><![CDATA[vue+node+webpack搭建环境]]></title><link>https://blog.youkuaiyun.com/JackLiu16/article/details/89054144</link><guid>https://blog.youkuaiyun.com/JackLiu16/article/details/89054144</guid><author>JackLiu16</author><pubDate>Sat, 06 Apr 2019 12:24:30 +0800</pubDate><description><![CDATA[出处：https://www.cnblogs.com/yinyut/p/7783561.html

http://www.runoob.com/nodejs/nodejs-install-setup.html

https://www.imooc.com/learn/935

https://www.imooc.com/video/14185

https://webpack.js.org/

一...]]></description><category></category></item></channel></rss>