<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[peerless_hero的博客]]></title><description><![CDATA[冠军的心是至死不渝！]]></description><link>https://blog.youkuaiyun.com/peerless_hero</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; peerless_hero]]></copyright><item><title><![CDATA[BlockingQueue]]></title><link>https://blog.youkuaiyun.com/peerless_hero/article/details/103376653</link><guid>https://blog.youkuaiyun.com/peerless_hero/article/details/103376653</guid><author>peerless_hero</author><pubDate>Tue, 03 Dec 2019 21:03:26 +0800</pubDate><description><![CDATA[一、类结构图

二、方法

除了传统的queue功能（表格左边的两列）之外，还提供了阻塞接口put和take，带超时功能的阻塞接口offer和poll。put会在队列满的时候阻塞，直到有空间时被唤醒；take在队列空的时候阻塞，直到有东西拿的时候才被唤醒。

...]]></description><category></category></item><item><title><![CDATA[如何中断一个线程？]]></title><link>https://blog.youkuaiyun.com/peerless_hero/article/details/103359627</link><guid>https://blog.youkuaiyun.com/peerless_hero/article/details/103359627</guid><author>peerless_hero</author><pubDate>Tue, 03 Dec 2019 00:33:57 +0800</pubDate><description><![CDATA[一、了解interrupt、interrupted、isInterrupted
public void interrupt();

Thread#interrupt()并不能真正的中断线程，而是通知线程应该中断了。具体到底中断还是继续运行，应该由被通知的线程自己处理。
具体来说，当对一个线程调用interrupt()时：

如果线程处于正常活动状态，那么会将该线程的中断标志位设置为true，仅此而...]]></description><category></category></item><item><title><![CDATA[会计基础理论]]></title><link>https://blog.youkuaiyun.com/peerless_hero/article/details/86363474</link><guid>https://blog.youkuaiyun.com/peerless_hero/article/details/86363474</guid><author>peerless_hero</author><pubDate>Sat, 12 Jan 2019 17:47:30 +0800</pubDate><description><![CDATA[一、会计的基本假设

会计主体，是指会计工作为其服务的特定单位或组织。
持续经营，是指会计主体的生产经营活动将无限期地延续下去，在可以预见的未来，会计主体不会因清算、解散、倒闭而不复存在。
会计分期，是指将会计主体持续不断的经营过程，划分为若干等间距的时期，即“会计期间”。《会计法》规定，会计年度自公历1月1日起至12月31日止。会计期间分为年度和中期。中期是指短于一个完整的会计年度的报告期间。
...]]></description><category></category></item><item><title><![CDATA[2018年终考评的反思]]></title><link>https://blog.youkuaiyun.com/peerless_hero/article/details/86362827</link><guid>https://blog.youkuaiyun.com/peerless_hero/article/details/86362827</guid><author>peerless_hero</author><pubDate>Sat, 12 Jan 2019 15:44:57 +0800</pubDate><description><![CDATA[2018年的年终考评得了B。领导和我沟通完绩效后，内心是有些焦虑的。心路历程如下，mark一下。
个人情况

我确实没有投入百分百精力在工作中，2018年我完成了人生的两件大事：买房和结婚。
4月份入职新东家后，我在地铁上的时间完全没有利用起来，基本都在玩游戏。每天浪费的时间在两小时。周末也没有再去主动学习。

工作情况

这里没有产品，需求完全靠自驱。这一年，我几乎全部在进行结算系统的重构。这种...]]></description><category></category></item><item><title><![CDATA[ZooKeeper在Mac上集群部署]]></title><link>https://blog.youkuaiyun.com/peerless_hero/article/details/80374681</link><guid>https://blog.youkuaiyun.com/peerless_hero/article/details/80374681</guid><author>peerless_hero</author><pubDate>Sat, 19 May 2018 16:21:08 +0800</pubDate><description><![CDATA[集群模式

