一、zookeeper注册中心
谈zookeeper之前,感觉还是需要聊一聊分布式。不然一个陌生的技术作用在哪里就体现不出来了。
在实际项目开发中,一个系统肯定不止你一个人开发,那么在多位软件开发工程师一起协调合作,项目管理和项目开发的调配不好统一管理,这时候就产生分布式系统,目前国内分布式系统最火的依然是alibba的Dubbo框架 ,而zookeeper就是Dubbo的核心注册中心
分布式: 分布式系统是若干独立计算机(服务器) 的集合 这些计算机相对用户来讲就是一个独立的系统。分布式系统(distributed system)是建立在网络之上的服务器端一种结构。
1.注册中心
zookeeper是一个高性能、分布式的开放的分布式应用程序协调服务。
翻译过来是动物管理员他是一个树形结构。这种树形结构和标准文件系统相似。ZooKeeper 树中的每个节点被称为Znode。和文件系统的目录树一样,ZooKeeper 树中的每个节点可以拥有子节点。每个节点表示一个唯一服务资源。Zookeeper 运行需要 java 环境。
2、安装配置zookeeper
进入官网 下载好压缩包 zookeeper-3.5.4-beta.tar.gz
修改配置文件 zookeeper-3.5.4/conf/ 复制 zoo-sample.cfg 改名为 zoo.cfg
因为在zookeeper启动时会首先寻找zoo.cfg文件 ,并修改几个属性值
1.tickTime 心跳时间
每隔tickTime时间间隔发送一个心跳。zookeeper服务器之间或客户端与服务器之间的维持心跳
2.dataDir 数据目录
3.clientPort 端口号 默认是2181
那么如何将Zookeeper加入到我们的项目里呢?
<!--服务的名称-->
<dubbo:application name="zk-node-shop-web"/>
<!--声明dubbo注册中心-->
<dubbo:registry address="zookeeper://localhost:2181" />
<dubbo:reference interface="com.bjpowernode.service.OrderService"
id="remoteOrderService" check="false" retries="2" timeout="6000" />
<dubbo:reference interface="com.bjpowernode.service.UserInfoService"
id="remoteUserService"
check="false"
retries="2"
timeout="6000"
version="1.0" />
<!--声明自定义时候showServiceImpl对象-->
<bean id="showService" class="com.bjpowernode.service.impl.ShowServiceImpl">
<property name="orderService" ref="remoteOrderService" />
<property name="userInfoService" ref="remoteUserService" />
</bean>
这是一个服务的消费者,可以看到我们需要声明Dubbo服务的名称,声明zookeeper注册中心。其中。 retries 表示重试的次数,这个次数不建议设的过大。一次或者两次就好,重试成功的机会不大。timeout 失效时间 ,check 属性 一般建议设置为false.若为true表示启动时需要先启动服务的提供者,在启动服务的消费者 否则启动报错。version版本号。
<!--设置服务名称-->
<dubbo:application name="zk-node-shop-userservice"></dubbo:application>
<!--声明注册中心 dubbo:registry -->
<dubbo:registry address="zookeeper://localhost:2181"></dubbo:registry>
<!--声明使用的协议-->
<dubbo:protocol name="dubbo" port="20882" />
<!--暴露接口,供消费者使用-->
<dubbo:service interface="com.bjpowernode.service.UserInfoService"
ref="userService" version="1.0"/>
再看我们服务的提供者。我们服务的提供者需要暴露我们的服务接口。供消费者使用
运行应用
先启动注册中心,这个项目是在windows上,所以找到我们刚刚的安装目录,
双击运行我们的zkServer.cmd 出现一个dos窗口。这个窗口不要关闭,
第二步运行我们的服务提供者
最后开启我们的服务的消费者,访问的时候也是直接访问我们的服务消费者
二、Dubbo监控中心
Dubbo监控中心在程序中不是非要不可的,在一个Dubbo项目中,只需要我们的注册中心、服务提供者和服务的消费者即可
dubbo-admin
这是国内alibaba公司提供的一个分布式项目管理工具。
下载监控中心,https://github.com/apache/incubator-dubbo-ops
运行监控中心的jar包
可以修改dubbo-properties文件,推荐不修改,直接使用默认配置即可
启动
先启动注册中心zookeeper zkServer.cmd
执行服务提供者
运行监控中心 在所在目录下执行cmd 窗口命令 java -jar xxx
在浏览器地址栏输入 http;//localhost:7001
默认的用户名和密码都是root