Docker 安装zookeeper 集群&dubbo 环境隔离

本文探讨了在Spring+SpringMVC+Zookeeper+Dubbo框架下,面对多个项目同时开发与灰度升级带来的挑战,提出了通过代码分支隔离、Docker镜像管理和Zookeeper分组注册等策略,实现开发与生产环境的有效隔离,确保版本稳定升级。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、由来

1、工作中框架是spring+springMVC+zookeeper+dubbox

2、目前有正在运行的项目,正在使用;另外需要加新功能和新项目。

3、同一时间有多个项目在开发

3、当前只有一个代码master 库在支撑

4、每次灰度升级都会带来大大小小的一些问题,影响线上用户使用

5、如何解决?

二、问题分析

1、多个项目同时在跑、却只有一个代码库;大家都往上面push 代码,每次升级都把所有代码升级上去。并且有些代码是没有开发完成的,也没有通过测试。这是非常危险的

2、希望每次升级都只升级开发完成的代码,并且是通过测试的。

3、开发服务器只有一台,有两个基础服务与一个业务服务,及多个消费应用,需要尽可能充分利用这台服务器

4、后台写好代码后发布到开发服务器运行以供,前端开发人员对接接口

5、每个版本都以一个消费应用划分,即:一个总业务服务,一个消费应用

三、问题解决思路

1、每个项目与版本代码通过分支隔离。仅仅只能开发完成时拿到master 中去

2、当开发完成后合并到master 中去,然后发布到测试环境,让测试人员测试,测试通过后再发布到生产环境

2、使用docker,管理zookeeper将基础服务注册到zookeeper 中,并且将业务服务按分组的方式注册到zookeeper中,可以使用单机版,也可以集群

3、业务服务与开发的版本打包成docker 镜像,代码是分支的代码,按版本划分。多个项目同时开发的过程中,因为业务服务是重叠部分。将接口重复注册到zookeeper 中肯定有问题,消费的时候或者调用不到我想要的服务。所以需要通过 dubbo.registery.group隔离

4、将业务服务给定一个group 名称,并且应用在发现服务的时候也是通过group 去发现的。所以可以将不同的项目,隔离出来。

另外也有考虑过使用,注册中心隔离,但考虑到有公用部分(两个基础服务),所以“注册中心隔离”是不合适的。

四、zookeeper 安装与集群

1、安装

#拉取zookeeper 容器
docker pull zookeeper

#创建docker-compose.yml 文件
version: '2'
services:
    zoo1:
        image: zookeeper
        restart: always
        container_name: zoo1
        ports:
            - "2181:2181"
        environment:
            ZOO_MY_ID: 1
            ZOO_SERVERS: server.1=zoo1:2888:3888 server.2=zoo2:2888:3888 server.3=zoo3:2888:3888

    zoo2:
        image: zookeeper
        restart: always
        container_name: zoo2
        ports:
            - "2182:2181"
        environment:
            ZOO_MY_ID: 2
            ZOO_SERVERS: server.1=zoo1:2888:3888 server.2=zoo2:2888:3888 server.3=zoo3:2888:3888

    zoo3:
        image: zookeeper
        restart: always
        container_name: zoo3
        ports:
            - "2183:2181"
        environment:
            ZOO_MY_ID: 3
            ZOO_SERVERS: server.1=zoo1:2888:3888 server.2=zoo2:2888:3888 server.3=zoo3:2888:3888

2、运行

#将路径切换到 docker-compose.yml 文件夹下,执行
COMPOSE_PROJECT_NAME=zk_test docker-compose up -d

考虑教程:https://segmentfault.com/a/1190000006907443?utm_source=tag-newest

五、创建版本镜像

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值