Apollo分布式配置中心(一)

article/2025/8/26 5:18:09

目录

什么是配置?

什么是配置中心?

配置中心需要满足条件

什么是Apollo?

Apollo特性

 Apollo执行流程

 Apollo安装

Git地址:

用户手册:

环境准备: 

 使用idea 的git clone 拉取源码

 修改Apollo\scripts\下的build.bat


什么是配置?

         应用程序在启动和运行的时候需要读取一些配置信息,配置基本上伴随着应用程序的整个生命周期,比如启动时需要读取服务的端口号、系统在运行过程中需要读取定时策略执行定时任务等.配置文件,环境变量,启动参数,数据库连接参数等。

什么是配置中心?

        传统单体应用存在一些潜在缺陷,如随着规模的扩大,部署效率降低,团队协作效率差,系统可靠性变差,维护困难,新功能上线周期长等,所以迫切需要一种新的架构去解决这些问题,而微服务( microservices )架构正是当下一种流行的解法。但是使用微服务解决问题的同时也会出现一些问题,当把一个单体应用拆分成多个服务时,配置文件也会跟着分散了。如下图:

        配置中心就是一种统一管理各种应用配置的基础服务组件。 它将配置从应用中剥离出来,统一管理,优雅的解决了配置的动态变更、持久化、运维成本等问题。

配置中心需要满足条件

  • 配置项容易读取和修改
  • 添加新配置简单直接
  • 支持对配置的修改的检视,可以查看配置修改的历史记录
  • 不同部署环境支持隔离

