<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[xiaoliuliu2050的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/xiaoliuliu2050</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; xiaoliuliu2050]]></copyright><item><title><![CDATA[rabbitmq queue not found]]></title><link>https://blog.youkuaiyun.com/xiaoliuliu2050/article/details/124503331</link><guid>https://blog.youkuaiyun.com/xiaoliuliu2050/article/details/124503331</guid><author>xiaoliuliu2050</author><pubDate>Fri, 29 Apr 2022 20:34:25 +0800</pubDate><description><![CDATA[queue 在哪个节点创建，就属于哪个节点，当这个节点故障的时候，客户端会重试去连接其他节点，这个时候 其他节点会提示 queue not found due to timeout

怎么办？ 镜像集群可以解决这个问题。



z记一个rabbitmq异常问题定位： Exception (404) Reason: "NOT_FOUND - no queue 'xxx' in vhost '/'_蔷薇枝的博客-优快云博客

php rabbitmq 集群,rabbitmq分布式集群学习_weixin...]]></description><category></category></item><item><title><![CDATA[MongoDB kill 慢线程]]></title><link>https://blog.youkuaiyun.com/xiaoliuliu2050/article/details/118176991</link><guid>https://blog.youkuaiyun.com/xiaoliuliu2050/article/details/118176991</guid><author>xiaoliuliu2050</author><pubDate>Thu, 24 Jun 2021 09:36:21 +0800</pubDate><description><![CDATA[1 查看当前进程的操作
db.currentOp();
{ inprog: [
{ "opid" : 18 , "op" : "query" , "ns" : "mydb.votes" ,"query" : "{ score : 1.0 }" , "inLock" : 1 } 
]}
字段:

opid - 一个增长的操作数.用于killOp().
op - 操作类型 (查询, 更新, 等.)
ns - 操作的命名空间 (数据库+ 集合名称)
query - 如果操作是个查询，显示条件。
lockTy...]]></description><category></category></item><item><title><![CDATA[集群和分布式的概念：]]></title><link>https://blog.youkuaiyun.com/xiaoliuliu2050/article/details/117450222</link><guid>https://blog.youkuaiyun.com/xiaoliuliu2050/article/details/117450222</guid><author>xiaoliuliu2050</author><pubDate>Tue, 01 Jun 2021 19:56:45 +0800</pubDate><description><![CDATA[所以，你可以看到，集群主要描述了一个集合，一些相似的东西，提供相似的功能，这个就叫做集群。而分布式，主要是将一个东西，分发给一堆相似的内容或东西。集群描述了受众的状态，也就是处理机不是单一体，是一个相似的个体组成的群体。分布式描述了源头的处理方式，是将单一源分发给多个处理机，而非单一处理机进行处理。



当我们讲一个集群，我们着重描述这个处理机的静态状态，强调个体和群体之间的联系。

当我们讲分布式系统，我们着重讲这个处理机的动态状态，强调请求和处理直接的分发状况。


...]]></description><category></category></item><item><title><![CDATA[线程数 任务 cpu使用率的关系]]></title><link>https://blog.youkuaiyun.com/xiaoliuliu2050/article/details/109521116</link><guid>https://blog.youkuaiyun.com/xiaoliuliu2050/article/details/109521116</guid><author>xiaoliuliu2050</author><pubDate>Thu, 05 Nov 2020 22:14:57 +0800</pubDate><description><![CDATA[单线程处理批量任务的时候会很慢，这个时候为了节省时间，考虑用多线程 处理任务。

单条任务耗时的原因？

1 可能是因为 io 

2 也可能是因为逻辑多，cpu需要慢慢执行。

