- 浏览: 27084 次
最新评论
文章列表
public class Test {
public static int binarySearch(Integer[] srcArray,int des) {
//定义初始最小、最大索引
int low = 0;
int high = srcArray.length - 1;
int max =0;int min=0;
//确保不会出现重复查找,越界
while (low <= high) {
//计算出中间索引值
...
kafka Consumer
- 博客分类:
- kafka
Kafka Consumer详细说明
(一)如何使用Kafka Consumer
public void test() {
Properties props = new Properties();
// 集群中某个(或几个)地址,最好配置多个,防止单台失败
props.put("bootstrap.servers", "localhost:9092");
// 同一个group.id可以有多个实例,默认情况下,多个实例会被balance的去处理订阅的topic下的全部消息
props.put(&q ...
上一章安装好Es后,尝试连接ES
一、以JSON为数据交互格式的RESTful API
打开终端,输入命令: curl 'http://localhost:9300/?pretty' ,可以看到es的相关信息
{
"name" : "vQClE4C",
"cluster_name" : "elasticsearch_myname",
"cluster_uuid" : "ImC6_BY5SQmksk6KMQHOMA",
"ve ...
CuratorFramework
(文档:http://curator.apache.org/curator-framework/index.html)
Framework 是什么?
Curator是什么?Curator Framework 是zookeeper的一个high-level API;
Curator能做什么?》自动链接管理, 如自动重连等;》简单的API;》特殊功能的实现等;如leader选举、共享锁等;
Curator实例创建的两种方式 A:工厂方法
CuratorFrameworkFactory. ...
本文使用kafka的版本为1.0.0
一、配置文件
############################# Server Basics #############################
broker.id=0
############################# Socket Server Settings #############################
listeners=PLAINTEXT://127.0.0.1:9092
# 响应请求的线程数
num.network.threads=3
# IO线 ...
1.下载源码 https://github.com/chenqunhui/cat.git
(1)修改了几个URL encode的Bug;
(2)短信告警中代码中使用${and}对&做替换;允许在content中使用 ${and}来连接参数,达到&的效果;
2.使用目录中指定的setting.xml安装:
注意:maven版本一定要在3.2.3以上;
cd cat
mvn clean install --settings settings.xml -DskipTests
3. 发布
(1)新建以下两个目 ...
1)统计80端口连接数netstat -nat|grep -i "80"|wc -l2)统计httpd协议连接数ps -ef|grep httpd|wc -l3)、统计已连接上的,状态为“establishednetstat -na|grep ESTABLISHED|wc -l4)、查出哪个IP地址连接最多,将其封了.netstat -na|grep ESTABLISHED|awk {print $5}|awk -F: {print $1}|sort|uniq -c|sort -r +0nnetstat -na|grep SYN|awk {print $5}|awk -F ...
Redis Sentinel(哨兵模式)
- 博客分类:
- redis
Redis Sentinel (哨兵模式)
(一)配置好redis主备两个实例
端口号分别为: Master: 6379 Slave:6381,并启动;
具体配置请参照 《Redis快速部署(主备)》
(二)配置哨兵
Redis哨兵实际上是一个特殊的redis实例,使用配置文件sentinel.conf进行启动
#1.哨兵启动的端口 port 26379 #2.指定mast ...
快速部署redis(主备)
- 博客分类:
- redis
(一)快速部署Redis
通过如下步骤可以按默认配置部署一个Redis实例:
wget http://download.redis.io/releases/redis-3.2.4.tar.gz
tar xzf redis-3.2.4.tar.gz
cd redis-3.2.4
make
src/redis-server & <--以默认配置启动redis
src/redis-cli -p 6379 <--通 ...
Elasticsearch最新版本是5.4,链接地址:https://www.elastic.co/downloads/elasticsearch
建议下载zip包,直接解压就可以使用了。
xxx@localhost program]$ unzip elasticsearch-5.4.1.zip
$ cd elasticsearch-5.4.1/bin
启动
$ ./elasticsearch
[2017-06-20T23:43:11,651][WARN ][o.e.b.JNANatives ] unable to install syscall filt ...
Zookeeper分布式锁的原理
- 博客分类:
- zookeeper
上一篇写了zk分布式锁的使用,现在我们来看一下Curator是怎么实现分布式锁的。
简单的来说:
(1)各个线程在当前path下生成顺序节点;
(2)序号为0的节点成功拿到锁;
(3)没有拿到锁的节点会增加一个对上一个节点的Watch,并阻塞;
(4)当第一个节点删除时,下一个节点被唤醒,重新去拿锁。(或者阻塞一定时间后删除自身节点,返回获取锁失败)
首先来看一下获取锁的代码:
lock.acquire();//会一直阻塞到获得锁成功
或者
boolean locked= lock.acquire(2000, TimeUnit.MILLISECON ...
Zookeeper分布式锁
- 博客分类:
- zookeeper
以下简单介绍使用Curator来实现zk分布式锁的应用和原理。
1.连接zk的Factory类
package com.zk;
import org.apache.curator.framework.CuratorFramework;
import org.apache.curator.framework.CuratorFrameworkFactory;
import org.apache.curator.retry.ExponentialBackoffRetry;
public class ZkClientFactory {
private static C ...
zookeeper客户端Curator
- 博客分类:
- zookeeper
Curator是zookeeper的客户端之一,以下通过模拟实现dubbo-Admin的功能来介绍Curator.
我们都知道,dubbo一般都使用zk来做目录服务,dubbo在zk上注册的根节点就“/dubbo”,所以我们通过节点查询来实现查询和监控服务状态。
1.引入curator
<dependency>
<groupId>org.apache.curator</groupId>
<artifactId>curator-recipes</artifactId>
<version> ...
linux环境变量配置
- 博客分类:
- linux
修改profile文件,将可执行文件加入系统全局可用。
方法1:(暂时生效)
使用export PATH=$PATH:<目录名>增加环境变量。(如export PATH=$PATH:/root/jdk/bin)
方法2:(仅对当前用户永久生效)
修改用户目录下的bash_profile文件。(如PATH=$PATH/bin:$HOME/root/bin)
方法3:(对所有用户都永久生效)
修改etc目录下的profile文件,接着使用source profile或./profile使环境变量生效。 ...
protobuf安装
- 博客分类:
- protobuf
使用tar -zxf protobuf-2.5.0.tar.gz命令解压后得到是 protobuf-2.5.0的源码,
cd protobuf-2.5.0 进入目录
假如 你希望编译成功后输出的目录 为 /home/work /protobuf/ 则输入如下两条命令:
./configure --prefix=/home/work /protobuf/
make && make install
编译成功后将export PATH= /home/work /protobuf/bin:$P ...