<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[shift_alt_ctrl的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/shift_alt_ctrl</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; shift_alt_ctrl]]></copyright><item><title><![CDATA[JAVA正则表达式过滤文件]]></title><link>https://blog.youkuaiyun.com/shift_alt_ctrl/article/details/69944616</link><guid>https://blog.youkuaiyun.com/shift_alt_ctrl/article/details/69944616</guid><author>shift_alt_ctrl</author><pubDate>Mon, 10 Apr 2017 11:23:14 +0800</pubDate><description><![CDATA[正则表达式过滤文件列表，听起来简单，如果用java实现，还真需要一番周折，本文简析2种方式
 
1、适用于路径确定，文件名时正则表达式的情况（jdk6的写法）
String filePattern = "/data/logs/.+\\.log";
File f = new File(filePattern);
File parentDir = f.getParentFile();
St]]></description><category></category></item><item><title><![CDATA[nginx/tomcat日志格式规范]]></title><link>https://blog.youkuaiyun.com/shift_alt_ctrl/article/details/69944613</link><guid>https://blog.youkuaiyun.com/shift_alt_ctrl/article/details/69944613</guid><author>shift_alt_ctrl</author><pubDate>Mon, 10 Apr 2017 11:23:06 +0800</pubDate><description><![CDATA[最近准备设计和开发一套日志收集平台，进而后续进行实时的日志分析、业务监控和预警等。在此之前，需要制定日志的格式规范，当然还有其他的约束性规范，才能良好的实现日志搜集、数据分拣、数据分析等特性。
 
    制定日志格式规范的方式与目的：
    1）所有项目，日志格式统一，可以极大的简化日志收集和分析的复杂度。
    2）nginx、tomcat等日志格式，需要合理，让日志查看和问题排查]]></description><category></category></item><item><title><![CDATA[《架构漫谈》摘要]]></title><link>https://blog.youkuaiyun.com/shift_alt_ctrl/article/details/69944595</link><guid>https://blog.youkuaiyun.com/shift_alt_ctrl/article/details/69944595</guid><author>shift_alt_ctrl</author><pubDate>Mon, 10 Apr 2017 11:22:21 +0800</pubDate><description><![CDATA[一、“Architecture is like teenage sex,everybody talks about it,nobody really knows what is it.”
     “Architecture is both the process and the product of planning,designing,and constructing buildings a]]></description><category></category></item><item><title><![CDATA[nginx线程池模式探讨]]></title><link>https://blog.youkuaiyun.com/shift_alt_ctrl/article/details/69944576</link><guid>https://blog.youkuaiyun.com/shift_alt_ctrl/article/details/69944576</guid><author>shift_alt_ctrl</author><pubDate>Mon, 10 Apr 2017 11:21:43 +0800</pubDate><description><![CDATA[nginx的IO模型其实大家应该有所了解，简单而言，就是一个master进程和多个worker进程（进程数由配置决定），master进程负责accept请求并队列化，最后转发给worker进程并由其进行处理请求和响应的整个过程。不过，这是进程层面，每个进程单线程处理。nginx在1.7.11版本提供了多线程特性（multi-threading），不过这个多线程仅用在aio模型（IO模型）中对本地文]]></description><category></category></item><item><title><![CDATA[Maven+Nexus进行SCM发布]]></title><link>https://blog.youkuaiyun.com/shift_alt_ctrl/article/details/69944565</link><guid>https://blog.youkuaiyun.com/shift_alt_ctrl/article/details/69944565</guid><author>shift_alt_ctrl</author><pubDate>Mon, 10 Apr 2017 11:21:07 +0800</pubDate><description><![CDATA[对于java的一些公用依赖包，我们通常需要发布在私有的nexus平台中，以便其他项目组使用。
    1）我们首先需要搭建自己的nexus平台。
    2）用户授权，指定用户具有release权限。
    3）调整maven中的setting.xml文件。
    4）调整project中的pom.xml文件。
 
1、setting.xml配置样例：
 

