前言:
在学习完分布式和大数据基础之后,很多高可用的系统都是基于集群来完成的,所谓集群就是将系统部署到多台服务器上面,多台服务器提供相同的服务,这样在某一台或者某几台出现问题的时候依然能能够提供稳定的服务。
下面介绍几个常用的服务集群的搭建。
在分布式系统中少不了一个重要的角色,服务中心,zookeeper,作为uoge分布式的协调中心,主要进行统一的数据管理,提供了以文件系统和监听机制等功能。zookeeper使用选举机制,所以集群一般以奇数个服务搭建,这里我们采用三台机器来搭建。
1、再虚拟机安装好zookeeper之后,修改zookeeper的配置文件zoo_sample.conf 修改成zoo.conf,修改配置文件,增加集群配置,
server.1=linux001:2888:3888
server.2=linux002:2888:3888
server.3=linux003:2888:3888
其中的1、2、3分别为3台zookeeper的id,这里可以自定义,后面的linux01分别对应3台机器的ip,2888为zookeeper服务器端口,3888为zookeeper服务间的通信端口。
2、在配置文件的datadir目录下新增一个文件myid,里面内容为该台机器的id,
3、到此zookeeper集群已经配置好了,分别启动三台机器三的zookeeper,通过命令行 zkServer.sh status查看zookeeper在集群中的角色。
集群的搭建可以有效的实现高可用,在Redis集群之中同样是使用主从的模式,一台主机可以搭配多台从机,在redis中,主机负责写,从机负责读,此处我们采用三主三从的模式,因此一共需要6台虚拟机,或者配置6个不同的配置文件来实现伪集群。
1、安装好redis之后,在安装目录下增加集群目录
2、在redis-cluster目录下新建6个文件夹用来保存模拟6台机器的数据文件和配置文件
3、修改配置文件redis.conf
3.1、daemonize yes 设置redis以守护线程方式启动;
3.2、 port 900**(根据每个机器设置相应的端口号),设置端口号;
3.3、bind xxxxxx 绑定当前机器IP;
3.4、dir /usr/local/redis-cluster/900*/ 指定数据文件的存放位置,必须指定不同的目录位置;
3.5、cluster-enabled yes (启动集群模式)
cluster-config-file nodes-700*.conf (设置本机的配置文件)
cluster-node-timeout 15000(设置集群的超时时间)
4、redis集群使用ruby命令,先下载安装ruby
yum install ruby
yum install rubygems
gem install redis(安装redis和ruby的接口)
5、分别启动6个redis ,并坚持redis是否都启动成功
ps -el |grep redis
6、在redis的安装目录src下执行命令来创建集群
./redis-trib.rb create –replicas 1 ip1:port1 ip2:port2 .. .. ..(创建集群)
注:1*******只主节点和从节点的比例,并且主节点写在前面,后面为对应的从节点
7、连接集群客户端
./redis-cli -c -h ip -p port
-c 表示登录集群
-h 表示ip
-p 表示端口号
kafaka是一个分布式的分布订阅式的消息系统,
1、修改broker的id
2、修改log日志的地址
kafka的日志默认是保存在临时文件tmp中,每次重启系统的时候,文件会丢失,因此,建议修改日志的保存路径。
3、修改zookeeper的链接地址
kafka基于zookeeper实现订阅-通知模式,并自带有zookeeper,高可用的消息中心要基于zookeeper集群,这里,我们使用刚刚配置的zookeeper 集群。端口使用默认端口。
4、配置环境变量,增加Kafka的安装路径
在/etc/profile 下配置Kafka的安装路径。
5、启动
5.1、先启动zookeeper
5.2、启动Kafka集群 ./bin/kafka-server-start.sh -daemon ./config/server.properties
5.3、创建主题
5.4、查看集群状态
可以看到该主题的分区以及备份在哪些Kafka集群下。