zookeeper安装

zookeeper 安装
1,wget http://mirrors.hust.edu.cn/apache/zookeeper/zookeeper-3.4.10/zookeeper-3.4.10.tar.gz


2,tar -zxvf zookeeper-3.4.10.tar.gz -C /usr/local

mkdir /usr/local/zookeeper-3.4.10/data
mkdir /usr/local/zookeeper-3.4.10/logs

cd /usr/local/zookeeper-3.4.10
cd conf
cp zoo_sample.cfg zoo.cfg


3,修改zoo.cfg文件,添加data和log目录,如下:

dataDir=/usr/local/zookeeper-3.4.10/data
dataLogDir=/usr/local/zookeeper-3.4.10/logs
server.1=192.168.211.128:2888:3888
server.2=192.168.211.130:2888:3888
server.3=192.168.211.131:2888:3888

如:
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/usr/local/zookeeper-3.4.10/data
dataLogDir=/usr/local/zookeeper-3.4.10/logs
clientPort=2181
server.1=192.168.211.128:2888:3888
server.2=192.168.211.130:2888:3888
server.3=192.168.211.131:2888:3888
#maxClientCnxns=60
#autopurge.snapRetainCount=3
#autopurge.purgeInterval=1


1.2888 端口号是zookeeper服务之间通信的端口 
2.3888 是zookeeper 与其他应用程序通信的端口 
3.initLimit:这个配置项是用来配置 Zookeeper 接受客户端(这里所说的客户端不是用户连接 Zookeeper服务器的客户端,而是 Zookeeper 服务器集群中连接到 Leader 的 Follower 服务器)初始化连接时最长能忍受多少个心跳时间间隔数。当已经超过 10 个心跳的时间(也就是 tickTime)长度后 Zookeeper 服务器还没有收到客户端的返回信息,那么表明这个客户端连接失败。总的时间长度就是 5*2000=10 秒。 
4.syncLimit:这个配置项标识 Leader 与 Follower 之间发送消息,请求和应答时间长度,最长不能超过多少个 tickTime 的时间长度,总的时间长度就是 2*2000=4 秒 
5.server.A=B:C:D:其中 A 是一个数字,表示这个是第几号服务器;B 是这个服务器的IP地址或/etc/hosts文件中映射了IP的主机名;C 表示的是这个服务器与集群中的 Leader 服务器交换信息的端口;D 表示的是万一集群中的 Leader 服务器挂了,需要一个端口来重新进行选举,选出一个新的 Leader,而这个端口就是用来执行选举时服务器相互通信的端口。如果是伪集群的配置方式,由于 B 都是一样,所以不同的 Zookeeper 实例通信端口号不能一样,所以要给它们分配不同的端口号。
6.maxClientCnxns:客户端最大能连接数,超过则连接失败

集群就多台:server.A


然后开启3个端口:2181,2888,3888

firewall-cmd --zone=public --add-port=3888/tcp --permanent
firewall-cmd --reload
或:

iptables -I INPUT -p tcp --dport 3306 -j ACCEPT


4,在 dataDir=/opt/zookeeper-3.4.10/data下创建 myid文件 编辑myid文件,
并在对应的IP的机器上输入对应的编号。如在zookeeper上,myid文件内容就是1。如果只在单点上进行安装配置,那么只有一个server.1。如下:

vi myid
1

5,在.bash_profile文件中增加zookeeper配置:
(.bash_profile 在home 目录,ls -a 可以查看到)
cd /root
vi .bash_profile

# User specific environment and startup programs

PATH=$PATH:$HOME/bin

export ZOOKEEPER_HOME=/usr/local/zookeeper-3.4.10
export PATH=$ZOOKEEPER_HOME/bin:$PATH

export PATH


让配置生效:
source .bash_profile


6,启动
zkServer.sh start
查看状态:zkServer.sh status
查看zookeeper 的输出文件:tail -500f zookeeper.out

关闭zookeeper:zkServer.sh stop


spring dubbo 配置:
1,消费方(pc控制层)

    
    
    

    
    
        
    
    

属性:cluster 类型:string
是否必填:可选 缺省值:failover
作用:性能调优 集群方式:可选:failover/failfast/failsafe/failback/forking
1、Failover Cluster
失败自动切换,当出现失败,重试其它服务器。(缺省) 通常用于读操作,但重试会带来更长延迟。 可通过retries="2"来设置重试次数(不含第一次)。

或:

或:


2、Failfast Cluster
快速失败,只发起一次调用,失败立即报错。 通常用于非幂等性的写操作,比如新增记录。

或:

3.Failsafe Cluster
失败安全,出现异常时,直接忽略,通常 用于写入审计日志等操作
或者

4.Failback Cluster
失败自动恢复,后台记录失败请求,定时重发,通常用于消息通知操作。



5.Forking Cluster
并行调用多个服务,只要一个成功即返回,通常用于实时要求较高的读操作,但需要浪费更多的服务器资源。可通过forks="2"来设置最大并发数。



在实际项目中,生产环境中,我们用failover模式时可以这样设计服务接口,遵循接口隔离原则 ,查询服务与写操作服务隔离,

查询接口我们可以配置retries="2" 
在写操作接口我们配置retries="0" ,如果不设置为0, 超时,会重新连接,会出现重复写的情况,所以使用failover模式时,我们要进行读写操作接口隔离,且写操作接口retries=0


dubbo:reference 的一些属性的说明:
      1)interface调用的服务接口
      2)check 启动时检查提供者是否存在,true报错,false忽略
      3)registry 从指定注册中心注册获取服务列表,在多个注册中心时使用,值为的id属性,多个注册中心ID用逗号分隔
      4)loadbalance 负载均衡策略,可选值:random,roundrobin,leastactive,分别表示:随机,轮循,最少活跃调用

dubbo负载均衡:https://blog.csdn.net/hxpjava1/article/details/55662168


2,提供方:

    
    
    
    
    
    
    
    
    
      


     说明: port:用dubbo协议在端口暴露服务
        threadpool:线程模型,cached缓存线程池,空闲一分钟自动删除,需要时重建。http://dubbo.io/User+Guide-zh.htm#UserGuide-zh-%3Cdubbo%3Aprotocol%2F%3E
        threads:最大线程数


spring dubbo 配置:
1,消费方(pc控制层)

    
    
    

    
    
        
    
    
 

你可能感兴趣的:(zookeeper,zookeeper)