<setting]]></description><category></category></item><item><title><![CDATA[JDBC查询超时时间设置]]></title><link>https://blog.youkuaiyun.com/shift_alt_ctrl/article/details/69944554</link><guid>https://blog.youkuaiyun.com/shift_alt_ctrl/article/details/69944554</guid><author>shift_alt_ctrl</author><pubDate>Mon, 10 Apr 2017 11:20:29 +0800</pubDate><description><![CDATA[我们有时候需要控制SQL查询的最大耗时，比如一个“执行时长”的SQL在指定时间内如果没有执行完毕，我们需要“取消”此SQL，我们知道在JDBC中Statement类可以通过setQueryTimeout()来实现此特性。
    当设置query timeout之后，JDBC客户端发送请求，并等待直到执行完成或者超时，当超时后，客户端尝试cancel当前SQL，要求mysql server中断执]]></description><category></category></item><item><title><![CDATA[Tomcat JNDI连接池配置]]></title><link>https://blog.youkuaiyun.com/shift_alt_ctrl/article/details/69944542</link><guid>https://blog.youkuaiyun.com/shift_alt_ctrl/article/details/69944542</guid><author>shift_alt_ctrl</author><pubDate>Mon, 10 Apr 2017 11:20:00 +0800</pubDate><description><![CDATA[对于线上应用，我们通常将数据库连接交给容器，比如tomcat容器，那么开发者只需要通过JNDI的方式获取dataSource即可，不需要再关注数据库地址、密码等敏感信息，这样我们就可以简单做到配置隔离。
