• 携程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_programjdk1.8.0_144


    ------------------------------
    MySQL
    ------------------------------
    Apollo 后台数据库是 MySQL, 官网要求安装 5.6.5 以上版本, 我装的是 5.7


    ------------------------------
    下载 Quick Start 安装包
    ------------------------------
    下载网址 https://github.com/ctripcorp/apollo/wiki/Quick-Start
    并解压到 D:my_programapollo-quick-start 目录下.


    ============================
    部署过程
    ============================
    ------------------------------
    创建数据库
    ------------------------------
    apollo 后台需要两个数据库, 一个是配置服务用的, 另一个是 portal 用的, 手工执行下面的 SQL 监本创建这两个数据库. sql 脚本为:
    1. apollo-quick-startsqlapolloconfigdb.sql
    2. apollo-quick-startsqlapolloportaldb.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 1
      #fi


    4. 减少内存开销, 修改 JAVA_OPTS 内存分配
    原来为: BASE_JAVA_OPTS="-Denv=dev"
    修改为: BASE_JAVA_OPTS="-Xms256m -Xmx256m -Denv=dev"


    ------------------------------
    启动
    ------------------------------
    cd D:my_programapollo-quick-start
    d:my_programGitinash.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

  • 相关阅读:
    伪造mysql服务端实现任意读取
    客户端session安全问题(flask)
    systemd教程
    MySQL的一些常用基本命令的使用说明
    AMD、CMD、CommonJs和ES6的区别
    for in与for of的区别,以及forEach,map,some,every,filter的区别
    EcmaScript 6 十大常用特性
    单行省略号与多行省略号
    Array.prototype.slice.call()详解及转换数组的方法
    返回顶部
  • 原文地址:https://www.cnblogs.com/harrychinese/p/apollo_windows_dev.html
Copyright © 2020-2023  润新知