<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[冰叶纷飞的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/lpayit</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; lpayit]]></copyright><item><title><![CDATA[elk+filebeat分布式日志收集]]></title><link>https://blog.youkuaiyun.com/lpayit/article/details/78011255</link><guid>https://blog.youkuaiyun.com/lpayit/article/details/78011255</guid><author>lpayit</author><pubDate>Sun, 17 Sep 2017 16:25:49 +0800</pubDate><description><![CDATA[elk环境搭建filebeat程序安装filebeat配置修改

filebeat.yml修改如下:# 监控日志文件地址
paths:- d:/_tmp/log/*.log
# 对于行不是以日期开头,都归到上一行
multiline.pattern: ^\d{4}([-]\d{2}){2}\s\d{2}([:]\d{2}){2}[.]\d{3}
multiline.negate: true
m]]></description><category></category></item><item><title><![CDATA[Curator分布式锁注意事项]]></title><link>https://blog.youkuaiyun.com/lpayit/article/details/76417268</link><guid>https://blog.youkuaiyun.com/lpayit/article/details/76417268</guid><author>lpayit</author><pubDate>Mon, 31 Jul 2017 10:11:36 +0800</pubDate><description><![CDATA[Curator分布式锁注意事项




zookeeper 分布式锁的实现以及原理,详见zookeeper 分布式锁的实现顺序节点值是永久递增的,当超过int的最大值 (2147483647)时,生成的临时顺序节点为-2147483647
官方的说明:
Sequence Nodes -- Unique Naming
When creating a znode you can als]]></description><category></category></item><item><title><![CDATA[zookeeper 分布式锁]]></title><link>https://blog.youkuaiyun.com/lpayit/article/details/72287859</link><guid>https://blog.youkuaiyun.com/lpayit/article/details/72287859</guid><author>lpayit</author><pubDate>Tue, 16 May 2017 15:30:19 +0800</pubDate><description><![CDATA[锁原理：

1、首先要创建一个锁的根节点，比如/mylock。




2、想要获取锁的客户端在锁的根节点下面创建znode，作为/mylock的子节点，节点的类型要选择CreateMode.PERSISTENT_SEQUENTIAL，节点的名字最好用uuid（至于为什么用uuid我后面会讲，先说一下~如果不这么做在某种情况下会发生死锁，这一点我看了很多国内朋友自己的实现，都没有考虑]]></description><category></category></item><item><title><![CDATA[spring redis 分布式锁]]></title><link>https://blog.youkuaiyun.com/lpayit/article/details/71525905</link><guid>https://blog.youkuaiyun.com/lpayit/article/details/71525905</guid><author>lpayit</author><pubDate>Wed, 10 May 2017 14:51:07 +0800</pubDate><description><![CDATA[直接上代码
1.Lock类
package com.example.util;

/**
 * 全局锁，包括锁的名称
 * Created by lp on 2017/5/9.
 */
public class Lock {

    private String name;
    private String value;


    public Lock(String name, St]]></description><category></category></item><item><title><![CDATA[git 拉取所有分支]]></title><link>https://blog.youkuaiyun.com/lpayit/article/details/70210395</link><guid>https://blog.youkuaiyun.com/lpayit/article/details/70210395</guid><author>lpayit</author><pubDate>Mon, 17 Apr 2017 14:14:34 +0800</pubDate><description><![CDATA[新增pull-all.shpull-all.sh内容如下#!/bin/sh
main() {
  REMOTES="$@";
  echo $REMOTES;
  if [ -z "$REMOTES" ]; then
    REMOTES=$(git remote);
  fi
  REMOTES=$(echo "$REMOTES" | xargs -n1 echo)
  CLB=$(git b]]></description><category></category></item><item><title><![CDATA[git设置mergetool可视化工具]]></title><link>https://blog.youkuaiyun.com/lpayit/article/details/70188391</link><guid>https://blog.youkuaiyun.com/lpayit/article/details/70188391</guid><author>lpayit</author><pubDate>Sat, 15 Apr 2017 23:29:20 +0800</pubDate><description><![CDATA[git设置mergetool可视化工具


可以设置BeyondCompare,DiffMerge等作为git的比较和合并的可视化工具,方便操作.

步骤如下:


先下载并安装BeyondCompare,DiffMerge等.设置git配置,git命令如下:


#difftool 配置git config --global difftool.bc4.cmd "\"c:/p]]></description><category></category></item><item><title><![CDATA[SourceTree合并操作界面中,修改默认配置参数]]></title><link>https://blog.youkuaiyun.com/lpayit/article/details/70154706</link><guid>https://blog.youkuaiyun.com/lpayit/article/details/70154706</guid><author>lpayit</author><pubDate>Thu, 13 Apr 2017 10:41:46 +0800</pubDate><description><![CDATA[1.找到SourceTree软件的安装位置,例如:C:\Program Files (x86)\Atlassian\SourceTree
2.在路径中找到 SourceTree.exe.config文件
3.修改文件中对应的属性值





GitCommitMergedChangesImmediately
立即提交合并