集群模式有如下两种： 
1）使用多台机器，在每台机器上运行一个ZooKeeper Server进程； 
2）使用一台机器，在该台机器上运行多个ZooKeeper Server进程。 
在生产环境中，一般使用第一种形式。在本地环境中，一般使用第二种形式。

下面我们演示下单台机器上如何实现集群部署。

下载&amp;amp;解压

下载

http://mirrors.hust.edu.cn/a...]]></description><category></category></item><item><title><![CDATA[disconf回调]]></title><link>https://blog.youkuaiyun.com/peerless_hero/article/details/78500194</link><guid>https://blog.youkuaiyun.com/peerless_hero/article/details/78500194</guid><author>peerless_hero</author><pubDate>Fri, 10 Nov 2017 16:30:23 +0800</pubDate><description><![CDATA[disconf可以随时同步配置文件的变化到仓库中。也就是说，配置文件中的参数发生了变化，应用系统会随时获取到最新的参数值。这依靠的是watch+callback机制。Watch第一次扫描时，在开启disconf的情况下，会在zk上建立一个代表配置文件的临时结点，monitorPath形如”/disconf/应用名版本号环境/file/sys-config.properties”。然后便监控这个节点。]]></description><category></category></item><item><title><![CDATA[disconf启动流程]]></title><link>https://blog.youkuaiyun.com/peerless_hero/article/details/78481873</link><guid>https://blog.youkuaiyun.com/peerless_hero/article/details/78481873</guid><author>peerless_hero</author><pubDate>Thu, 09 Nov 2017 11:37:27 +0800</pubDate><description><![CDATA[如图所示，applicationContext.xml文件中注入了3个和disconf相关的bean。在容器启动的时候，这3个bean将被实例化。 
启动流程如下： 
loadConfig该阶段导入配置，包括：(1)导入系统配置disconf_sys.properties的数据，如果存在系统参数或命令行导入，则覆盖properties文件导入的数据。(2)校验系统配置(3)导入用户配置disconf]]></description><category></category></item><item><title><![CDATA[ConcurrentHashMap]]></title><link>https://blog.youkuaiyun.com/peerless_hero/article/details/78077044</link><guid>https://blog.youkuaiyun.com/peerless_hero/article/details/78077044</guid><author>peerless_hero</author><pubDate>Sun, 24 Sep 2017 15:18:31 +0800</pubDate><description><![CDATA[ConcurrentHashMap继承于AbstractMap，实现了ConcurrentMap接口，同时标记了Serializable接口。

ConcurrentHashMap是线程安全且高效的HashMap

常量

    /**
     * Segment数组中的每一个segment的HashEntry[]的初始容量
     */
    static final int DEFAU]]></description><category></category></item><item><title><![CDATA[LinkedList]]></title><link>https://blog.youkuaiyun.com/peerless_hero/article/details/77824393</link><guid>https://blog.youkuaiyun.com/peerless_hero/article/details/77824393</guid><author>peerless_hero</author><pubDate>Sun, 03 Sep 2017 18:30:41 +0800</pubDate><description><![CDATA[类定义

public class LinkedListE>
    extends AbstractSequentialListE>
    implements ListE>, DequeE>, Cloneable, java.io.Serializable

LinkedList继承了AbstractSequentialList，实现了List、Deque、Cloneable、Java.io]]></description><category></category></item><item><title><![CDATA[ArrayList]]></title><link>https://blog.youkuaiyun.com/peerless_hero/article/details/77751973</link><guid>https://blog.youkuaiyun.com/peerless_hero/article/details/77751973</guid><author>peerless_hero</author><pubDate>Sun, 03 Sep 2017 16:58:25 +0800</pubDate><description><![CDATA[类定义public class ArrayList<E> extends AbstractList<E>
        implements List<E>, RandomAccess, Cloneable, java.io.SerializableArrayList继承了AbstractList，实现了List、RandomAccess、Cloneable、Java.io.Serializabl]]></description><category></category></item><item><title><![CDATA[Spring事务使用场景]]></title><link>https://blog.youkuaiyun.com/peerless_hero/article/details/77509203</link><guid>https://blog.youkuaiyun.com/peerless_hero/article/details/77509203</guid><author>peerless_hero</author><pubDate>Thu, 24 Aug 2017 10:55:07 +0800</pubDate><description><![CDATA[常规调用@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
