博客园 - ZimZz
uuid:6cbd1ba2-f883-4c34-aed1-30dde64a3a3e;id=677018
2019-08-30T07:02:12Z
ZimZz
https://www.cnblogs.com/zemliu/
feed.cnblogs.com
https://www.cnblogs.com/zemliu/p/4423786.html
Netty 的 inbound 与 outbound, 以及 InboundHandler 的 channelInactive 与 OutboundHandler 的 close - ZimZz
先看一个例子.有一个简单 Serverpublic class SimpleServer { public static void main(String[] args) throws Exception { EventLoopGroup bossGroup = new NioE...
2015-04-13T17:35:00Z
2015-04-13T17:35:00Z
ZimZz
https://www.cnblogs.com/zemliu/
【摘要】先看一个例子.有一个简单 Serverpublic class SimpleServer { public static void main(String[] args) throws Exception { EventLoopGroup bossGroup = new NioE... <a href="https://www.cnblogs.com/zemliu/p/4423786.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/zemliu/p/4396297.html
Trie / Radix Tree / Suffix Tree - ZimZz
Trie (字典树)"A", "to", "tea", "ted", "ten", "i", "in", "inn" 这些单词组成的字典树.Radix Tree (基数树)基数树与字典树的区别在于基数树将单词压缩了, 节点变得更少Suffix Tree (后缀树)单词 "BANANA" 的后缀树. ...
2015-04-06T10:11:00Z
2015-04-06T10:11:00Z
ZimZz
https://www.cnblogs.com/zemliu/
【摘要】Trie (字典树)"A", "to", "tea", "ted", "ten", "i", "in", "inn" 这些单词组成的字典树.Radix Tree (基数树)基数树与字典树的区别在于基数树将单词压缩了, 节点变得更少Suffix Tree (后缀树)单词 "BANANA" 的后缀树. ... <a href="https://www.cnblogs.com/zemliu/p/4396297.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/zemliu/p/4337660.html
布隆过滤器 - ZimZz
参照 :http://billmill.org/bloomfilter-tutorial/简介布隆过滤器是一个用来判断某元素是否在全集中的工具.实际上它是一个有 m 个槽的位图, 他拥有 k 个 hash 函数, 每个元素进来的时候会通过 k 个 hash 函数映射到任意 k 个槽中, 并将槽置为 ...
2015-03-14T07:48:00Z
2015-03-14T07:48:00Z
ZimZz
https://www.cnblogs.com/zemliu/
【摘要】参照 :http://billmill.org/bloomfilter-tutorial/简介布隆过滤器是一个用来判断某元素是否在全集中的工具.实际上它是一个有 m 个槽的位图, 他拥有 k 个 hash 函数, 每个元素进来的时候会通过 k 个 hash 函数映射到任意 k 个槽中, 并将槽置为 ... <a href="https://www.cnblogs.com/zemliu/p/4337660.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/zemliu/p/4263048.html
HTTP 协议缓存 - ZimZz
http 缓存分为客户端缓存和服务端缓存1. 客户端缓存客户端缓存指的是浏览器缓存, 浏览器缓存是最快的缓存, 因为它直接从本地获取(但有可能需要发送一个请求), 它的优势是可以减少网络流量, 加快请求速度2. 服务器缓存服务器缓存指的是反向代理服务器或 cdn 缓存, 他的作用是用于减轻实际的 w...
2015-01-30T11:10:00Z
2015-01-30T11:10:00Z
ZimZz
https://www.cnblogs.com/zemliu/
【摘要】http 缓存分为客户端缓存和服务端缓存1. 客户端缓存客户端缓存指的是浏览器缓存, 浏览器缓存是最快的缓存, 因为它直接从本地获取(但有可能需要发送一个请求), 它的优势是可以减少网络流量, 加快请求速度2. 服务器缓存服务器缓存指的是反向代理服务器或 cdn 缓存, 他的作用是用于减轻实际的 w... <a href="https://www.cnblogs.com/zemliu/p/4263048.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/zemliu/p/4196975.html
Xcode Custom Shortcut - ZimZz
edit file "/Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Resources"add Custom ShortCut Duplicate Line selectLine:,...
2014-12-31T20:31:00Z
2014-12-31T20:31:00Z
ZimZz
https://www.cnblogs.com/zemliu/
【摘要】edit file "/Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Resources"add Custom ShortCut Duplicate Line selectLine:,... <a href="https://www.cnblogs.com/zemliu/p/4196975.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/zemliu/p/4172266.html
Java CopyOnWriteArrayList - ZimZz
1. 为什么需要 CopyOnWriteArrayListArrayList 的内部实现是一个数组, 并且是动态扩容的, 当插入数据时, 先判断数组是否需要扩容, 如果需要扩容, 则先扩容, 再插入数据, 也就说插入由三步组成1) 检查是否需要扩容2) 扩容/不扩容3) 数据加入到数组代码如下 ...
2014-12-18T09:37:00Z
2014-12-18T09:37:00Z
ZimZz
https://www.cnblogs.com/zemliu/
【摘要】1. 为什么需要 CopyOnWriteArrayListArrayList 的内部实现是一个数组, 并且是动态扩容的, 当插入数据时, 先判断数组是否需要扩容, 如果需要扩容, 则先扩容, 再插入数据, 也就说插入由三步组成1) 检查是否需要扩容2) 扩容/不扩容3) 数据加入到数组代码如下 ... <a href="https://www.cnblogs.com/zemliu/p/4172266.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/zemliu/p/4167588.html
Java 工具集 - ZimZz
在 sudo -u tomcat 状态下执行1. jstackjstack pid >> file : 打印当前 thread stack 状态CPU 高分析流程使用jstack分析步骤1) top 查看java进程2) top -p -H 查看消耗cpu的线程3) 转为 十六进制4) sudo...
2014-12-16T09:17:00Z
2014-12-16T09:17:00Z
ZimZz
https://www.cnblogs.com/zemliu/
【摘要】在 sudo -u tomcat 状态下执行1. jstackjstack pid >> file : 打印当前 thread stack 状态CPU 高分析流程使用jstack分析步骤1) top 查看java进程2) top -p -H 查看消耗cpu的线程3) 转为 十六进制4) sudo... <a href="https://www.cnblogs.com/zemliu/p/4167588.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/zemliu/p/4121136.html
解決 java.security.cert.CertificateException: Certificates does not conform to algorithm constraints - ZimZz
找到jre/lib/security/java.security将jdk.certpath.disabledAlgorithms=MD2, DSA, RSA keySize < 2048改为jdk.certpath.disabledAlgorithms=
2014-11-25T07:27:00Z
2014-11-25T07:27:00Z
ZimZz
https://www.cnblogs.com/zemliu/
【摘要】找到jre/lib/security/java.security将jdk.certpath.disabledAlgorithms=MD2, DSA, RSA keySize < 2048改为jdk.certpath.disabledAlgorithms= <a href="https://www.cnblogs.com/zemliu/p/4121136.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/zemliu/p/4072646.html
关于 Netty Channel 的 Autoread - ZimZz
Netty 4 的 Channel 多了一个 autoread 参数, 它的用处是在让 channel 在触发某些事件以后(例如 channelActive, channelReadComplete)以后还会自动调用一次 read(), 代码:DefaultChannelPipeline.java ...
2014-11-03T18:16:00Z
2014-11-03T18:16:00Z
ZimZz
https://www.cnblogs.com/zemliu/
【摘要】Netty 4 的 Channel 多了一个 autoread 参数, 它的用处是在让 channel 在触发某些事件以后(例如 channelActive, channelReadComplete)以后还会自动调用一次 read(), 代码:DefaultChannelPipeline.java ... <a href="https://www.cnblogs.com/zemliu/p/4072646.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/zemliu/p/4060920.html
TDDL DataSource - ZimZz
TDDL DataSource 分为 AtomDataSource GroupDatasource他们两者没有依赖关系, 都实现了 JDBC 规范, 可以作为独立的 datasource 单独使用AtomDataSourceAtomDataSource 负责 diamond 动态配置, 它可以通过 ...
2014-10-29T15:29:00Z
2014-10-29T15:29:00Z
ZimZz
https://www.cnblogs.com/zemliu/
【摘要】TDDL DataSource 分为 AtomDataSource GroupDatasource他们两者没有依赖关系, 都实现了 JDBC 规范, 可以作为独立的 datasource 单独使用AtomDataSourceAtomDataSource 负责 diamond 动态配置, 它可以通过 ... <a href="https://www.cnblogs.com/zemliu/p/4060920.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/zemliu/p/4042787.html
Cobar-Client 实现策略总结 - ZimZz
1. 数据源 DataSourceCobarClient 的 DataSource 分为三层ICobarDataSourceService: 封装了多个 DataSourceDescriptor, 以及 HA 包装的IHADataSourceCreatorDataSourceDescriptor: ...
2014-10-22T04:23:00Z
2014-10-22T04:23:00Z
ZimZz
https://www.cnblogs.com/zemliu/
【摘要】1. 数据源 DataSourceCobarClient 的 DataSource 分为三层ICobarDataSourceService: 封装了多个 DataSourceDescriptor, 以及 HA 包装的IHADataSourceCreatorDataSourceDescriptor: ... <a href="https://www.cnblogs.com/zemliu/p/4042787.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/zemliu/p/4018055.html
xsltproc docbook 转 html - ZimZz
/etc/xml/catalog下载docbook-xsl-1.78.1.tar.bz2解压到 /etc/xmlparsebook.sh#!/bin/bashexport SGML_CATALOG_FILES="/etc/xml/catalog"export XML_CATALOG_FILES="/...
2014-10-10T14:59:00Z
2014-10-10T14:59:00Z
ZimZz
https://www.cnblogs.com/zemliu/
【摘要】/etc/xml/catalog下载docbook-xsl-1.78.1.tar.bz2解压到 /etc/xmlparsebook.sh#!/bin/bashexport SGML_CATALOG_FILES="/etc/xml/catalog"export XML_CATALOG_FILES="/... <a href="https://www.cnblogs.com/zemliu/p/4018055.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/zemliu/p/3982703.html
一个使用高并发高线程数 Server 使用异步数据库客户端造成的超时问题 - ZimZz
现象今天在做一个项目时, 将 tomcat 的 maxThreads 加大, 加到了 1024, tomcat 提供的服务主要是做一些运算, 然后插入 redis, 查询 redis, 最后将任务返回给客户端在做压测时, 同时开了 1000 个线程, 并发发起 http 请求去访问 tomcat 的...
2014-09-19T15:35:00Z
2014-09-19T15:35:00Z
ZimZz
https://www.cnblogs.com/zemliu/
【摘要】现象今天在做一个项目时, 将 tomcat 的 maxThreads 加大, 加到了 1024, tomcat 提供的服务主要是做一些运算, 然后插入 redis, 查询 redis, 最后将任务返回给客户端在做压测时, 同时开了 1000 个线程, 并发发起 http 请求去访问 tomcat 的... <a href="https://www.cnblogs.com/zemliu/p/3982703.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/zemliu/p/3979701.html
Hessian 初探 - ZimZz
Hessian 是一个序列化协议, 他的优点在于比 Java 原生的对象序列化/反序列化速度更快, 序列化出来以后的数据更小.序列化协议跟应用层协议无关, 可以将 Hessian 序列化以后的数据放在 HTTP Body 里, 也可以放在 DUBBO 里, 或者直接用 Socket 传输下面是一个使...
2014-09-18T09:33:00Z
2014-09-18T09:33:00Z
ZimZz
https://www.cnblogs.com/zemliu/
【摘要】Hessian 是一个序列化协议, 他的优点在于比 Java 原生的对象序列化/反序列化速度更快, 序列化出来以后的数据更小.序列化协议跟应用层协议无关, 可以将 Hessian 序列化以后的数据放在 HTTP Body 里, 也可以放在 DUBBO 里, 或者直接用 Socket 传输下面是一个使... <a href="https://www.cnblogs.com/zemliu/p/3979701.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/zemliu/p/3975983.html
关于 tomcat nio connector, servlet 3.0 async, spring mvc async 的关系 - ZimZz
tomcat 的org.apache.coyote.http11.Http11NioProtocol Connector 是一个使用 Java NIO 实现的异步 accept 请求的 connector它的作用是不需要为每个请求建立一个线程, 而是使用固定的accept线程 accept 多个请求...
2014-09-16T14:25:00Z
2014-09-16T14:25:00Z
ZimZz
https://www.cnblogs.com/zemliu/
【摘要】tomcat 的org.apache.coyote.http11.Http11NioProtocol Connector 是一个使用 Java NIO 实现的异步 accept 请求的 connector它的作用是不需要为每个请求建立一个线程, 而是使用固定的accept线程 accept 多个请求... <a href="https://www.cnblogs.com/zemliu/p/3975983.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/zemliu/p/3938051.html
Two-Phase Commit (两阶段提交) - ZimZz
1. 流程1) Coordinator (协调者) 广播 VOTE-REQ 给所有 Participant (参与者)2) Coordinator 等待 Participant 的结果3) Participant 回复 YES or NO 给 Coordinator4) Coordinator 收集...
2014-08-26T11:12:00Z
2014-08-26T11:12:00Z
ZimZz
https://www.cnblogs.com/zemliu/
【摘要】1. 流程1) Coordinator (协调者) 广播 VOTE-REQ 给所有 Participant (参与者)2) Coordinator 等待 Participant 的结果3) Participant 回复 YES or NO 给 Coordinator4) Coordinator 收集... <a href="https://www.cnblogs.com/zemliu/p/3938051.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/zemliu/p/3928285.html
HashedWheelTimer 原理 - ZimZz
HashedWheelTimer 是根据Hashed and Hierarchical Timing Wheels: Data Structures for the Efficient Implementation of a Timer Facility这篇论文做出来的.HashedWheelTim...
2014-08-21T14:59:00Z
2014-08-21T14:59:00Z
ZimZz
https://www.cnblogs.com/zemliu/
【摘要】HashedWheelTimer 是根据Hashed and Hierarchical Timing Wheels: Data Structures for the Efficient Implementation of a Timer Facility这篇论文做出来的.HashedWheelTim... <a href="https://www.cnblogs.com/zemliu/p/3928285.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/zemliu/p/3925941.html
Photoshop 使用曲线 - ZimZz
曲线表示的是图像的明度, 通过信息办的 HSB 信息可以看到调整曲线时整个图像明度的变化曲线的左下角表示图片的暗部, 右下角表示图片的高光部而曲线本身的纵坐标则表示这个部分的明度, 例如将曲线的左下角右移则会将暗部像素的明度减为0, 这些像素就是图中的波浪形同理如果曲线右侧滑块左移, 则会将一些高光...
2014-08-20T15:26:00Z
2014-08-20T15:26:00Z
ZimZz
https://www.cnblogs.com/zemliu/
【摘要】曲线表示的是图像的明度, 通过信息办的 HSB 信息可以看到调整曲线时整个图像明度的变化曲线的左下角表示图片的暗部, 右下角表示图片的高光部而曲线本身的纵坐标则表示这个部分的明度, 例如将曲线的左下角右移则会将暗部像素的明度减为0, 这些像素就是图中的波浪形同理如果曲线右侧滑块左移, 则会将一些高光... <a href="https://www.cnblogs.com/zemliu/p/3925941.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/zemliu/p/3911637.html
Photoshop 使用可选颜色 - ZimZz
CMYK 由 青色(Cyan) 洋红(Magenta)黄色(Yellow)黑色(Key Plate)组成, 他们和三基色 红绿蓝 RGB 关系如下如图红色 = 品红 + 黄色绿色 = 黄色 + 青色蓝色 = 品红 + 青色而位于这个颜色相对的颜色, 即是它的相反色, 例如红色的相反色为青色, 蓝色的...
2014-08-20T15:06:00Z
2014-08-20T15:06:00Z
ZimZz
https://www.cnblogs.com/zemliu/
【摘要】CMYK 由 青色(Cyan) 洋红(Magenta)黄色(Yellow)黑色(Key Plate)组成, 他们和三基色 红绿蓝 RGB 关系如下如图红色 = 品红 + 黄色绿色 = 黄色 + 青色蓝色 = 品红 + 青色而位于这个颜色相对的颜色, 即是它的相反色, 例如红色的相反色为青色, 蓝色的... <a href="https://www.cnblogs.com/zemliu/p/3911637.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/zemliu/p/3924257.html
MySQL Batch 与 Transaction - ZimZz
最近在数据库上经常遇到死锁问题. 表现的问题有1. 有一个查询为:1) 一个复杂的 select 查处一组大数据2) 使用事务 update 这组数据的状态为了让锁定的时间变短, 我将这整个大事务切分成了多个小事务, 也就是每次查询并更新 1W 数据变为了每次查询并更新 100 数据, 但是需要查询...
2014-08-20T04:01:00Z
2014-08-20T04:01:00Z
ZimZz
https://www.cnblogs.com/zemliu/
【摘要】最近在数据库上经常遇到死锁问题. 表现的问题有1. 有一个查询为:1) 一个复杂的 select 查处一组大数据2) 使用事务 update 这组数据的状态为了让锁定的时间变短, 我将这整个大事务切分成了多个小事务, 也就是每次查询并更新 1W 数据变为了每次查询并更新 100 数据, 但是需要查询... <a href="https://www.cnblogs.com/zemliu/p/3924257.html" target="_blank">阅读全文</a>