分布式应用配置的优点有哪些

发布时间:2021-10-11 09:56:20 作者:iii
来源:亿速云 阅读:152

这篇文章主要讲解了“分布式应用配置的优点有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“分布式应用配置的优点有哪些”吧!

1 分布式环境下的配置管理挑战

可以说配置化是当今应用开发与部署必备的一个能力要求,我们通常把一些容易变化以及依赖外部情况而变化的内容,通过配置化的方式来实现,这样我们就可以在零编码的情况下实现功能调整,实现极低成本的应用扩展能力。而对于配置管理方式,最为常见的方式就是配置文件方式, 通过特定的文件内容格式进行设置, 部署时也会与应用程序放在一起。这样使用方式在单机情况下比较容易且简单,但是在大型的分布式应用场景下,特别又要区分不同环境(开发,测试,线上等)就会导致管理成本与出错风险急速加大。 分布式应用配置的优点有哪些

以上述场景为例,涉及的问题与挑战有:

  1. 操作复杂,成本高:如果有几十台实例,则需要按个登录机器进行修改, 很容易发生遗漏;

  2. 检验与查错难度大:在几十台实例修改,如有其中几台修改出错,很难发现,同时也很难进行内容回溯与回滚;

  3. PAAS环境下,无法有效操作:在paas环境下,因为漂移都现象存在,直接登录实例进行修改,已经是非常危险的行为了,因为一旦漂移,配置就会失效到最初方式;

  4. 动态加载,配置变更推送场景很难支持。

所以针对大型分布式场景,通过建立配置中心来统一管理配置的能力就显得非常必要了,把业务开发者从复杂以及繁琐的配置管理中解脱出来,只需专注于业务代码本身,从而可以显著提升开发以及运维效率。将配置和应用在部署阶段解耦也可以进一步提升发布的效率,降低部署成本。同时配置独立化管理后,针对配置的安全性、回滚能力、追溯能力、应急控制处理等也会有很强的支撑。

2  BRCC为什么是一个好的配置中心

2.1  好的配置中心应该具有的优点

前面讲了在分布式环境中为什么需要配置中心,那么一个好的配置中心应该具备哪些优点呢?

在我们看来,好的配置中心应该有以下优点:

1. 使用便捷

业务系统使用配置中心应该是非常简单的:配置中心提供统一的kv管理能力,业务系统从配置中心获取配置,然后在系统中使用配置。所以我们认为,衡量配置中心是否优秀的最关键因素就是业务系统使用配置的便捷程度,越方便越是好的配置中心。

使用便捷包括了两个方面:

2. 功能完善

配置中心最主要的功能是对配置的管理,除了对配置的crud、批量变更、模糊匹配、快速导航之外,一个好的配置中心还需要有以下的配置能力:

3. 运维简单

4. 安全可靠

配置安全性非常关键,例如数据库的用户与密码,一旦泄露风险非常大,所以配置中心的安全性需要很全面的考量。

一是配置存储、传输的安全性,如内容可以加密;二是操作的权限管控, 必须对使用者进行权限控制,而权限控制的粒度到什么程度、使用者的操作是否有迹可循、配置变更是否可回滚,都决定着配置中心的好坏。

5. 高性能与稳定性

在很多大型业务场景下,还面临着众多产品线同时使用的情况,产生高并发的请求配置服务的情况。所以在配置服务的架构设计必须需要考虑到这种因素,实现高吞吐、高时效与高稳定的架构要求。所以整体架构要具备分布式的架构设计要求,配合弹性的扩展能力与多级的缓存同步机制,才能很好地解决这些问题,达到秒级的推送与变更能力, 提升至4个9999的稳定性要求。

2.2 BRCC的优点

21年2月我们开源了一款配置中心BRCC (Better Remote Config Center),其主打的产品特性就是简单、易用、安全。BRCC功能结构图如下:

分布式应用配置的优点有哪些

特点
1. 简单好用的SDK端

BRCC提供多种语言的sdk,拿java sdk来说,其特点就是完全兼容springboot的配置规范,可以直接使用spring的@Value注解来加载配置,如下代码:

@Component
public class Person {

    @Value("person.username")
    private String name;


    // 提供Setter 和 Getter 方法
}

对于习惯spring的开发者来说,可以在application.properties里面设置 person.username=张三 就能在启动时将“张三”赋值给persion类的name变量上。而在使用BRCC时,只要把 person.username=张三 保存在BRCC中,引入BRCC starter的依赖就可以了,在业务代码上无需改造,对业务系统来说可以算是0侵入了。

2. 功能完备的服务端

