携程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 ...
随机推荐
- 【初学必备】Win10环境下Anaconda安装
Anaconda集合了python,Spyder,Jupyter notebook及conda-----包管理器与环境管理器(含常用的panda,numpy等),省去单独下载的繁琐步骤,方便使用. 注 ...
- Python基础——0前言
python虽然这几年才兴起,但是已经是一门“老”语言了. python的诞生历史也很有趣.Python的创始人为Guido van Rossum(龟叔).1989年圣诞节期间,在阿姆斯特丹,Guid ...
- JavaScript对象类型之简单介绍
引言 对象是JavaScript的基本数据类型. 对象是一种复合值:将很多值(原始值或者其他对象)聚合在一起,通过名字访问这些值. 对象可以看做属性的无序集合,每个属性都是一个名/值对.属性名是字符串 ...
- 面向对象_内置函数 property
property 将方法伪装成为属性,可以不用加上()就可以调出其属性. 但是用__dict__,不能调出此属性 from math import pi class Circle: def __ini ...
- DeveloperGuide Hive UDAF
Writing GenericUDAFs: A Tutorial User-Defined Aggregation Functions (UDAFs) are an excellent way to ...
- day7-基础函数的学习(二)
过了元旦,加油鸭,冲鸭!!! 闲话不说,开始今日份学习整理. 今日目录,今天的学习内容不是很多! 1.函数名的运用 2.闭包(重要) 3.迭代器(重要) 开始今日份总结 1.函数名的运用 1.1函数名 ...
- 转://linux下的CPU、内存、IO、网络的压力测试工具与方法介绍
转载地址:http://wushank.blog.51cto.com/3489095/1585927 一.对CPU进行简单测试: 1.通过bc命令计算特别函数 例:计算圆周率 echo "s ...
- Linux+Shell常用命令总结
因为自己不经常使用linux的命令行工具,但是mac的终端还是经常使用的,有些命令总是要想一会或者百度一下才知道怎么用,抽时间整理了一下常用的命令,作为笔记. 常用命令 查看文件操作: ls :列出当 ...
- BZOJ3711 Druzyny 最大值分治、线段树
传送门 被暴力包菜了,然而还不会卡-- 有一个很暴力的DP:设\(f_i\)表示给\(1\)到\(i\)分好组最多可以分多少组,转移枚举最后一个组.接下来考虑优化这个暴力. 考虑:对于每一个位置\(i ...
- OCR技术浅析-自写篇(2)
本例仅以本人浅薄理解,妄想自制文字识别程序,实际在识别部分未有完善. <?php class readChar{ private $imgSize; //图片尺寸 private $imgGd2 ...