虚拟机linux------安装dubbo的zookeeper

本文介绍了Dubbo服务框架的基本概念,包括其前身、角色及调用流程。详细解析了服务提供者与消费者的交互过程,注册中心Zookeeper的安装与配置方法,以及监控中心的部署与使用步骤。

dubbox:
    分布式服务框架
    前身 阿里巴巴开源项目dubbo

    角色:
        provider:暴露服务的服务提供方
        consumer:调用远程服务的服务消费方
        register:服务注册与发现的注册中心
        Monitor:统计服务的调用次调和调用时间的监控中心
    
    调用关系:
        1、服务器启动,加载,运行服务提供者
        2、服务提供者在启动时,向注册中心注册自己提供的服务
        3、服务消费者在启动时,向注册中心订阅自己所需的服务
        4、注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者
        5、服务消费者,从提供地址列表中,基于软负债均衡算法,选一台提供者进行调用,如果调用失败,再选一台调用
        6、服务消费者和提供者,在内存中调用次数和调用时间,定时每分钟发送一次统计数据到数据中心

注册中心 Zookeeper
    是一个树型的目录服务,负责服务地址的注册与查找,相当于目录服务,服务提供者和消费者只在启动时与注册中心交互,注册中心不转发请求,压力较小。

    在linux下的安装:
        1、安装jdk
        2、上传zookeeper压缩包
        3、解压压缩包
        4、进入加压后的zookeeper目录
        5、创建data文件夹
        6、进入conf目录,复制一份zoo_sample.cfg改名为zoo.cfg
        7、打开zoo.cfg,修改属性  dataDir=/root/zookeeper-3.4.6/data

    启动:
        进入bin目录,输入./zkServer.sh start
    关闭:
        输入 ./zkServer.sh stop
    查看状态
        ./zkServer.sh status


管控台(监控中心):
    安装:
        1、上传dubbo-admin-2.8.4.war(编译管理端的源码得到)
        2、复制dubbo-admin-2.8.4.war 到tomacat的webapps下
        3、启动tomcat   ./bin/startup.sh(查看启动过程 tail -F tomcat7/logs/catalina.out)
        4、如果你部署在zookeeper同一台主机并且端口是默认的2181,则无需修改任何配置。如果不是在一台主机上或端口被修改,需要修改WEB-INF下的dubbo.properties  ,修改如下配置:dubbo.registry.address=zookeeper://127.0.0.1:2181,之后重新启动tomcat

    使用(在打开zookeeper(先打开)和tomcat的前提下):
        打开浏览器,输入http://192.168.44.130:8080/dubbo-admin/ ,登录用户名和密码均为root 进入首页
    
    问题:
        当服务提供发需要执行一些耗时操作时,那么服务消费方,会默认情况情况每隔一秒调用一次,默认调用三次,如果还没有返回结果,消费方抛出异常
        
        分析
            好处:dubbo在设计之初,考虑到了接口的健壮性
            坏处:对于写操作的接口,就不合适了
        解决:
            解决接口超时:使用一些配置,可以再消费方配置,也可以在服务方配置,但是在消费方的超时时间一定要大于服务方的接口执行时间。我们推荐在服务方配置。@Service(timeout=6000,retries=1)

 

### 安装和配置ZooKeeper #### 准备工作 在开始安装之前,需确保已准备好Linux虚拟机环境并能够通过Xshell或其他SSH工具连接到该虚拟机。进入`/usr/local/src/`目录以便后续操作[^1]。 ```bash cd /usr/local/src/ ``` #### 下载ZooKeeper软件包 访问官方下载页面获取最新版本的ZooKeeper压缩包。推荐使用Apache官网镜像站点中的资源链接进行下载[^3]: ```bash wget http://mirrors.hust.edu.cn/apache/zookeeper/zookeeper-<version>/zookeeper-<version>.tar.gz ``` 其中 `<version>` 表示具体的ZooKeeper版本号。 #### 解压文件 解压刚刚下载的压缩包至目标路径,并重命名方便管理: ```bash tar -zxvf zookeeper-<version>.tar.gz mv zookeeper-<version> /usr/local/zookeeper ``` #### 配置ZooKeeper 创建数据存储目录以及日志记录位置: ```bash mkdir -p /usr/local/zookeeper/data mkdir -p /usr/local/zookeeper/logs ``` 编辑 `zoo.cfg` 文件来定义基本参数设置。此文件通常位于 `/usr/local/zookeeper/conf/` 路径下。如果不存在,则可以复制默认模板文件: ```bash cp /usr/local/zookeeper/conf/zoo_sample.cfg /usr/local/zookeeper/conf/zoo.cfg ``` 打开 `zoo.cfg` 并修改如下字段以适配当前需求: ```properties tickTime=2000 dataDir=/usr/local/zookeeper/data clientPort=2181 initLimit=5 syncLimit=2 server.1=node1:2888:3888 server.2=node2:2888:3888 server.3=node3:2888:3888 ``` 注意,在单节点测试环境中可省略最后几行涉及集群的部分;而在实际生产部署时则需要按照实际情况调整这些值[^2]。 对于每台机器上的实例还需要在其对应的数据目录里写入myid文件,内容分别为整数形式表示的身份编号(如 node1 对应 myid 的值为 1)。执行命令如下所示: ```bash echo "1" > /usr/local/zookeeper/data/myid # 在node1上运行 echo "2" > /usr/local/zookeeper/data/myid # 在node2上运行 echo "3" > /usr/local/zookeeper/data/myid # 在node3上运行 ``` #### 启动服务 切换到bin目录启动ZooKeeper进程: ```bash /usr/local/zookeeper/bin/zkServer.sh start ``` 验证状态是否正常: ```bash /usr/local/zookeeper/bin/zkServer.sh status ``` 当显示模式为standalone或者leader/follower即表明成功开启服务。 --- ### 注意事项 - 如果是在Dubbo框架下的应用开发场景中,请确认所选ZooKeeper版本兼容性良好。 - 生产环境下建议采用多副本架构提升可靠性与性能表现。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值