1）在tomcat的context.xml中增加如下配置：
    <Resource name="jdbc/localDB" 
			  factory="org.apache.tomca]]></description><category></category></item><item><title><![CDATA[算法编程（四）]]></title><link>https://blog.youkuaiyun.com/shift_alt_ctrl/article/details/69944532</link><guid>https://blog.youkuaiyun.com/shift_alt_ctrl/article/details/69944532</guid><author>shift_alt_ctrl</author><pubDate>Mon, 10 Apr 2017 11:19:22 +0800</pubDate><description><![CDATA[一、给定一个整数序列，请获取最小（最大）的K个数字
    这个题还算比较熟悉，在大数据计算时，经常会遇到类似于“Top N”的情况，这个题的解法有很多种，本例还是采用惯例做法：创建一个K大小的容器，容器内的数字都是排序的；在遍历输入序列时，如果遇到比容器内最大值还要大的数字时，则将容器中的最小值移除，即容器中保留K个“已经遇见”的最大数字。在java中，我们直接使用TreeSet作为容器，当然]]></description><category></category></item><item><title><![CDATA[算法编程（三）]]></title><link>https://blog.youkuaiyun.com/shift_alt_ctrl/article/details/69944531</link><guid>https://blog.youkuaiyun.com/shift_alt_ctrl/article/details/69944531</guid><author>shift_alt_ctrl</author><pubDate>Mon, 10 Apr 2017 11:19:15 +0800</pubDate><description><![CDATA[一、请使用栈，设计一个数据结构，它具有栈的“先进后出”的特性，同时还可以获取栈中的最小值，要求此数据结构的pop、push、min方法的复杂度均为O(1)
    这个题，最大的问题就在min方法上，如果不使用其他的辅助数据结构，是无法满足min方法的设计要求，即使使用一个临时变量保存当前的最小值（这种情况下，如果最小是被pop，就断片了。。）。所以我们的注意力就集中在：怎们能让一个栈是有序的？]]></description><category></category></item><item><title><![CDATA[算法编程（二）]]></title><link>https://blog.youkuaiyun.com/shift_alt_ctrl/article/details/69944527</link><guid>https://blog.youkuaiyun.com/shift_alt_ctrl/article/details/69944527</guid><author>shift_alt_ctrl</author><pubDate>Mon, 10 Apr 2017 11:19:08 +0800</pubDate><description><![CDATA[一、用栈来实现队列的功能
    描述：栈，stack，特点是先进后出；队列，queue，先进先出；请使用栈来实现队列的功能，且此队列具有两个基本操作--添加、删除。
 
    这个题本身并不难，但是不能钻”牛角尖“；一个栈是无论如何也无法实现队列的，那么可以考虑用两个栈来试一试：
    1）两个栈A、B，其中一个只能“添加”，另一个只能“删除”。
    2）初始时，栈为空，如果执]]></description><category></category></item><item><title><![CDATA[算法编程（一）]]></title><link>https://blog.youkuaiyun.com/shift_alt_ctrl/article/details/69944523</link><guid>https://blog.youkuaiyun.com/shift_alt_ctrl/article/details/69944523</guid><author>shift_alt_ctrl</author><pubDate>Mon, 10 Apr 2017 11:19:01 +0800</pubDate><description><![CDATA[一、字符串转换成数字
    设计要求：将输入的任意字符串，转换成数字（int类型），如果转换失败则抛出异常。
    输入："1234"，"+1234"，"-1234"，"1234567890"，"1234ab"
    输出：1234，1234，-1234，异常，异常
 
    思路：字符串有字符序列组成，每个字符都对应ASCII值，比如字符'0'为48，‘1’为49...'9'为]]></description><category></category></item><item><title><![CDATA[Mysql Replication基本原理（一）]]></title><link>https://blog.youkuaiyun.com/shift_alt_ctrl/article/details/69944511</link><guid>https://blog.youkuaiyun.com/shift_alt_ctrl/article/details/69944511</guid><author>shift_alt_ctrl</author><pubDate>Mon, 10 Apr 2017 11:18:31 +0800</pubDate><description><![CDATA[Replication的思想是将数据在集群的多个节点同步、备份，以提高集群数据的可用性（HA）；Mysql使用Replication架构来实现上述目的，同时可以提升了集群整体的并发能力。5.6版本作为一个里程碑，对replication做了不少的优化调整，提高了集群数据的一致性、同步的性能以及数据自动恢复（recovery）的能力。（本文内容基于MySQL 5.6+，不过在5.7+版本仍有部分调整]]></description><category></category></item><item><title><![CDATA[Mongodb中Mapreduce特性与原理]]></title><link>https://blog.youkuaiyun.com/shift_alt_ctrl/article/details/69944500</link><guid>https://blog.youkuaiyun.com/shift_alt_ctrl/article/details/69944500</guid><author>shift_alt_ctrl</author><pubDate>Mon, 10 Apr 2017 11:18:09 +0800</pubDate><description><![CDATA[对于每个从事数据技术的人才而言，mapreduce都不陌生，简单而言就是一种大数据计算、分类、分析的一个编程模式，目前很多大数据存储平台都支持mapreduce，比如hadoop、hbase等等，也有很多采用了类似于mapreduce的算法的其他数据计算平台，关于mapreduce的原理不再赘言，我们直接来了解mongodb中如何使用mapreduce。
 
    Mongodb中提供了2种]]></description><category></category></item><item><title><![CDATA[Mongodb中Aggregation特性]]></title><link>https://blog.youkuaiyun.com/shift_alt_ctrl/article/details/69944496</link><guid>https://blog.youkuaiyun.com/shift_alt_ctrl/article/details/69944496</guid><author>shift_alt_ctrl</author><pubDate>Mon, 10 Apr 2017 11:18:02 +0800</pubDate><description><![CDATA[Mongodb是目前最受欢迎的大数据存储平台之一，它可以作为云计算技术的底层存储层，比如为spark、hadoop、pig、hive、drill等计算框架提供源数据。Mongodb本身也提供了aggregation、mapreduce特性，以支持对大数据的计算、统计、分类等需求。
 
     Aggregation简单来说，就是提供数据统计、分析、分类的方法，这与mapreduce有异曲同工]]></description><category></category></item><item><title><![CDATA[Mongodb中Sharding集群]]></title><link>https://blog.youkuaiyun.com/shift_alt_ctrl/article/details/69944493</link><guid>https://blog.youkuaiyun.com/shift_alt_ctrl/article/details/69944493</guid><author>shift_alt_ctrl</author><pubDate>Mon, 10 Apr 2017 11:17:52 +0800</pubDate><description><![CDATA[随着mongodb数据量的增多，可能会达到单个节点的存储能力限制，以及application较大的访问量也会导致单个节点无法承担，所以此时需要构建集群环境，并通过sharding方案将整个数据集拆分成多个更小的chunk，并分布在集群中多个mongod节点上，最终达到存储和负载能力扩容、压力分流的作用。在sharding架构中，每个负责存储一部分数据的mongod节点称为shard（分片），sha]]></description><category></category></item><item><title><![CDATA[Mongodb客户端原理]]></title><link>https://blog.youkuaiyun.com/shift_alt_ctrl/article/details/69944490</link><guid>https://blog.youkuaiyun.com/shift_alt_ctrl/article/details/69944490</guid><author>shift_alt_ctrl</author><pubDate>Mon, 10 Apr 2017 11:17:45 +0800</pubDate><description><![CDATA[JAVA客户端原理简述
    mongodb提供了官方的JAVA客户端，在上文中我们已经看到了示例。
    接下来我们简单的阐述一下它的基本原理：
    1）MongoClient参数列表中，允许指定多个mongod的addresses，注意，它们要么是同一个replica set中所有memebers列表，要么为同一个cluster的mongos列表，且不能混合使用。
    mo]]></description><category></category></item><item><title><![CDATA[Mongodb中Index特性]]></title><link>https://blog.youkuaiyun.com/shift_alt_ctrl/article/details/69944482</link><guid>https://blog.youkuaiyun.com/shift_alt_ctrl/article/details/69944482</guid><author>shift_alt_ctrl</author><pubDate>Mon, 10 Apr 2017 11:17:24 +0800</pubDate><description><![CDATA[Mongodb支持多种index类型，这相对于其他Nosql数据库而言具有很大的优势，它的索引类型比较接近SQL数据库，所以开发者在mongodb中使用索引将是非常便捷的。索引最大的作用就是提高query的查询性能，如果没有索引，mongodb需要scan整个collection的所有的documents，并筛选符合条件的document，如果有索引，那么query只需要遍历index中有限个索引]]></description><category></category></item><item><title><![CDATA[Nginx学习总结：geo与image模块（四）]]></title><link>https://blog.youkuaiyun.com/shift_alt_ctrl/article/details/69944462</link><guid>https://blog.youkuaiyun.com/shift_alt_ctrl/article/details/69944462</guid><author>shift_alt_ctrl</author><pubDate>Mon, 10 Apr 2017 11:16:37 +0800</pubDate><description><![CDATA[斜体下划线，表示建议采用默认配置，无需显式的配置
