携程apollo系列-个人开发环境搭建
本博客讲详细讲解如何在 Windows 搭建携程 Apollo 服务器 (用户个人开发). 开发服务器有多种搭建方式:
(1) docker, 搭建过程非常简单, 推荐有 docker 环境
(2) 部署 Quick start 发行版, 本文采用 Quick start 版部署.
============================
Windows 服务器环境准备
============================
------------------------------
bash 运行环境
------------------------------
Apollo 官方仅提供了一个 bash 脚本启动文件, 所以需要 Windows 下可以执行 bash 脚本, 推荐安装 Git bash 软件包, 官方下载网址为 https://git-for-windows.github.io/, 国内镜像下载网址为 https://github.com/waylau/git-for-win/
------------------------------
Java
------------------------------
Apollo 服务器需要 Jdk8+, Apollo 客户端需要 Jdk7+. 这里安装的是 Jdk8, 如果安装全路径中包括空格, 后面启动 apollo 会有问题, 当然我们也没有必要重新安装, 只需要将安装好的 jdk 文件夹复制一份到没有空格的目录下, 比如复制到 D:\my_program\jdk1.8.0_144\
------------------------------
MySQL
------------------------------
Apollo 后台数据库是 MySQL, 官网要求安装 5.6.5 以上版本, 我装的是 5.7
------------------------------
下载 Quick Start 安装包
------------------------------
下载网址 https://github.com/ctripcorp/apollo/wiki/Quick-Start
并解压到 D:\my_program\apollo-quick-start 目录下.
============================
部署过程
============================
------------------------------
创建数据库
------------------------------
apollo 后台需要两个数据库, 一个是配置服务用的, 另一个是 portal 用的, 手工执行下面的 SQL 监本创建这两个数据库. sql 脚本为:
1. apollo-quick-start\sql\apolloconfigdb.sql
2. apollo-quick-start\sql\apolloportaldb.sql
------------------------------
demo.sh 文件修改数据库配置
------------------------------
Quick start 发行版的数据库配置信息在 demo.sh 文件中, 修改 MySQL 的用户和密码即可.
#apollo config db info
apollo_config_db_url=jdbc:mysql://localhost:3306/ApolloConfigDB?characterEncoding=utf8
apollo_config_db_username=用户名
apollo_config_db_password=密码(如果没有密码,留空即可) # apollo portal db info
apollo_portal_db_url=jdbc:mysql://localhost:3306/ApolloPortalDB?characterEncoding=utf8
apollo_portal_db_username=用户名
apollo_portal_db_password=密码(如果没有密码,留空即可)
------------------------------
demo.sh 文件的其他补丁
------------------------------
quick-start 版的启动脚本 demo.sh 在 Windows 下运行会有一些问题, 需要修改.
1. 在设置 BASE_JAVA_OPTS 之前, 增加 JAVA_HOME 环境变量的设置.
JAVA_HOME="D://my_program/jdk1.8.0_144"
2. 修改工作目录
原来为 cd "${0%/*}"
修改为 cd D://my_program/apollo-quick-start
3. 注释掉 java 版本检查的 if 语句块:
#if [[ "$version" < "1.8" ]]; then
# echo "Java version is $version, please make sure java 1.8+ is in the path"
# exit
#fi
4. 减少内存开销, 修改 JAVA_OPTS 内存分配
原来为: BASE_JAVA_OPTS="-Denv=dev"
修改为: BASE_JAVA_OPTS="-Xms256m -Xmx256m -Denv=dev"
------------------------------
启动
------------------------------
cd D:\my_program\apollo-quick-start
d:\my_program\Git\bin\bash.exe demo.sh start
============================
验证和使用
============================
portal_url=http://localhost:8070
config_server_url=http://localhost:8080
admin_server_url=http://localhost:8090
meta server 和 config service 和 eureka_service 是部署在同一个 JVM 进程,所以 meta server 的地址就是 config service 的地址.
eureka_service_url 的路径为: eureka_service_url=$config_server_url/eureka/
http://localhost:8080
输入用户名 apollo,密码 admin 后登录. 该用户是一个超级管理员.
============================
基本配置
============================
1. 添加用户
portal 上有管理用户的界面.
2. 添加超级管理员
需要在 portal DB 中执行下面的 SQL,
select value,t.* from ApolloPortalDB.ServerConfig t
where `key`='superAdmin'
value 字段, 以逗号分割多个 username .
3. 添加部门
需要在 portal DB 中执行下面的 SQL,
select value,t.* from ApolloPortalDB.ServerConfig t
where `key`='organizations'
value 的样式是,
[{"orgId":"TEST1","orgName":"样例部门 1"},{"orgId":"TEST2","orgName":"样例部门 2"}]
apollo 中的部门和用户没有什么直接联系, 部门仅仅是一个显示项而已.
============================
参考
============================
官方Quick start 文档
https://github.com/ctripcorp/apollo/wiki/Quick-Start
如何编排和部署容器化的Apollo服务
http://ghoulich.xninja.org/2018/04/25/how-to-build-and-deploy-containerized-apollo-service/
如何编译安装Apollo服务器(单机版)
http://ghoulich.xninja.org/2018/04/24/how-to-build-and-install-apollo-in-standalone-mode/
==========================================
Apollo 总体架构和官方文档
==========================================
https://www.infoq.cn/article/open-source-configuration-center-apollo
http://www.infoq.com/cn/articles/ctrip-apollo-configuration-center-architecture
https://nobodyiam.com/2018/07/29/configuration-center-makes-microservices-smart/
https://github.com/ctripcorp/apollo/wiki
携程apollo系列-个人开发环境搭建的更多相关文章
- 携程apollo系列-客户端集成
本文讲解如何在 Java 程序中集成 Apollo 配置, 主要涉及到一些基础用法. 对于一些高级用法, 比如如何加密/解密配置项 (可用于数据库密码配置), 如何动态切换数据源地址,如何动态切换日志 ...
- 携程Apollo统一配置中心的搭建和使用
原文链接:https://blog.csdn.net/luhong327/article/details/81453001 一.Apollo配置中心介绍 1.What is Apollo 1.1 Ap ...
- 史上最全系列Android开发环境搭建
一.安装JDK1.JDK下载打开网站http://www.oracle.com/technetwor ... nloads-1880260.html,选择相应的操作系统下载JDK 2.安装JDK本机是 ...
- [开发工具] 史上最全系列之开发环境搭建之DDMS
原文链接:http://www.eoeandroid.com/forum.php?mod=viewthread&tid=275774 一.简介 DDMS 的全称是DalvikDebug Mon ...
- 跨平台移动开发phonegap/cordova 3.3全系列教程-开发环境搭建
操作系统:windwos xp 1. 安装JDK 打开如下网站下载JDK http://www.oracle.com/technetwork/java/javase/downloads/index ...
- 【JAVA零基础入门系列】Day1 开发环境搭建
[JAVA零基础入门系列](已完结)导航目录 Day1 开发环境搭建 Day2 Java集成开发环境IDEA Day3 Java基本数据类型 Day4 变量与常量 Day5 Java中的运算符 Day ...
- SLAM+语音机器人DIY系列:(五)树莓派3开发环境搭建——1.安装系统ubuntu_mate_16.04
摘要 通过前面一系列的铺垫,相信大家对整个miiboo机器人的DIY有了一个清晰整体的认识.接下来就正式进入机器人大脑(嵌入式主板:树莓派3)的开发.本章将从树莓派3的开发环境搭建入手,为后续ros开 ...
- Redis学习系列二之.Net开发环境搭建及基础数据结构String字符串
一.简介 Redis有5种基本数据结构,分别是string.list(列表).hash(字典).set(集合).zset(有序集合),这是必须掌握的5种基本数据结构.注意Redis作为一个键值对缓存系 ...
- 【OpenStack】OpenStack系列1之OpenStack本地开发环境搭建&&向社区贡献代码
加入OpenStack社区 https://launchpad.net/,注册用户(597092663@qq.com/Admin@123) 修改个人信息,配置SSH keys.OpenPGP keys ...
随机推荐
- SQLServer约束介绍
约束定义 对于数据库来说,基本表的完整性约束分为列级约束条件和表级约束条件: 列级约束条件 列级约束条件是对某一个特定列的约束,包含在列定义中,可以直接跟在该列的其他定义之后,用空格分隔 ...
- Python语法教程-基础语法01
目录 1. Python应用 2. 在Linux中写python 3. Python基础语法 1. 注释 2. 变量定义及类型 3. 格式化输出 4. 用户输入 5. 运算符 6.数据转换 7. 判断 ...
- 我的第一个python web开发框架(34)——后台管理系统权限设计
框架底层和接口终于改造完成了,小白再次找到老菜. 小白:老大,上次你对后台权限系统简单的讲了一下,我一点头绪都没有,现在有空完整的说一说吗? 老菜:说到权限系统,要讲明白真不容易,权限系统并不是越复杂 ...
- Java程序设计与数据结构导论--读后感
与我前面所读的<Java7基础教程>相比,此书不适合自学,更适合作为教材使用. 虽然此书完整覆盖了Java的知识点和数据结构的基础问题,并且对每个部分都做了基本说明.但是因为没有深入展开, ...
- 通过ip查询自己电脑的共享文件夹
查看电脑所有的共享文件或文件夹的三种方法如下: 方法一. 右键点击网上邻居,点击属性进入网上邻居属性页面. 选中本地连接,在窗口的左下方有详细信息,可以看到内网IP,记住IP地址. 直接在地址栏输入记 ...
- bsp总结
就版本.nand nor. led三样本周,六六六 1. bsp坏块--- => nand bad Device 0 bad blocks:047600000600000007fe0000=&g ...
- 网络流问题 P2763 试题库问题
题目描述 «问题描述: 假设一个试题库中有n道试题.每道试题都标明了所属类别.同一道题可能有多个类别属性.现要从题库中抽取m 道题组成试卷.并要求试卷包含指定类型的试题.试设计一个满足要求的组卷算法. ...
- adb常用命令(golang版)及输入中文
package main import ( "crypto/md5" "fmt" "image/png" "io/ioutil&q ...
- Django-CRM项目学习(五)-stark的action以及多级筛选功能
1.stark的组件之action(自定制函数多选功能效果) 1.1 admin效果 1.2 多选效果前端和后端进行的操作 1.2.1 前端发过来的参数是?号后各个参数用&来拼接 1.2.2 ...
- Jenkins + Ansible + Gitlab之ansible篇
Ansible介绍 什么是Ansible? Ansible是一个开源部署工具 开发语言:Python 特点:SSH协议通信,全平台,无需要编译,模块化部署管理 作用:推送Playbook进行远程节点快 ...