解决dubbo开发/测试环境分离问题

问题来源

现在 dubbo被越来越多的互联网公司使用,由于背后有阿里巴巴的支持,所以社区活跃性,系统稳定性都得到了很好的保证。
分布式系统带来的优点毋庸置疑,系统可扩展行,系统稳定性,避免单点问题等等。
但是,带来优点的同时,也会产生一些弊端,比如调试性。举个简单例子,A同事在debug的时候,可能会debug到B同事的机器上面。
简单的解决方式,每个人都建立自己本地的zk,但是这样有明显的弊端,就是有除非本地能拥有所有服务,如果本地依赖于公司内其他业务方的dubbo服务,则这种方式就完全不能使用。
为此,我们的主要目的就是解决,开发环境/测试环境的环境分离问题。可以让开发只dubug到自己本身的代码,测试可以多套环境并行。

如何解决

我们直连思路来自于dubbo官方文档的这篇文章:直连提供者
文章提供了三种方式:
Alt
其中jvm参数,需要每次修jvm配置, xml配置需要修改文件,这两种方式,都是有一定侵入性的。
所以,我们采用第三种方式:生成dubbo-resolver.properties文件。

方案

在这里插入图片描述
我们的需求如上图所示:
1 A是web服务,B,C是dubbo服务。
2 我们有六台服务器
3 server1,server2,server3为一组, server4, server5,server6为另外一组,相互不干扰。

在提解决方案之前,我们先约定几个概念:
项目: 一个git地址我们定义为一个项目
应用: 单独可以运行的app我们定义为应用,一个项目可以包括一个应用,也可以包括多个应用。
策略: 针对多个项目的直连方案总和。
我们的解决方案:
1 新建一个策略,关联相关的项目。
2 对每个项目下面的应用,配置相关的直连方案。
3 遍历每个项目下面每个应用,按直连方案,生成dubbo-resolver.properties
4 如果是本地的,用户下载到自己的用户目录下。
5 如果是远程的,我们的程序会将文件拷贝到远程服务器上面。

三者关系如下图:
在这里插入图片描述

todo 源代码提供

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值