美文网首页
多环境如何共用基础组件

多环境如何共用基础组件

作者: wu_sphinx | 来源:发表于2019-07-18 21:07 被阅读0次

在软件开发过程中,通常会有多个测试环境,以供开发、测试、性能并行之用,每个环境部署的服务几乎是一样的,不一样的地方在于配置、代码分支等。除了业务部署,基础组件如rediskafkazk等,因为不存在迭代(除了升级),配置上通常也不会有什么变化,因为需要多个环境,所以需要部署多套 一模一样 的基础组件,这就造成了资源的浪费。聪明如你,为了节省资源,能否以尽可能小的代价让多个环境共用这些基础组件呢?当然可以

多环境REDIS共用

我们都知道redisk:v内存数据库,简单易用,以一为写缓存示例:

// open a connection to Redis
...


connection.set("foo", "bar");
String value = connection.get("foo");
System.out.println(value);

假设我们现有3个环境,环境名(ENV_NAME)分别是

  • STAGING
  • TEST
  • DEMO

要做到这三个环境共用redis组件,只需要将k加上环境变量即可(加上_作为k与环境变量的分隔符),比如示例代码中的kfoo,
代码稍加改动

connection.set("foo" + "_" + System.getenv("ENV_NAME"), "bar");

修改后三个环境的k分别为:

  • foo_STAGING
  • foo_TEST
  • foo_DEMO

上例中是写缓存,读缓存时一样,也需要加上环境变量,至此,三个环境即可共用同一套redis组件,可将取key统一成一个方法如下所示

  static String getKey(String key) {
    String envName = System.getenv("ENV_NAME");
    // 因为组件共用主要用于测试环境,线上环境(假设ENV_NAME为“PRO”)或其它情况未设ENV_NAME,则保持不变
    if(envName == null || envName.isEmpty() || envName.equals("PRO")){
        return key;
    }
    return String.join(key,"_", envName);
  }

多环境KAFKA共用

上例中讲到多环境共用redis, 自然,kafka用的一个套路, 因为topic在逻辑上可以被认为是一个queue, 使用时,topic带上环境变量即可

zk自然也是一样的道理,这个方法固然不是最好的,但是通过加环境变量后缀,简单而有效,也不易出错,落地相对容易,缺点是对代码有改动,如果没改全,就会出问题。

如果你有更好的共用组件方法,欢迎不吝赐教。

相关文章

  • 多环境如何共用基础组件

    在软件开发过程中,通常会有多个测试环境,以供开发、测试、性能并行之用,每个环境部署的服务几乎是一样的,不一样的地方...

  • SaaS-多租户数据隔离方案

    一 数据隔离简介 多租户技术或称多重租赁技术,是一种软件架构技术,是实现如何在多用户环境下共用相同的系统或程序组件...

  • vue的部分基础组件

    组件的基础 # 组件基础 ## 什么是组件 >对我们的页面中的共用的元素,进行拆分,单独做成一个模块,方便后续的使...

  • Spark Multi Tenancy系列 - 1 简述社区问题

    Multi Tenancy 多租户,从软件架构定义,即于多用户的环境共用相同的系统或程序组件,计算资源根据一定的策...

  • ELK基础 环境搭建

    一、ELK基础环境简介: ELK环境是一个日志分析系统 1、ELK基础环境搭建用到的组件:elasticsearc...

  • 前端知识体系(React)

    1、基础知识 如何理解组件化、模块化 如何理解state的渲染机制 组件的生命周期 组件的通信方式 es6的基础知...

  • vuex基础

    vuex介绍 需求:父子组件的传值可以通过props和发布事件来传递,不相关的组件如何传递数据,或者说共用一份数据...

  • vue3 批量注册全局组件(共用组件)

    vue2中引入共用组件 main.js 中引入 就可以了! vue3中引入共用组件 main.js 中引入 就可以...

  • 框架部分

    Vue 环境搭建、配置路由 基础指令(选项数据、模板语法) 计算属性、方法、侦听器 组件 组件传值(父子组件、兄弟...

  • Python 高端课程培训,CMDB自动化运维培训!

    1、入门小基础(8个课时): 1、沙盒环境,py环境安装使用 2、vue 基础语法与组件学习 3、vue + el...

网友评论

      本文标题:多环境如何共用基础组件

      本文链接:https://www.haomeiwen.com/subject/jkbrlctx.html