Apollo 配置中心是 携程于 2016 年开源的项目,用于配置管理。
它基于 springboot,eureka,但实际的项目可以不是 springboot,springcloud。
分客户端,服务端。其中服务端,包括 adminservice,portalservice,configservice,允许多环境,灰度发布,用户权限设置。

Apollo 官网配置文档

gitee Apollo 地址
github Apollo 地址

Apollo 安装(单机版(单一环境))

参考:分布式部署 与单机部署大同小异

http://localhost:8080/services/admin 查看服务,是 json 格式
[{“appName”:”APOLLO-ADMINSERVICE”,”instanceId”:”DESKTOP-44T4DSR:apollo-adminservice:8090”,”homepageUrl”:”http://192.168.85.1:8090/"}]

  1. echo characterEcoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai&rewriteBatchedStatements=true
  2. start "config-service" java -Xms128m -Xmx128m -jar .\apollo-configservice-1.8.1-github\apollo-configservice-1.8.1.jar --spring.datasource.url="jdbc:mysql://localhost:3306/ApolloConfigDB?characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai&rewriteBatchedStatements=true" --spring.datasource.username=root --spring.datasource.password=root
  3. start "admin-service" java -Xms128m -Xmx128m -jar .\apollo-adminservice-1.8.1-github\apollo-adminservice-1.8.1.jar --spring.datasource.url="jdbc:mysql://localhost:3306/ApolloConfigDB?characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai&rewriteBatchedStatements=true" --spring.datasource.username=root --spring.datasource.password=root
  4. start "portal-service" java -Xms128m -Xmx128m -jar .\apollo-portal-1.8.1-github\apollo-portal-1.8.1.jar --spring.datasource.url="jdbc:mysql://localhost:3306/ApolloPortalDB?characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai&rewriteBatchedStatements=true" --spring.datasource.username=root --spring.datasource.password=root --dev.meta=http://localhost:8080 --spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect --spring.jpa.show-sql=true --spring.jpa.properties.hibernate.format_sql=true

简要部署,使用的参数等

  1. server.port=8989
  2. spring.datasource.url=jdbc:mysql://localhost:3306/weather?useUnicode=true&characterEncoding=UTF-8
  3. spring.datasource.username=root
  4. spring.datasource.password=123456
  5. spring.datasource.driver-class-name=com.mysql.jdbc.Driver
  6. spring.mvc.view.prefix=/WEB-INF/templates/
  7. spring.mvc.view.suffix=.jsp
  8. spring.jpa.hibernate.naming.physical-strategy=org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
  9. spring.jpa.database=MYSQL
  10. spring.jpa.properties.hibernate.show_sql=true
  11. spring.jpa.properties.hibernate.format_sql=true
  12. spring.jpa.hibernate.ddl-auto=update
  13. spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5Dialect
  14. ————————————————
  15. 版权声明:本文为CSDN博主「Tong XU」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
  16. 原文链接:https://blog.csdn.net/qq_41700374/article/details/86762789
  17. -Xmx128m -Xms128m -Dspring.datasource.url="jdbc:mysql://localhost:3306/ApolloConfigDB?sslMode=DISABLED&serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false" -Dspring.datasource.username="root" -Dspring.datasource.password="123456" -Dspring.jpa.database-platform=org.hibernate.dialect.MySQLDialect -Dspring.jpa.properties.hibernate.show_sql=true -Dspring.jpa.properties.hibernate.format_sql=true -Dfile.encoding=UTF-8
  18. rem apollo portal db info
  19. -Xmx128m -Xms128m -Dspring.datasource.url="jdbc:mysql://localhost:3306/ApolloPortalDB?sslMode=DISABLED&serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false" -Dspring.datasource.username="root" -Dspring.datasource.password="123456" -Dspring.jpa.database-platform=org.hibernate.dialect.MySQLDialect -Dspring.jpa.properties.hibernate.show_sql=true -Dspring.jpa.properties.hibernate.format_sql=true -Ddev_meta="http://localhost:8080" -Dfile.encoding=UTF-8
  20. ------------------------
  21. D:\devTools\java\jdk1.8.0_261\bin\java.exe -Xmx128m -Xms128m "-Dspring.datasource.url=jdbc:mysql://localhost:3306/ApolloConfigDB?sslMode=DISABLED&serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false" -Dspring.datasource.username=root -Dspring.datasource.password=123456 -Dspring.jpa.database-platform=org.hibernate.dialect.MySQLDialect -Dspring.jpa.properties.hibernate.show_sql=true -Dspring.jpa.properties.hibernate.format_sql=true -Dfile.encoding=UTF-8 -jar D:\OtherProjects\apollo\apollo-configservice\target\apollo-configservice-1.9.0-SNAPSHOT.jar
  22. D:\devTools\java\jdk1.8.0_261\bin\java.exe -Xmx128m -Xms128m "-Dspring.datasource.url=jdbc:mysql://localhost:3306/ApolloConfigDB?sslMode=DISABLED&serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false" -Dspring.datasource.username=root -Dspring.datasource.password=123456 -Dspring.jpa.database-platform=org.hibernate.dialect.MySQLDialect -Dspring.jpa.properties.hibernate.show_sql=true -Dspring.jpa.properties.hibernate.format_sql=true -Dfile.encoding=UTF-8 -jar D:\OtherProjects\apollo\apollo-adminservice\target\apollo-adminservice-1.9.0-SNAPSHOT.jar
  23. D:\devTools\java\jdk1.8.0_261\bin\java.exe -Xmx128m -Xms128m "-Dspring.datasource.url=jdbc:mysql://localhost:3306/ApolloPortalDB?sslMode=DISABLED&serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false" -Dspring.datasource.username=root -Dspring.datasource.password=123456 -Dspring.jpa.database-platform=org.hibernate.dialect.MySQLDialect -Dspring.jpa.properties.hibernate.show_sql=true -Dspring.jpa.properties.hibernate.format_sql=true -Ddev_meta=http://localhost:8080 -Dfile.encoding=UTF-8 -jar D:\OtherProjects\apollo\apollo-portal\target\apollo-portal-1.9.0-SNAPSHOT.jar
  24. ---
  25. app.id=test-demo
  26. apollo.cacheDir=/opt/data/${app.id}-cache-dir
  27. # will inject 'application' namespace in bootstrap phase
  28. apollo.bootstrap.enabled = true
  29. apollo.meta=http://localhost:8080
  30. # \u73AF\u5883\u53C2\u6570 env \u53EA\u80FD\u901A\u8FC7-Denv \u548C \u73AF\u5883\u53C2\u6570 ENV
  31. #apollo.env=dev
  32. apollo.cluster=default
  33. # will inject 'application' namespaces in bootstrap phase
  34. apollo.bootstrap.namespaces=application,application.propertites
  35. # \u5173\u95EDplaceholder\u5728\u8FD0\u884C\u65F6\u81EA\u52A8\u66F4\u65B0\u529F\u80FD
  36. # apollo.autoUpdateInjectedSpringProperties=false

问题

  1. 启动 portal 需要指定 spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect,否则报错,没有属性 hibernate.dialect
  2. portal 需要指定 mysql 的时区 serverTimezone=Asia/Shanghai
  3. portal 的 env 到处影响,多环境不配置好,导致无法正常使用 portal,要从从源码自己写好配置后(或修改构建脚本)编译打包 参考一下,多环境问题,包自己编译