BRCC作为一种轻量级的分布式配置管理解决方案,部署简单,基于spring boot 2.0开发,打包后可以直接运行,支持配置的分发、更新推送。除了部署简单外,服务端还有一些特别实用的功能:

总而言之,BRCC是一块非常优秀的分布式配置中心解决方案,它完全兼容原生Spring配置规范,除了提供基本的配置存储,还提供配置注释、key-value维度查询、变更推送、变更轨迹记录及查询、细粒度的权限控制、sdk实例管理、友好的UI界面,简单部署等特点,详细的功能请参看https://github.com/baidu/brcc。

下面我们来看看如何快速搭建和使用吧!

3. BRCC快速入门

3.1 快速搭建BRCC服务端

选择一个合适的版本, 您可以在brcc的release notes中找到每个版本支持的功能的介绍,当前推荐的稳定版本为1.0.4。

https://github.com/baidu/brcc/releases

为了方便大家体验,我们在百度云上部署了体验环境:

在线体验环境地址:http://180.76.36.149/#/login

测试账号1:test1 123456

测试账号2:test2 123456

第一步,环境准备。

BRCC 依赖 Java 环境来运行。

https://docs.oracle.com/cd/E19182-01/820-7851/inst_cli_jdk_javahome_t/

如果您是从代码开始构建并运行BRCC,还需要为此配置 Maven环境。

https://maven.apache.org/index.html

请确保是在以下版本环境中安装使用:

  1. 64 bit OS,支持 Linux/Unix/Mac/Windows,推荐选用 Linux/Unix/Mac。

  2. 64 bit JDK 1.8+;下载 & 配置。

  3. Maven 3.2.x+;下载 & 配置。(仅源码编译需要)

  4. mysql5.6+

  5. redis3.2+

64 bit JDK 1.8+ 下载

https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html

64 bit JDK 1.8+ 配置

https://docs.oracle.com/cd/E19182-01/820-7851/inst_cli_jdk_javahome_t/

Maven 3.2.x+ 下载

https://maven.apache.org/download.cgi

Maven 3.2.x+ 配置

https://maven.apache.org/settings.html

第二步,下载源码或者安装包。

你可以通过源码和发行包两种方式来获取brcc。

git clone https://github.com/baidu/brcc.git cd brcc/ sh compile.sh

您可以从 release notes下载 brcc-server.zip 包。

unzip brcc-server.zip 或者 tar -zxvf brcc-server.tar.gz cd brcc-server

第三步,启动BRCC配置中心服务。

在start.sh中按要求配置好mysql和redis后,你就可以通过执行此脚本启动brcc了。

3.2 配置管理与SDK接入

第一步,BRCC管理端添加配置。

在brcc管理端创产品线、工程、环境、版本、分组、 配置, 如下图所示。

分布式应用配置的优点有哪些

如上图,创建了产品线test1、工程test-rcc、版本1.0.0 和分组group1,并且配置了a、b、c 配置项。

第二步,引入brcc-sdk-starter, 确保pom.xml中引入以下依赖。

<dependency> 
<groupId>com.baidu.mapp</groupId>
<artifactId>brcc-sdk-starter</artifactId>
<version>${brcc.version}</version>
</dependency>

目前最新的版本是1.0.0。

第三步, 添加BRCC的SDK配置描述。

在接入brcc配置中心之前,确保SpringBoot配置是完整的, 在application.properties文件中添加如下内容。

rcc.cc-server-url: http://180.76.36.149 rcc.cc-password: 123456 rcc.logProperties: true rcc.projectName: test-rcc env-name: dev cc-version-name: 1.0.0 enableUpdateCallback: true appName: example

配置属性介绍

分布式应用配置的优点有哪些

第四步,在项目中进行配置开发。

brcc完全兼容原生spring配置规范,你可以像application.yml,application.properties一样是用brcc中的配置,如:

@Value("${a}") int a = 0; @Value("${b}") long b = 0; @Value("${c}") String c;

第五步,配置验证。

启动日志中出现以下日志说明配置加载成功。

分布式应用配置的优点有哪些

配置发送变更后执行推送变更操作后,日志中会出现以下提示。

分布式应用配置的优点有哪些

感谢各位的阅读,以上就是“分布式应用配置的优点有哪些”的内容了,经过本文的学习后,相信大家对分布式应用配置的优点有哪些这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!

推荐阅读:
  1. vue的优点有哪些
  2. CSS的优点有哪些

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

服务器

上一篇:如何理解GC知识点CMS

下一篇:php中如何解决url传递中文字符,特殊危险字符

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》