系统版本 CentOS 6.6
java version 1.7
zookeeper版本 3.4.10
kafka版本 0.11.0.1
安装zookeeper
1.下载
1 | wget https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/zookeeper-3.4.10/zookeeper-3.4.10.tar.gz |
大家对连接池的概念应该都很熟悉了,apache commons-pool是apache基金会的一个开源对象池组件,我们常用的数据库连接池dpcp和redis的java客户端jedis都使用commons-pool来管理连接。现在我们通过阅读commons-pool的部分代码来看一看他们在编写连接池组件时采用了什么样的设计思路和技术。
首先我们思考一下,连接池除应该具备哪些功能?
带着这三个问题,下面我们一起看一下commons-pool的代码,
它主要提供这个几种类型的对象池:
所谓的IOC(Inversion of control)控制反转,实际是引入一个管理资源的第三方来统一管理分配资源,来代替各个资源持有者,使用者相互依赖的情况。
以打牌为例,之前玩家需要自己摸牌,现在改成由发牌人为所有玩家发牌,这个过程就叫做“控制反转”,发牌人就是IOC容器,发牌人给玩家发牌的过程就被称为“依赖注入(Dependency Injection)”。
1 | //不使用IOC Player自己负责实例化Card |
在实际的j2ee项目中,使用依赖注入有这样几个好处:
Sendmail是一个linux邮件服务系统,可以使用它来搭建邮件服务器。
关于邮件的几个名词:
MTA(Mail Transfer Agent) 邮件传送代理,运行在邮件服务器的程序,负责接收发送邮件
MUA(Mail User Agent) 用户端代理,提供查看编辑提交邮件的功能(如foxmail)
MDA(Mail Delivery Agent)主要的功能就是将MTA接收的信件依照信件的流向(送到哪里)将该信件放置到本机账户下的邮件文件中(收件箱),或者再经由MTA将信件送到下个MTA。如果信件的流向是到本机,这个邮件代理的功能就不只是将由MTA传来的邮件放置到每个用户的收件箱,它还可以具有邮件过滤(filtering)与其他相关功能^foot。
把自己工作环境换成linux之后总会遇到各种无语的问题,比如我在web开发时会经常要切换测试环境或者本地环境的hosts,但是在用firefox的hosts插件时发现每次修改都会卡死,最后忍无可忍打算写一个切换hosts环境的脚本,有问题欢迎指正~
##问题分析
我们都知道hosts文件就长这样,#是注释符、ip和域名用空格分开
下面是测试文件testhosts,用DEV和TEST区分不同环境:
1 | #DEV |
解决步骤
1.读取用户要切换的环境
2.读取hosts文件,在指定的行前添加注释
3.维护一个值 保存hosts所处环境 提示用户当前hosts环境