什么是Apollo?

        Apollo(阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用的不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性,适用于微服务配置管理场景。
Apollo包括服务端和客户端两部分 :
        服务端基于Spring Boot和Spring Cloud开发,打包后可以直接运行,不需要额外安装Tomcat等应用容器。
        Java客户端不依赖任何框架,能够运行于所有Java运行时环境,同时对Spring、Spring Boot环境也有较好的支持。

Apollo特性

统一管理不同环境、不同集群的配置
  • Apollo提供了一个统一界面集中式管理不同环境(environment)、不同集群(cluster)、不同命名空(namespace)的配置。
  • 同一份代码部署在不同的集群,可以有不同的配置,比如数据库的地址等。
  • 通过命名空间( namespace ) 可以很方便地支持多个不同应用共享同一份配置,同时还允许应用对共享的配置进行覆盖。
配置修改实时生效( 热发布)
  • 用户在Apollo修改完配置并发布后,客户端能实时(1秒)接收到最新的配置,并通知到应用程序。
版本发布管理
  • 所有的配置发布都有版本概念,从而可以方便地支持配置的回滚
灰度发布
  • 支持配置的灰度发布,即可以让一部分服务先使用某个配置,等用一段时间发现这个配置没问题再全部批量更新。
权限管理、发布审核、操作审计
  • 应用和配置的管理都有完善的权限管理机制,对配置的管理还分为了编辑和发布两个环节,从而减少人为的错误。
  • 所有的操作都有审计日志,可以方便地追踪问题。
配置信息监控
  • 在客户端界面上方便地看到配置在被哪些实例使用
提供开放平台API
  • Apollo自身提供了比较完善的统一配置管理界面,支持多环境、多数据中心配置管理、权限、流程治理等特性。
  • Apollo支持应用方通过开放平台API在Apollo进行配置的修改和发布,并目具备完善0的授权和权限控制。

提供丰富的软件开发工具包

  • 提供 Java 和 .Net 的原生 sdk,方便应用集成
  • 支持 Spring 占位符、注释和 Spring 引导配置属性,便于应用程序使用(需要 Spring 3.1.1+)
  • 提供了 Http API,因此非 Java 和 .Net 应用程序可以方便地集成
  • 丰富的第三方SDK也可用,例如Golang,Python,NodeJS,PHP,C等
部署简单
  • 作为基础设施服务,配置中心对可用性的要求非常高,这迫使Apollo尽可能少地依赖外部依赖。
  • 目前,唯一的外部依赖项是MySQL,因此部署非常简单。只要安装了Java和MySQL,Apollo就可以运行。
  • Apollo 还提供了打包脚本,一键即可生成所有需要的安装包,并支持自定义运行时参数

 Apollo执行流程

大致流程就是用户在Apollo配置中心修改配置,应用程序通过Apollo客户端从配置中心拉取配置信息。

本地文件缓存用于Apollo服务宕机后不影响应用程序获取配置。

 Apollo安装

Git地址:

GitHub - apolloconfig/apollo:Apollo 是一个可靠的配置管理系统,适用于微服务配置管理场景。

https://github.com/apolloconfig/apollo.git

用户手册:

Apollo

环境准备: 

java: JDK 1.8.+ 

maven: 3.3.9 

mysql: 版本要求(5.6.5+)

创建数据库:Git拉取下的源码包的以下路径,执行sql(apolloconfigdb.sql与
apolloportaldb.sql)

 验证导入是否成功

  

 使用idea 的git clone 拉取源码

 修改Apollo\scripts\下的build.bat

注:build.sh是linux的

 

 修改内容:

rem apollo config db info 
set apollo_config_db_url="jdbc:mysql://localhost:3306/ApolloConfigDB?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true"
set apollo_config_db_username="root"
set apollo_config_db_password="root"rem apollo portal db info
set apollo_portal_db_url="jdbc:mysql://localhost:3306/ApolloPortalDB?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true"
set apollo_portal_db_username="root"
set apollo_portal_db_password="root"

 修改好后在以下路径找到build.bat并双击执行,执行成功后再项目的apollo-configservice、apollo-adminservice、apollo-portal包下的target找到已经打好的三个jar包并copy 出来(路径按自己喜好来)

编写启动脚本

@echo off
start cmd /c"java -jar apollo-configservice-2.2.0-SNAPSHOT.jar"
start cmd /c"java -jar apollo-adminservice-2.2.0-SNAPSHOT.jar"
start cmd /c"java -jar apollo-portal-2.2.0-SNAPSHOT.jar"
spause // 防止运行完毕后直接关闭界面

双击 

全部启动成功之后,打开浏览器输入:http://localhost:8070/,看到 Apollo 登录页面说明启动成功

用户名密码: apollo/admin

  打开浏览器输入:http://localhost:8080 ,如果出现eureka 的管理界面,说明服务启动正常。


http://chatgpt.dhexx.cn/article/JQA0ZbHU.shtml

相关文章

Apollo配置中心-手把手教你搭建Apollo配置中心运行环境

1、预置环境信息 运行环境 JDK > 1.8 具体安装及环境及环境变量配置这里不再赘述, 可自行查找资料。 2、下载程序包 演示版本使用的是apollo-1.9.2版本(就是几个springboot的项目) 应用包下载地址:https://github.com/apo…

Apollo 配置详解

Apollo的总体架构 Apollo的使用架构 Apollo的不同维度的配置分类 下面按照生效顺序 Application 在springboot的application.property定义appid这个key的value,标识该类型的应用。 Environment DEV(开发环境)FAT(功能测试&#…

Apollo配置中心多环境配置

Apollo的快速启动项目中,只有一个DEV(开发)环境,但是本身的一个apollo-portal管控端可以管理不同环境下的配置;所以apollo配置中心多环境配置下的主要思路为(这里以DEV和FAT两个环境举例说明)&a…

Apollo配置中心与本地配置优先级

背景 在项目重构时,删除若干个application-{env}.yml文件,仅保留一个application.yml文件,该文件中保留的配置项都是几乎不会变更的配置,至于需要跟随不同环境而变更的配置项都放置在Apollo配置中心。 然后本地application.yml文…

Apollo配置中心搭建

目录 1. 下载安装包和源码包2. 创建数据库和表3. 启动Apollo服务端4. 访问Apollo客户端 1. 下载安装包和源码包 下载地址 找到要安装的版本,我这里选择的是1.3.0版本 下载好安装包后上传至linux的 /usr/local/src文件下并执行下面命令解压到对应文件夹 mkdir apo…

Apollo配置中心动态生效机制

看了其他大佬的文章记录一下自己追源码的过程。 Apollo配置中心动态生效机制,是基于Http长轮询请求和Spring扩展机制实现的,在Spring容器启动过程中,Apollo通过自定义的BeanPostProcessor和BeanFactoryPostProcessor將参数中包含${…}占位符和…

Apollo配置中心使用篇

Apollo配置中心使用篇 常见配置中心对比Apollo核心概念Apollo核心特性Apollo架构设计各模块介绍服务端设计客户端设计Apollo与Spring集成的底层原理 Apollo安装安装apollo-portalconfig service和admin service部署多网卡问题解决修改Portal环境配置调整ApolloPortal配置 Apoll…

携程 Apollo 配置中心 | 学习笔记(一) Apollo配置中心简单介绍

本章将介绍如何在Apollo配置中心中删除已经发布的项目。 专栏目录: 携程 Apollo 配置中心 | 学习笔记 序章 欢迎关注个人公众号: Coder编程 欢迎关注个人网站:https://coder-programming.cn/ 一、前言 之前一直学习SpringCloud, 对于配置…

Apollo 配置中心 多环境配置 Apollo Profiles 配置

Apollo 配置中心 多环境配置 Apollo Profiles 配置 一、全局的配置 1、各环境不变的参数配置在Spring Boot的 application.properties中: app.id你的appid apollo.bootstrap.enabledtrue apollo.bootstrap.namespaces名字空间1,名字空间2 (可以省略) 2、…

Apollo配置中心的基本使用

1、首先创建SpringBoot项目&#xff0c;保证可以正常启动访问 2、加入依赖包 <dependency> <groupId>com.ctrip.framework.apollo</groupId> <artifactId>apollo-client</artifactId> <version>1.1.2</version> </…

开源配置中心之Apollo

Introduction Apollo&#xff08;阿波罗&#xff09;是携程框架部门研发的配置管理平台&#xff0c;能够集中化管理应用不同环境、不同集群的配置&#xff0c;配置修改后能够实时推送到应用端&#xff0c;并且具备规范的权限、流程治理等特性。 服务端基于Spring Boot和Sprin…

【Apollo配置中心】Apollo环境配置

一、简介 Apollo&#xff08;阿波罗&#xff09;是携程框架部门研发的分布式配置中心&#xff0c;能够集中化管理应用不同环境、不同集群的配置&#xff0c;配置修改后能够实时推送到应用端&#xff0c;并且具备规范的权限、流程治理等特性&#xff0c;适用于微服务配置管理场景…

【配置中心----Apollo】Apollo的介绍及使用方式

环境SpringBoot 2 一、Apollo简介 项目组最近的项目都是使用springcloud微服务开发&#xff0c;整个微服务框架中分布式的系统服务、集群等等都非常的多。 每一个服务都有着自己的配置&#xff08;包括参数配置、服务器地址配置、功能开关等都能&#xff09;&#xff0c;当配…

Apollo-阿波罗配置中心详细使用教程

Apollo基本概念 一、简介 Apollo - A reliable configuration management system Apollo的Github地址 Apollo&#xff08;阿波罗&#xff09;是携程框架部门研发的分布式配置中心&#xff0c;能够集中化管理应用的不同环境、不同集群的配置&#xff0c;配置修改后能够实时推送…

Apollo配置中心介绍

一、背景 最近公司订单中心重构&#xff0c;利用spring boot集成apollo配置中心&#xff0c;因此学习一下apollo配置中心 因为如今程序功能越来越复杂&#xff0c;程序的配置日益增多&#xff1a;各种功能的开关、参数配置、服务器地址、数据库链接等 对于配置的期望值越来越…

你们信不信,everyting找不全文件

everything这个软件思路,很好.查名字.找文件. 可是这个软件有两大缺点: 一,内存占用太大,500M,这还只是我1千万文件下面的情况,我还屏蔽了很大部分.要是3,4千万,everything根本启动不了. 二,搜索文件不全,不相信,看证据: 这是我保存在百度下载里面的文件,我没有加入排除列表. …

搜索工具 Everything 的简单设置

文章目录 1、常规2、界面3、结果4、视图&#xff08;重要修改&#xff09;5、字体与颜色&#xff08;重要修改&#xff09;1&#xff09;高亮部分 &#xff0c;对其 前景色 设置 自定义为 红色2&#xff09; 鼠标悬停 &#xff0c;对其 背景色 设置 自定义为 浅蓝色3&#xff0…

通过Everything 快速搭建局域网内文件服务器

文章目录 通过Everything 快速搭建局域网内文件服务器1、软件下载2、通过工具里面的Http 服务器构建局域网文件服务器3、通过局域网IP 或者自己的电脑访问 通过Everything 快速搭建局域网内文件服务器 1、软件下载 传送门 安装软件请自行完成&#xff0c;一路next 2、通过工…

Everything排除某个目录、隐藏文件、系统文件

工具——选项——索引——排除列表

Everything扫描非C盘

Tools>>Options>>Rescan Now