GitNoFastForward
无论快进更新]]></description><category></category></item><item><title><![CDATA[git本地控制分支权限]]></title><link>https://blog.youkuaiyun.com/lpayit/article/details/69388615</link><guid>https://blog.youkuaiyun.com/lpayit/article/details/69388615</guid><author>lpayit</author><pubDate>Thu, 06 Apr 2017 13:22:56 +0800</pubDate><description><![CDATA[1.新建commit-msg文件,文件内容如下
#!/bin/sh

# 使用说明
# 1.只有是自己的分支,才能提交,可以在myBranchs中设置,例子:myBranchs=("feature/lp_develop" "develop")
# 2.如果不是自己的分支,想强制提交需要在提交信息中,需要提交信息的第一行为"force commit"

# 自己的分支(数组)
myBranchs=]]></description><category></category></item><item><title><![CDATA[动态加载jar文件]]></title><link>https://blog.youkuaiyun.com/lpayit/article/details/53204809</link><guid>https://blog.youkuaiyun.com/lpayit/article/details/53204809</guid><author>lpayit</author><pubDate>Thu, 17 Nov 2016 18:58:24 +0800</pubDate><description><![CDATA[新建ExtClasspathLoader.java
内容如下:
import java.io.File;
import java.lang.reflect.Method;
import java.net.URL;
import java.net.URLClassLoader;
import java.util.List;