methodA{
    ……
    try{
        methodB();
    } catch (Exception e) {
        ……
    }
    localA();
    ……
}@Tra]]></description><category></category></item><item><title><![CDATA[Cache和Buffer]]></title><link>https://blog.youkuaiyun.com/peerless_hero/article/details/77099932</link><guid>https://blog.youkuaiyun.com/peerless_hero/article/details/77099932</guid><author>peerless_hero</author><pubDate>Fri, 11 Aug 2017 17:10:56 +0800</pubDate><description><![CDATA[BufferBuffer（缓冲）主要目的进行流量整形，把突发的大数量较小规模的 I/O 整理成平稳的小数量较大规模的 I/O，以减少响应次数。
比如生产者——消费者问题，他们产生和消耗资源的速度大体接近，加一个buffer可以抵消掉资源刚产生/消耗时的突然变化。
比如从网上下电影，你不能下一点点数据就写一下硬盘，而是积攒一定量的数据以后一整块一起写，不然硬盘都要被你玩坏了。
比如从网络上下载东西，瞬]]></description><category></category></item><item><title><![CDATA[memcached的内存管理机制]]></title><link>https://blog.youkuaiyun.com/peerless_hero/article/details/77061927</link><guid>https://blog.youkuaiyun.com/peerless_hero/article/details/77061927</guid><author>peerless_hero</author><pubDate>Fri, 11 Aug 2017 15:41:42 +0800</pubDate><description><![CDATA[memcached是一个高效的分布式内存cache，默认使用SlabAllocation机制管理内存，其主要思想是按照预先规定的大小，将分配的内存分割成特定长度的块以存储相应长度的key-value数据记录，以完全解决内存碎片问题。 
SlabAllocation机制只为存储外部数据而设计，也就是说所有的key-value数据都存储在SlabAllocation系统里，而memcached的其它内存]]></description><category></category></item><item><title><![CDATA[kafka优点]]></title><link>https://blog.youkuaiyun.com/peerless_hero/article/details/76777401</link><guid>https://blog.youkuaiyun.com/peerless_hero/article/details/76777401</guid><author>peerless_hero</author><pubDate>Sun, 06 Aug 2017 16:49:48 +0800</pubDate><description><![CDATA[Kafka是由LinkedIn开发的一个分布式的消息系统，同时支持离线和在线日志处理。Kafka框架本身使用Scala编写，因其可水平扩展和高吞吐率而被广泛使用。目前，越来越多的开源分布式处理系统如Cloudera、Apache Storm、Spark都支持与Kafka集成。 Kafka的持久化方案是写入磁盘，虽然内存读写速度明显快过磁盘读写速度，但Kafka却通过线性读写的方式实现快速读写。 Ka]]></description><category></category></item><item><title><![CDATA[kafka简介]]></title><link>https://blog.youkuaiyun.com/peerless_hero/article/details/76762185</link><guid>https://blog.youkuaiyun.com/peerless_hero/article/details/76762185</guid><author>peerless_hero</author><pubDate>Sun, 06 Aug 2017 15:39:27 +0800</pubDate><description><![CDATA[分布式流平台Apache Kafka™是一个分布式流平台，我们认为流式平台(a streaming platform)有以下三个关键的能力： 
1.它允许你发布和订阅流记录(streams of records)。从这个角度上说，它接近于一个消息队列或者企业消息系统。 
2.它允许你以容错的方式存储流记录。 
3.它允许你即时处理消息流。Kafka的优势体现在两大类应用上： 
1.构建实时流数据管道]]></description><category></category></item><item><title><![CDATA[elasticJob分片跑批]]></title><link>https://blog.youkuaiyun.com/peerless_hero/article/details/76686974</link><guid>https://blog.youkuaiyun.com/peerless_hero/article/details/76686974</guid><author>peerless_hero</author><pubDate>Fri, 04 Aug 2017 16:06:33 +0800</pubDate><description><![CDATA[业务迅速发展带来了跑批数据量的急剧增加。单机处理跑批数据已不能满足需要，另考虑到企业处理数据的扩展能力，多机跑批势在必行。多机跑批是指将跑批任务分发到多台服务器上执行，多机跑批的前提是”数据分片”。elasticJob通过JobShardingStrategy支持分片跑批。跑批配置需要做如下修改： 
shardingTotalCount:作业分片总数。jobShardingStrategyClass]]></description><category></category></item><item><title><![CDATA[java io之文件下载]]></title><link>https://blog.youkuaiyun.com/peerless_hero/article/details/72956517</link><guid>https://blog.youkuaiyun.com/peerless_hero/article/details/72956517</guid><author>peerless_hero</author><pubDate>Fri, 09 Jun 2017 13:25:18 +0800</pubDate><description><![CDATA[下面的代码展现了如何从页面上下载服务器上的文件。服务器上文件以windows系统上的HOSTS文件举例。 
主要思路是利用FileInputStream获得服务器上文件的句柄，定义一个缓冲区字节数组，每次读一个数组长度的字节到输出设备，直到读完。@RequestMapping(value = "/downloadExistFile.do")
public void downloadExistFile]]></description><category></category></item><item><title><![CDATA[多线程查询]]></title><link>https://blog.youkuaiyun.com/peerless_hero/article/details/72822883</link><guid>https://blog.youkuaiyun.com/peerless_hero/article/details/72822883</guid><author>peerless_hero</author><pubDate>Wed, 31 May 2017 23:47:20 +0800</pubDate><description><![CDATA[今天遇到下载资金流水记录的场景。下载的数据源于分页查询，一次5000条。当数据量到达十万级的时候，仅仅通过for循环、每次设置pageNum，查询的等待时间超过了容忍的范围。下面示例展示了采用Callable和Future进行多线程查询并使用CountDownLatch进行多线程同步。// 进行首次查询（略），获取总页数
int totalPage;
// 设置计数器，从0开始
final Coun]]></description><category></category></item><item><title><![CDATA[dubbo接口访问控制]]></title><link>https://blog.youkuaiyun.com/peerless_hero/article/details/72667550</link><guid>https://blog.youkuaiyun.com/peerless_hero/article/details/72667550</guid><author>peerless_hero</author><pubDate>Tue, 23 May 2017 22:08:47 +0800</pubDate><description><![CDATA[微服务背景下，一个web应用都可能不再service依赖，而是通过RPC调用远端服务器上的服务。这些服务里，就包括了一些不能轻易暴露的后台功能接口。暴露出去的dubbo接口注册到某一个zk上后，该dubbo接口对注册到该zk上的消费者都是可见的。对公司内部而言，通常不会有人蓄意去调用一些敏感的接口，但也存在人为误用的可能呀。为此，考虑通过白名单机制来控制dubbo接口的访问。现在以许可ip127.0]]></description><category></category></item><item><title><![CDATA[bean元素的属性]]></title><link>https://blog.youkuaiyun.com/peerless_hero/article/details/69906769</link><guid>https://blog.youkuaiyun.com/peerless_hero/article/details/69906769</guid><author>peerless_hero</author><pubDate>Sun, 09 Apr 2017 22:31:04 +0800</pubDate><description><![CDATA[使用Spring框架时，我们经常会在xml文件里装配bean。今天我们认识一下bean元素里的属性都有着哪些用处。    <bean abstract="true" autowire-candidate="default" autowire="default"
        class="" dependency-check="default" depends-on="" destroy-meth]]></description><category></category></item></channel></rss>