如果单条任务是io 型任务，因为每个任务的io时间较长，需要cpu的时间较短，所以cpu有好多时间是空闲的，所以可以让一个cpu 同时处理10多个任务（线程间不断切换），即考虑增加大量线程 cpu个数*10 ,甚至不断增加线程数，那每个cpu需要处理的线程就会更多，那cpu就会不断的在处理线程的任务，空闲时间越来越少，则cpu..]]></description><category></category></item><item><title><![CDATA[httpsUrlConnection 如何设置的默认sslcontext和 hostnameverifier?]]></title><link>https://blog.youkuaiyun.com/xiaoliuliu2050/article/details/109390595</link><guid>https://blog.youkuaiyun.com/xiaoliuliu2050/article/details/109390595</guid><author>xiaoliuliu2050</author><pubDate>Mon, 02 Nov 2020 20:55:40 +0800</pubDate><description><![CDATA[https请求接口的时候java是什么时候默认添加ssl 上下文的？ HttpURLConnection 子类HttpsURLConnection 子类HttpsURLConnectionImpl
1 url.openConnection()) 
2 https 的Handler 调用
protected URLConnection openConnection(URL var1) throws IOException {
    return this.openConnection(var1, (Pro.]]></description><category></category></item><item><title><![CDATA[zookeeper监控的原理和使用]]></title><link>https://blog.youkuaiyun.com/xiaoliuliu2050/article/details/109299420</link><guid>https://blog.youkuaiyun.com/xiaoliuliu2050/article/details/109299420</guid><author>xiaoliuliu2050</author><pubDate>Mon, 26 Oct 2020 21:29:49 +0800</pubDate><description><![CDATA[1、Watcher 机制：

　　Zookeeper 允许客户端向服务端的某个 Znode 注册一个 Watcher 监听，当服务端的一些指定事件触发了这个 Watcher，服务端会向指定客户端发送一个事件通知来实现分布式的通知功能，然后客户端根据 Watcher 通知状态和事件类型做出业务上的改变。

工作机制：（1）客户端注册 watcher（2）服务端处理 watcher（3）客户端回调 watcher

2、Watcher 特性：

（1）一次性无论是服务端还是客户端，一旦一个 Watcher 被 ]]></description><category></category></item><item><title><![CDATA[bson json简介]]></title><link>https://blog.youkuaiyun.com/xiaoliuliu2050/article/details/108407379</link><guid>https://blog.youkuaiyun.com/xiaoliuliu2050/article/details/108407379</guid><author>xiaoliuliu2050</author><pubDate>Fri, 04 Sep 2020 16:50:23 +0800</pubDate><description><![CDATA[BSON和JSON的区别

BSON

BSON是由10gen开发的一个数据格式，目前主要用于MongoDB中，是MongoDB的数据存储格式。BSON基于JSON格式，选择JSON进行改造的原因主要是JSON的通用性及JSON的schemaless的特性。 按照定义性来说： BSON( Binary Serialized Document Format) 是一种二进制形式的存储格式，采用了类似于 C 语言结构体的名称、对表示方法，支持内嵌的文档对象和数组对象，具有轻量性、可遍历性、高效性的特点，可以有效描]]></description><category></category></item><item><title><![CDATA[泛型与反射:type接口来历及子接口]]></title><link>https://blog.youkuaiyun.com/xiaoliuliu2050/article/details/108322985</link><guid>https://blog.youkuaiyun.com/xiaoliuliu2050/article/details/108322985</guid><author>xiaoliuliu2050</author><pubDate>Mon, 31 Aug 2020 15:55:19 +0800</pubDate><description><![CDATA[反射相关接口



下面就把Type的来龙去脉彻底弄清楚

Type

Type是所有类型的父接口, 如原始类型(raw types,对应Class)、 参数化类型(parameterized types, 对应ParameterizedType)、 数组类型(array types,对应GenericArrayType)、 类型变量(type variables, 对应TypeVariable)和基本(原生)类型(primitive types, 对应Class), 子接口有ParameterizedTy]]></description><category></category></item><item><title><![CDATA[fastjson]]></title><link>https://blog.youkuaiyun.com/xiaoliuliu2050/article/details/108277571</link><guid>https://blog.youkuaiyun.com/xiaoliuliu2050/article/details/108277571</guid><author>xiaoliuliu2050</author><pubDate>Fri, 28 Aug 2020 13:41:03 +0800</pubDate><description><![CDATA[GitHub地址 ：https://github.com/alibaba/fastjson

fastjson是阿里巴巴的开源JSON解析库，它可以解析JSON格式的字符串，支持将Java Bean序列化为JSON字符串，也可以从JSON字符串反序列化到JavaBean。



fastjson的API十分简洁。


String text = JSON.toJSONString(obj); //序列化
VO vo = JSON.parseObject("{...}", VO.class); //反序列化.]]></description><category></category></item><item><title><![CDATA[Jackson,fastjson Gson比较]]></title><link>https://blog.youkuaiyun.com/xiaoliuliu2050/article/details/108277540</link><guid>https://blog.youkuaiyun.com/xiaoliuliu2050/article/details/108277540</guid><author>xiaoliuliu2050</author><pubDate>Fri, 28 Aug 2020 12:57:59 +0800</pubDate><description><![CDATA[本篇文章只是在理论上讨论jackson fastjson 以及Gson 之间的比较，不涉及代码测试，写这篇文章主要是看到了一篇该方面文章，然后当作一次记录，里面加了少部分的其他内容，其中大部分内容直接使用的引用的博客。