/**
 * Created by lp on 2016/11/16.]]></description><category></category></item><item><title><![CDATA[tomcat 重启命令]]></title><link>https://blog.youkuaiyun.com/lpayit/article/details/53204652</link><guid>https://blog.youkuaiyun.com/lpayit/article/details/53204652</guid><author>lpayit</author><pubDate>Thu, 17 Nov 2016 18:47:29 +0800</pubDate><description><![CDATA[新建restart.sh文件
文件内容如下:
#!/bin/bash

tomcat_path=$(pwd)
echo $tomcat_path
pid=`ps -ef|grep $tomcat_path  |grep -v grep|awk '{print $2}'`
if [[ ! $pid ]]; then
   echo $"$tomcat_path service is stoped]]></description><category></category></item><item><title><![CDATA[MongoDB Map Reduce]]></title><link>https://blog.youkuaiyun.com/lpayit/article/details/52490621</link><guid>https://blog.youkuaiyun.com/lpayit/article/details/52490621</guid><author>lpayit</author><pubDate>Fri, 09 Sep 2016 21:24:34 +0800</pubDate><description><![CDATA[Map-Reduce是一种计算模型,简单的说是将大量的工作(数据)分解(MAP)执行,然后再将结果合并成最终结果(RECUCE). 
MongoDB提供的Map-Redeuce非常灵活,对于大规模数据分析也相当实用.MapReduce命令以下是MapRedcuce的基本语法:>db.collection.mapReduce(
   function(){emit(key,value)},  //ma]]></description><category></category></item><item><title><![CDATA[FindBugs PMD 和CheckStyle对比]]></title><link>https://blog.youkuaiyun.com/lpayit/article/details/52343824</link><guid>https://blog.youkuaiyun.com/lpayit/article/details/52343824</guid><author>lpayit</author><pubDate>Sun, 28 Aug 2016 09:42:02 +0800</pubDate><description><![CDATA[FindBugs PMD 和CheckStyle对比概要
  工具
  目的
  检查项目  FindBugs检查.class
  基于Bug Patterns概念，查找javabytecode（.class文件）中的潜在bug
  主要检查bytecode中的bug patterns，如NullPoint空指针检查、没有合理关闭资源、字符串相同判断错（==，而不是equals）等
  PMD检查源]]></description><category></category></item><item><title><![CDATA[java排列组合实例]]></title><link>https://blog.youkuaiyun.com/lpayit/article/details/52054485</link><guid>https://blog.youkuaiyun.com/lpayit/article/details/52054485</guid><author>lpayit</author><pubDate>Thu, 28 Jul 2016 13:44:55 +0800</pubDate><description><![CDATA[排列组合:
排列组合是组合学最基本的概念。所谓排列，就是指从给定个数的元素中取出指定个数的元素进行排序。组合则是指从给定个数的元素中仅仅取出指定个数的元素，不考虑排序。排列组合的中心问题是研究给定要求的排列和组合可能出现的情况总数。 排列组合与古典概率论关系密切。

实现功能:
数据源有多个数组,从每个数组中获取一个值,组成一个结果集,列出所有的结果集.
例如:
多个数组:
{"na]]></description><category></category></item><item><title><![CDATA[tomcat日志自动分割(linux)]]></title><link>https://blog.youkuaiyun.com/lpayit/article/details/52038451</link><guid>https://blog.youkuaiyun.com/lpayit/article/details/52038451</guid><author>lpayit</author><pubDate>Tue, 26 Jul 2016 18:38:22 +0800</pubDate><description><![CDATA[今天在tomcat上查看项目日志的时候,发现catalina.out文件竟然已经达到202M了,决定做一下日志的分割.先看了一下crontab任务中,发现有个删除前10天日志的自动任务,但是没有发现切割的自动任务. 
   
搜了一下,据说tomcat有默认的日志分割功能,能每天自动生成类似catalina.2010-10-08.log的文件,但是默认catalina.out文件却一直增长.据]]></description><category></category></item><item><title><![CDATA[CGLib动态代理原理及实现]]></title><link>https://blog.youkuaiyun.com/lpayit/article/details/52035623</link><guid>https://blog.youkuaiyun.com/lpayit/article/details/52035623</guid><author>lpayit</author><pubDate>Tue, 26 Jul 2016 14:46:46 +0800</pubDate><description><![CDATA[JDK实现动态代理需要实现类通过接口定义业务方法，对于没有接口的类，如何实现动态代理呢，这就需要CGLib了。CGLib采用了非常底层的字节码技术，其原理是通过字节码技术为一个类创建子类，并在子类中采用方法拦截的技术拦截所有父类方法的调用，顺势织入横切逻辑。JDK动态代理与CGLib动态代理均是实现Spring AOP的基础。

   简单的实现举例：

这是一个需要被代理的类，也就是父类]]></description><category></category></item><item><title><![CDATA[spring boot 简单例子]]></title><link>https://blog.youkuaiyun.com/lpayit/article/details/51921633</link><guid>https://blog.youkuaiyun.com/lpayit/article/details/51921633</guid><author>lpayit</author><pubDate>Fri, 15 Jul 2016 23:22:35 +0800</pubDate><description><![CDATA[spring越来越被很多项目使用,是因为功能全,开发方便,但是spring框架的配置比较麻烦,也就是说每一个项目,使用spring的框架都得进行大量的配置
而spring boot的出现,正在弥补了这个短板,它可以快速的帮助开发人员搭建spring的系统,而且本身集成了tomcat等容器.使用起来很方便,下面介绍下最
简单的使用方法,也就是入门的hello world 程序.
MAVEN中的]]></description><category></category></item><item><title><![CDATA[DUBBO环境搭建]]></title><link>https://blog.youkuaiyun.com/lpayit/article/details/51672615</link><guid>https://blog.youkuaiyun.com/lpayit/article/details/51672615</guid><author>lpayit</author><pubDate>Tue, 14 Jun 2016 16:15:16 +0800</pubDate><description><![CDATA[DUBBO是一个分布式服务框架，致力于提供高性能和透明化的RPC远程服务调用方案，是阿里巴巴SOA服务化治理方案的核心框架，每天为2,000+个服务提供3,000,000,000+次访问量支持，并被广泛应用于阿里巴巴集团的各成员站点。
环境搭建步骤:
1.ZooKeeper安装
2.dubbo-admin管理控制台安装
一  ZooKeeper安装
1.下载ZooKeeper压缩安装文件]]></description><category></category></item><item><title><![CDATA[httpclient 访问网页面]]></title><link>https://blog.youkuaiyun.com/lpayit/article/details/51199760</link><guid>https://blog.youkuaiyun.com/lpayit/article/details/51199760</guid><author>lpayit</author><pubDate>Wed, 20 Apr 2016 12:37:05 +0800</pubDate><description><![CDATA[HttpClient 是 Apache Jakarta Common 下的子项目，可以用来提供高效的、最新的、功能丰富的支持 HTTP 协议的客户端编程工具包，并且它支持 HTTP 协议最新的版本和建议。



该功能支持以下情况:
1.http及https
2.get及post方式
3.ssl证书不验证
4.重定向
实现步骤如下:


1.pom文件中增加依赖包

  ]]></description><category></category></item><item><title><![CDATA[spring mvc 获取所有的controller中的url]]></title><link>https://blog.youkuaiyun.com/lpayit/article/details/50818608</link><guid>https://blog.youkuaiyun.com/lpayit/article/details/50818608</guid><author>lpayit</author><pubDate>Mon, 07 Mar 2016 13:26:51 +0800</pubDate><description><![CDATA[spring mvc 获取所有的controller中的url
原理:


从WebApplicationContext中获取RequestMappingHandlerMapping.class类型的所有bean.


代码如下:


在web.xml中增加:
    
        contextConfigLocation
        classpath:sprin]]></description><category></category></item><item><title><![CDATA[IntelliJ Idea 常用快捷键列表]]></title><link>https://blog.youkuaiyun.com/lpayit/article/details/50777326</link><guid>https://blog.youkuaiyun.com/lpayit/article/details/50777326</guid><author>lpayit</author><pubDate>Wed, 02 Mar 2016 09:16:02 +0800</pubDate><description><![CDATA[IntelliJ Idea 常用快捷键列表

Ctrl+Shift + Enter，语句完成
“！”，否定完成，输入表达式时按 “！”键
Ctrl+E，最近的文件
Ctrl+Shift+E，最近更改的文件
Shift+Click，可以关闭文件
Ctrl+[ OR ]，可以跑到大括号的开头与结尾
Ctrl+F12，可以显示当前文件的结构
Ctrl+F7，可以查询当前元素在当前文件中]]></description><category></category></item></channel></rss>