一、ngx_http_geo_module
    核心特性为：根据客户端IP（段），geo模块将会匹配出指定的变量（比如，国家代码，城市代码）。geo模块可以帮助我们实现如下场景：
    1）简易的CDN网络
    2）多机房部署，站点分流。
    3）limit非法IP（段）的访问，或者限流。
    1、geo 【$addr]]></description><category></category></item><item><title><![CDATA[Protobuf与JAVA]]></title><link>https://blog.youkuaiyun.com/shift_alt_ctrl/article/details/69944441</link><guid>https://blog.youkuaiyun.com/shift_alt_ctrl/article/details/69944441</guid><author>shift_alt_ctrl</author><pubDate>Mon, 10 Apr 2017 11:15:45 +0800</pubDate><description><![CDATA[我们在开发一些RPC调用的程序时，通常会涉及到对象的序列化/反序列化的问题，比如一个“Person”对象从Client端通过TCP方式发送到Server端；因为TCP协议(UDP等这种低级协议)只能发送字节流，所以需要应用层将Java对象序列化成字节流，数据接收端再反序列化成Java对象即可。“序列化”一定会涉及到编码（encoding，format），目前我们可选择的编码方式：
    1）使]]></description><category></category></item><item><title><![CDATA[Jenkins + Git + Maven + tomcat集成环境搭建]]></title><link>https://blog.youkuaiyun.com/shift_alt_ctrl/article/details/69944434</link><guid>https://blog.youkuaiyun.com/shift_alt_ctrl/article/details/69944434</guid><author>shift_alt_ctrl</author><pubDate>Mon, 10 Apr 2017 11:15:37 +0800</pubDate><description><![CDATA[折腾了好几天，终于把Jenkins + Git + Maven + tomcat集成环境搭建起来了，最终主要实现“自动构建、部署”web应用。
 
1、安装环境
    操作系统：Centos 6.5
    JDK：1.7.x
    Maven：3.1.x
    Git： 1.7.1，自建GitLab平台
    tomcat：7.x
 
    上述宿主机器2台：192.]]></description><category></category></item></channel></rss>