jackson：反射+反射缓存、良好的stream支持、高效的内存管理
	fastjson：
	jvm虚拟机：通过ASM库运行时生成parser字节码，支持的field不能超过200个。参考：FastJson使用ASM反序列化。
		android虚拟机：反射的方式。
	
	gson：反]]></description><category></category></item><item><title><![CDATA[JDK、CGLIB、Javassist和ASM的动态代理使用对比]]></title><link>https://blog.youkuaiyun.com/xiaoliuliu2050/article/details/108275324</link><guid>https://blog.youkuaiyun.com/xiaoliuliu2050/article/details/108275324</guid><author>xiaoliuliu2050</author><pubDate>Fri, 28 Aug 2020 10:50:05 +0800</pubDate><description><![CDATA[动态代理是指在运行时，动态生成代理类。正如标题所示，能够提供动态代理的方式有很多。既然选择这么有很多，那么如何选择会更好呢？

带着这个疑问，我找到了Dubbo的作者——梁飞大神的一篇文章。文章中对四种方式都做了性能测试，从当时测试的结果来看，Javassist成了最好的选择。

不过时间过了那么久，现在在JDK 1.8上，根据上面的测试用例测试，会发现JDK动态代理和CGLIB动态代理的性能提升了很多。

测试的版本信息如下：
1.8.0_201，cglib-3.2.5，javassist-3.12.1.]]></description><category></category></item><item><title><![CDATA[java序列化框架对比]]></title><link>https://blog.youkuaiyun.com/xiaoliuliu2050/article/details/106414609</link><guid>https://blog.youkuaiyun.com/xiaoliuliu2050/article/details/106414609</guid><author>xiaoliuliu2050</author><pubDate>Thu, 28 May 2020 22:20:55 +0800</pubDate><description><![CDATA[二进制序列化框架


	jdk 自带对象序列化类ObjectInput(Out)Stream
	
1.无法跨语言。这应该是java序列化最致命的问题了。由于java序列化是java内部私有的协议，其他语言不支持，导致别的语言无法反序列化，这严重阻碍了它的应用。
2.序列后的码流太大。java序列化的大小是二进制编码的5倍多！
3.序列化性能太低。java序列化的性能只有二进制编码的6.17倍，可见java序列化性能实在太差了。


	google的Protobuf
	
1支持java,C++,Python三]]></description><category></category></item><item><title><![CDATA[SpringBoot整合RPC框架---Thrift]]></title><link>https://blog.youkuaiyun.com/xiaoliuliu2050/article/details/106414378</link><guid>https://blog.youkuaiyun.com/xiaoliuliu2050/article/details/106414378</guid><author>xiaoliuliu2050</author><pubDate>Thu, 28 May 2020 21:56:44 +0800</pubDate><description><![CDATA[转载自：https://blog.youkuaiyun.com/lupengfei1009/article/details/100934794



什么是Thrift


Thrift是一种接口描述语言和二进制通讯协议，它被用来定义和创建跨语言的服务。它被当作一个远程过程调用（RPC）框架来使用，是由Facebook为“大规模跨语言服务开发”而开发的。它通过一个代码生成引擎联合了一个软件栈，来创建不同程度的、无缝的跨平台高效服务，可以使用C#、C++（基于POSIX兼容系统）、Cappuccino、Cocoa、De.]]></description><category></category></item><item><title><![CDATA[thrift rpc 框架的安装和使用]]></title><link>https://blog.youkuaiyun.com/xiaoliuliu2050/article/details/106413804</link><guid>https://blog.youkuaiyun.com/xiaoliuliu2050/article/details/106413804</guid><author>xiaoliuliu2050</author><pubDate>Thu, 28 May 2020 21:27:31 +0800</pubDate><description><![CDATA[转载自https://www.cnblogs.com/newboys/p/9366762.html



什么是thrift?

　　简单来说,是Facebook公布的一款开源跨语言的RPC框架.

　　那么问题来了.

　　什么是RPC框架?

　　　　RPC全称为Remote Procedure Call,意为远程过程调用.

　　　　假设有两台服务器A,B.A服务器上部署着一个应用a,B服务器上部署着一个应用b,现在a希望能够调用b应用的某个函数(方法),但是二者不在同一个进程内,不能直接调用,就..]]></description><category></category></item><item><title><![CDATA[protobuf 序列化框架]]></title><link>https://blog.youkuaiyun.com/xiaoliuliu2050/article/details/106412230</link><guid>https://blog.youkuaiyun.com/xiaoliuliu2050/article/details/106412230</guid><author>xiaoliuliu2050</author><pubDate>Thu, 28 May 2020 20:47:42 +0800</pubDate><description><![CDATA[protobuf 是Google 提供的一种序列化框架

1 它定义了一种文件类型.proto ，定义了文件格式。

2 实现了把以上格式文件转化为不同语言文件的编译器。


$ protoc --java_out=${OUTPUT_DIR} path/to/your/proto/file


3 实现了不同语言的客户端jar包。（编译出的合成类或者文件再jar包里才有，如果不引入jar 包，编译后的文件无法使用。）


&lt;dependency&gt;
  &lt;groupId&gt;com.g..]]></description><category></category></item><item><title><![CDATA[curl -w 参数详解]]></title><link>https://blog.youkuaiyun.com/xiaoliuliu2050/article/details/105851656</link><guid>https://blog.youkuaiyun.com/xiaoliuliu2050/article/details/105851656</guid><author>xiaoliuliu2050</author><pubDate>Wed, 29 Apr 2020 23:44:13 +0800</pubDate><description><![CDATA[通过CURL命令可以方便的查询各种http请求的问题，-w参数对于我们诊断问题非常重要，以下是-w参数对应的一些变量以及对应的解释：

url_effective 最终获取的url地址，尤其是当你指定给curl的地址存在301跳转，且通过-L继续追踪的情形。
http_code http状态码，如200成功,301转向,404未找到,500服务器错误等。(The numerical respons...]]></description><category></category></item><item><title><![CDATA[mongo 连接数不够怎么办？]]></title><link>https://blog.youkuaiyun.com/xiaoliuliu2050/article/details/105008179</link><guid>https://blog.youkuaiyun.com/xiaoliuliu2050/article/details/105008179</guid><author>xiaoliuliu2050</author><pubDate>Sat, 21 Mar 2020 13:10:34 +0800</pubDate><description><![CDATA[MongoDB 提示超过连接数 一般都会想到增加连接数

其实我们换个思路应该想一下，我们的服务 在从MongoDB 里 存取数据是不是太慢了，导致MongoDB线程被沾满了

所以才出现这个问题

所以 问题就变成了，如何优化MongoDB的查询

1 查找慢查询MongoDB 查询

2 建立索引。



https://blog.youkuaiyun.com/xiaoliuliu2050/arti...]]></description><category></category></item><item><title><![CDATA[hession 源码解析 自定义序列化器]]></title><link>https://blog.youkuaiyun.com/xiaoliuliu2050/article/details/104054112</link><guid>https://blog.youkuaiyun.com/xiaoliuliu2050/article/details/104054112</guid><author>xiaoliuliu2050</author><pubDate>Mon, 20 Jan 2020 17:03:28 +0800</pubDate><description><![CDATA[背景
 最近在处理一个hessian的反序列化问题时，因为服务端使用了pojo bean中多了一个enum属性，导致客户端在反序列化时疯狂的在打印日志。警告说找不到对应的enum class，因为项目中本身是设置了log4j的根输出为一个文件。

 比较奇怪的是，hessian对应的日志输出全都打印到了控制台(虽然我们对console进行了重定向输出)，导致对应的文件达到几百MB。无...]]></description><category></category></item><item><title><![CDATA[Hessian2序列化问题]]></title><link>https://blog.youkuaiyun.com/xiaoliuliu2050/article/details/104054011</link><guid>https://blog.youkuaiyun.com/xiaoliuliu2050/article/details/104054011</guid><author>xiaoliuliu2050</author><pubDate>Mon, 20 Jan 2020 16:58:08 +0800</pubDate><description><![CDATA[原文链接：https://blog.youkuaiyun.com/u011116672/article/details/78875504



问题

定义了一个接口，返回值为Map&lt;String, Byte&gt;，consumer收到结果后，使用Byte value = map.get(key)获取结果，抛出了如下类型转换异常：
如下:
java.lang.ClassCastException: ...]]></description><category></category></item><item><title><![CDATA[hession2序列化]]></title><link>https://blog.youkuaiyun.com/xiaoliuliu2050/article/details/104052700</link><guid>https://blog.youkuaiyun.com/xiaoliuliu2050/article/details/104052700</guid><author>xiaoliuliu2050</author><pubDate>Mon, 20 Jan 2020 16:04:45 +0800</pubDate><description><![CDATA[1引入Hessian依赖


&lt;!--hessian--&gt;
    &lt;dependency&gt;
      &lt;groupId&gt;com.caucho&lt;/groupId&gt;
      &lt;artifactId&gt;hessian&lt;/artifactId&gt;
      &lt;version&gt;4.0.38&lt;/version&g...]]></description><category></category></item></channel></rss>