1.执行apollo-portal数据库脚本

apollo-portal数据库脚本链接:https://raw.githubusercontent.com/ctripcorp/apollo/1.5.1/scripts/db/migration/portaldb/V1.0.0__initialization.sql

在mfyxw10.mfyxw.com主机上操作

(1)将apollo-portal数据库脚本下载回来

  1. [root@mfyxw10 ~]# wget https://raw.githubusercontent.com/ctripcorp/apollo/1.5.1/scripts/db/migration/portaldb/V1.0.0__initialization.sql -O apolloportal.sql

(2)导入apollo-portal脚本

  1. [root@mfyxw10 ~]# mysql -uroot -p < apolloportal.sql

(3)查看是否导入成功

  1. [root@mfyxw10 ~]# mysql -uroot -p
  2. MariaDB [(none)]> show databases; #Apollo-portal的数据库名为:ApolloPortalDB
  3. +--------------------+
  4. | Database |
  5. +--------------------+
  6. | ApolloConfigDB |
  7. | ApolloPortalDB |
  8. | information_schema |
  9. | mysql |
  10. | performance_schema |
  11. +--------------------+
  12. 5 rows in set (0.00 sec)
  13. MariaDB [(none)]> use ApolloPortalDB; #切换至ApolloPortalDB数据库
  14. Reading table information for completion of table and column names
  15. You can turn off this feature to get a quicker startup with -A
  16. Database changed
  17. MariaDB [ApolloPortalDB]> show tables; #查看ApolloPortalDB数据库下的数据表
  18. +--------------------------+
  19. | Tables_in_ApolloPortalDB |
  20. +--------------------------+
  21. | App |
  22. | AppNamespace |
  23. | Authorities |
  24. | Consumer |
  25. | ConsumerAudit |
  26. | ConsumerRole |
  27. | ConsumerToken |
  28. | Favorite |
  29. | Permission |
  30. | Role |
  31. | RolePermission |
  32. | ServerConfig |
  33. | UserRole |
  34. | Users |
  35. +--------------------------+
  36. 14 rows in set (0.00 sec)
  37. MariaDB [ApolloPortalDB]>

(4)ApolloPortal数据库授权

  1. [root@mfyxw10 ~]# mysql -uroot -p
  2. MariaDB [(none)]> grant INSERT,DELETE,UPDATE,SELECT on ApolloPortalDB.* to "apolloportal"@"192.168.80.%" identified by "123456";
  3. MariaDB [(none)]>flush privileges;
  4. Query OK, 0 rows affected (0.00 sec)
  5. MariaDB [(none)]>

(5)更新ApolloPortal数据表ServerConfig的Value

  1. [root@mfyxw10 ~]# mysql -uroot -p
  2. Enter password:
  3. Welcome to the MariaDB monitor. Commands end with ; or \g.
  4. Your MariaDB connection id is 44
  5. Server version: 10.1.45-MariaDB MariaDB Server
  6. Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
  7. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
  8. MariaDB [(none)]> use ApolloPortalDB;
  9. Reading table information for completion of table and column names
  10. You can turn off this feature to get a quicker startup with -A
  11. Database changed
  12. MariaDB [ApolloPortalDB]> show tables;
  13. +--------------------------+
  14. | Tables_in_ApolloPortalDB |
  15. +--------------------------+
  16. | App |
  17. | AppNamespace |
  18. | Authorities |
  19. | Consumer |
  20. | ConsumerAudit |
  21. | ConsumerRole |
  22. | ConsumerToken |
  23. | Favorite |
  24. | Permission |
  25. | Role |
  26. | RolePermission |
  27. | ServerConfig |
  28. | UserRole |
  29. | Users |
  30. +--------------------------+
  31. 14 rows in set (0.01 sec)
  32. MariaDB [ApolloPortalDB]> select * from ServerConfig\G;
  33. *************************** 1. row ***************************
  34. Id: 1
  35. Key: apollo.portal.envs
  36. Value: dev
  37. Comment: 可支持的环境列表
  38. IsDeleted:
  39. DataChange_CreatedBy: default
  40. DataChange_CreatedTime: 2020-07-06 10:15:59
  41. DataChange_LastModifiedBy:
  42. DataChange_LastTime: 2020-07-06 10:15:59
  43. *************************** 2. row ***************************
  44. Id: 2
  45. Key: organizations
  46. Value: [{"orgId":"TEST1","orgName":"样例部门1"},{"orgId":"TEST2","orgName":"样例部门2"}]
  47. Comment: 部门列表
  48. IsDeleted:
  49. DataChange_CreatedBy: default
  50. DataChange_CreatedTime: 2020-07-06 10:15:59
  51. DataChange_LastModifiedBy:
  52. DataChange_LastTime: 2020-07-06 10:15:59
  53. *************************** 3. row ***************************
  54. Id: 3
  55. Key: superAdmin
  56. Value: apollo
  57. Comment: Portal超级管理员
  58. IsDeleted:
  59. DataChange_CreatedBy: default
  60. DataChange_CreatedTime: 2020-07-06 10:15:59
  61. DataChange_LastModifiedBy:
  62. DataChange_LastTime: 2020-07-06 10:15:59
  63. *************************** 4. row ***************************
  64. Id: 4
  65. Key: api.readTimeout
  66. Value: 10000
  67. Comment: http接口read timeout
  68. IsDeleted:
  69. DataChange_CreatedBy: default
  70. DataChange_CreatedTime: 2020-07-06 10:15:59
  71. DataChange_LastModifiedBy:
  72. DataChange_LastTime: 2020-07-06 10:15:59
  73. *************************** 5. row ***************************
  74. Id: 5
  75. Key: consumer.token.salt
  76. Value: someSalt
  77. Comment: consumer token salt
  78. IsDeleted:
  79. DataChange_CreatedBy: default
  80. DataChange_CreatedTime: 2020-07-06 10:15:59
  81. DataChange_LastModifiedBy:
  82. DataChange_LastTime: 2020-07-06 10:15:59
  83. *************************** 6. row ***************************
  84. Id: 6
  85. Key: admin.createPrivateNamespace.switch
  86. Value: true
  87. Comment: 是否允许项目管理员创建私有namespace
  88. IsDeleted:
  89. DataChange_CreatedBy: default
  90. DataChange_CreatedTime: 2020-07-06 10:15:59
  91. DataChange_LastModifiedBy:
  92. DataChange_LastTime: 2020-07-06 10:15:59
  93. *************************** 7. row ***************************
  94. Id: 7
  95. Key: configView.memberOnly.envs
  96. Value: pro
  97. Comment: 只对项目成员显示配置信息的环境列表,多个env以英文逗号分隔
  98. IsDeleted:
  99. DataChange_CreatedBy: default
  100. DataChange_CreatedTime: 2020-07-06 10:15:59
  101. DataChange_LastModifiedBy:
  102. DataChange_LastTime: 2020-07-06 10:15:59
  103. 7 rows in set (0.00 sec)
  104. ERROR: No query specified
  105. MariaDB [ApolloPortalDB]>

更新前的内容如图片所示

更新后如下图所示

  1. [root@mfyxw10 ~]# mysql -uroot -p
  2. MariaDB [(none)]> use ApolloPortalDB;
  3. MariaDB [ApolloPortalDB]> update ServerConfig set Value = '[{"orgId":"yf1","orgName":"Linux学院"},{"orgId":"yf2","orgName":"云计算学院"},{"orgId":"yf3","orgName":"Python学院"},{"orgId":"yf4","orgName":"大数据学院"}]' where Id = 2;
  4. Query OK, 1 row affected (0.00 sec)
  5. Rows matched: 1 Changed: 1 Warnings: 0

2.准备apollo-portal软件

在运维主机mfyxw50.mfyxw.com上操作

(1)下载apollo-portal软件

  1. [root@mfyxw50 ~]# cd /opt/src/
  2. [root@mfyxw50 ~]# wget https://github.com/ctripcorp/apollo/releases/download/v1.5.1/apollo-portal-1.5.1-github.zip

(2)解压apollo-portal软件至相对应的目录

  1. [root@mfyxw50 ~]# mkdir /data/dockerfile/apollo-portal
  2. [root@mfyxw50 ~]# unzip /opt/src/apollo-portal-1.5.1-github.zip -d /data/dockerfile/apollo-portal

(3)删除apollo-portal目录用不到的文件

  1. [root@mfyxw50 ~]# rm -fr /data/dockerfile/apollo-portal/apollo-portal-1.5.1-sources.jar
  2. [root@mfyxw50 ~]# rm -fr /data/dockerfile/apollo-portal/apollo-portal.conf
  3. [root@mfyxw50 ~]# rm -fr /data/dockerfile/apollo-portal/scripts/shutdown.sh

(4)配置数据库连接串

  1. [root@mfyxw50 ~]# cat > /data/dockerfile/apollo-portal/config/application-github.properties << EOF
  2. # DataSource
  3. spring.datasource.url = jdbc:mysql://mysql.od.com:3306/ApolloPortalDB?characterEncoding=utf8
  4. spring.datasource.username = apolloconfig
  5. spring.datasource.password = 123456
  6. EOF

(5)配置Portal的mate service(此处可以不修改,在configmap处已经引入了)

  1. [root@mfyxw50 ~]# cat > /data/dockerfile/apollo-portal/config/apollo-env.properties << EOF
  2. local.meta=http://localhost:8080
  3. dev.meta=http://config.od.com:8080
  4. fat.meta=http://fill-in-fat-meta-server:8080
  5. uat.meta=http://fill-in-uat-meta-server:8080
  6. lpt.meta=${lpt_meta}
  7. pro.meta=http://fill-in-pro-meta-server:8080
  8. EOF

(6)更新apollo-portal的startup.sh文件

  1. [root@mfyxw50 ~]# cat > /data/dockerfile/apollo-portal/scripts/startup.sh << EOF
  2. #!/bin/bash
  3. SERVICE_NAME=apollo-portal
  4. ## Adjust log dir if necessary
  5. LOG_DIR=/opt/logs/apollo-portal-server
  6. ## Adjust server port if necessary
  7. SERVER_PORT=8080
  8. APOLLO_PORTAL_SERVICE_NAME=\$(hostname -i)
  9. # SERVER_URL="http://localhost:\$SERVER_PORT"
  10. SERVER_URL="http://\${APOLLO_PORTAL_SERVICE_NAME}:\${SERVER_PORT}"
  11. ## Adjust memory settings if necessary
  12. #export JAVA_OPTS="-Xms2560m -Xmx2560m -Xss256k -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=384m -XX:NewSize=1536m -XX:MaxNewSize=1536m -XX:SurvivorRatio=8"
  13. ## Only uncomment the following when you are using server jvm
  14. #export JAVA_OPTS="\$JAVA_OPTS -server -XX:-ReduceInitialCardMarks"
  15. ########### The following is the same for configservice, adminservice, portal ###########
  16. export JAVA_OPTS="\$JAVA_OPTS -XX:ParallelGCThreads=4 -XX:MaxTenuringThreshold=9 -XX:+DisableExplicitGC -XX:+ScavengeBeforeFullGC -XX:SoftRefLRUPolicyMSPerMB=0 -XX:+ExplicitGCInvokesConcurrent -XX:+PrintGCDetails -XX:+HeapDumpOnOutOfMemoryError -XX:-OmitStackTraceInFastThrow -Duser.timezone=Asia/Shanghai -Dclient.encoding.override=UTF-8 -Dfile.encoding=UTF-8 -Djava.security.egd=file:/dev/./urandom"
  17. export JAVA_OPTS="\$JAVA_OPTS -Dserver.port=\$SERVER_PORT -Dlogging.file=\$LOG_DIR/$SERVICE_NAME.log -XX:HeapDumpPath=\$LOG_DIR/HeapDumpOnOutOfMemoryError/"
  18. # Find Java
  19. if [[ -n "\$JAVA_HOME" ]] && [[ -x "\$JAVA_HOME/bin/java" ]]; then
  20. javaexe="\$JAVA_HOME/bin/java"
  21. elif type -p java > /dev/null 2>&1; then
  22. javaexe=\$(type -p java)
  23. elif [[ -x "/usr/bin/java" ]]; then
  24. javaexe="/usr/bin/java"
  25. else
  26. echo "Unable to find Java"
  27. exit 1
  28. fi
  29. if [[ "\$javaexe" ]]; then
  30. version=\$("\$javaexe" -version 2>&1 | awk -F '"' '/version/ {print \$2}')
  31. version=\$(echo "\$version" | awk -F. '{printf("%03d%03d",\$1,\$2);}')
  32. # now version is of format 009003 (9.3.x)
  33. if [ \$version -ge 011000 ]; then
  34. JAVA_OPTS="\$JAVA_OPTS -Xlog:gc*:\$LOG_DIR/gc.log:time,level,tags -Xlog:safepoint -Xlog:gc+heap=trace"
  35. elif [ \$version -ge 010000 ]; then
  36. JAVA_OPTS="\$JAVA_OPTS -Xlog:gc*:\$LOG_DIR/gc.log:time,level,tags -Xlog:safepoint -Xlog:gc+heap=trace"
  37. elif [ \$version -ge 009000 ]; then
  38. JAVA_OPTS="\$JAVA_OPTS -Xlog:gc*:\$LOG_DIR/gc.log:time,level,tags -Xlog:safepoint -Xlog:gc+heap=trace"
  39. else
  40. JAVA_OPTS="\$JAVA_OPTS -XX:+UseParNewGC"
  41. JAVA_OPTS="\$JAVA_OPTS -Xloggc:\$LOG_DIR/gc.log -XX:+PrintGCDetails"
  42. JAVA_OPTS="\$JAVA_OPTS -XX:+UseConcMarkSweepGC -XX:+UseCMSCompactAtFullCollection -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=60 -XX:+CMSClassUnloadingEnabled -XX:+CMSParallelRemarkEnabled -XX:CMSFullGCsBeforeCompaction=9 -XX:+CMSClassUnloadingEnabled -XX:+PrintGCDateStamps -XX:+PrintGCApplicationConcurrentTime -XX:+PrintHeapAtGC -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=5 -XX:GCLogFileSize=5M"
  43. fi
  44. fi
  45. printf "\$(date) ==== Starting ==== \n"
  46. cd \`dirname \$0\`/..
  47. chmod 755 \$SERVICE_NAME".jar"
  48. ./\$SERVICE_NAME".jar" start
  49. rc=\$?;
  50. if [[ \$rc != 0 ]];
  51. then
  52. echo "\$(date) Failed to start \$SERVICE_NAME.jar, return code: \$rc"
  53. exit \$rc;
  54. fi
  55. tail -f /dev/null
  56. EOF

3.制作Apollo-Portal的Docker镜像

在运维主机(mfyxw50.mfyxw.com)上操作

(1)编写Apollo-Portal的Docker文件

  1. [root@mfyxw50 ~]# cat > /data/dockerfile/apollo-portal/Dockerfile << EOF
  2. FROM harbor.od.com/base/jre8:8u112
  3. ENV VERSION 1.5.1
  4. RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime &&\
  5. echo "Asia/Shanghai" > /etc/timezone
  6. ADD apollo-portal-\${VERSION}.jar /apollo-portal/apollo-portal.jar
  7. ADD config/ /apollo-portal/config
  8. ADD scripts/ /apollo-portal/scripts
  9. CMD ["/apollo-portal/scripts/startup.sh"]
  10. EOF

(2)制作Apollo-portal镜像

  1. [root@mfyxw50 ~]# cd /data/dockerfile/apollo-portal
  2. [root@mfyxw50 apollo-portal]# docker build . -t harbor.od.com/infra/apollo-portal:v1.5.1
  3. [root@mfyxw50 apollo-portal]# docker login harbor.od.com
  4. [root@mfyxw50 apollo-portal]# docker push harbor.od.com/infra/apollo-portal:v1.5.1

4.解析portal.od.com域名

在mfyxw10.mfyxw.com主机操作

(1)设置域名

  1. [root@mfyxw10 ~]# cat > /var/named/od.com.zone << EOF
  2. \$ORIGIN od.com.
  3. \$TTL 600 ; 10 minutes
  4. @ IN SOA dns.od.com. dnsadmin.od.com. (
  5. ;序号请加1,表示比之前版本要新
  6. 2020031312 ; serial
  7. 10800 ; refresh (3 hours)
  8. 900 ; retry (15 minutes)
  9. 604800 ; expire (1 week)
  10. 86400 ; minimum (1 day)
  11. )
  12. NS dns.od.com.
  13. \$TTL 60 ; 1 minute
  14. dns A 192.168.80.10
  15. harbor A 192.168.80.50 ;添加harbor记录
  16. k8s-yaml A 192.168.80.50
  17. traefik A 192.168.80.100
  18. dashboard A 192.168.80.100
  19. zk1 A 192.168.80.10
  20. zk2 A 192.168.80.20
  21. zk3 A 192.168.80.30
  22. jenkins A 192.168.80.100
  23. dubbo-monitor A 192.168.80.100
  24. demo A 192.168.80.100
  25. mysql A 192.168.80.10
  26. config A 192.168.80.100
  27. portal A 192.168.80.100
  28. EOF

(2)重启DNS服务

  1. [root@mfyxw10 ~]# systemctl restart named

(3)测试解析

  1. [root@mfyxw10 ~]# dig -t A portal.od.com @192.168.80.10 +short
  2. 192.168.80.100

5.准备Apollo-portal资源配置文件

在运维主机mfyxw50.mfyxw.com上操作

(1)创建用于存放Apollo-portal资源配置文件目录

  1. [root@mfyxw50 ~]# mkdir -p /data/k8s-yaml/apollo-portal

(2)deployment.yaml文件内容如下:

  1. [root@mfyxw50 ~]# cat > /data/k8s-yaml/apollo-portal/deployment.yaml << EOF
  2. kind: Deployment
  3. apiVersion: extensions/v1beta1
  4. metadata:
  5. name: apollo-portal
  6. namespace: infra
  7. labels:
  8. name: apollo-portal
  9. spec:
  10. replicas: 1
  11. selector:
  12. matchLabels:
  13. name: apollo-portal
  14. template:
  15. metadata:
  16. labels:
  17. app: apollo-portal
  18. name: apollo-portal
  19. spec:
  20. volumes:
  21. - name: configmap-volume
  22. configMap:
  23. name: apollo-portal-cm
  24. containers:
  25. - name: apollo-portal
  26. image: harbor.od.com/infra/apollo-portal:v1.5.1
  27. ports:
  28. - containerPort: 8080
  29. protocol: TCP
  30. volumeMounts:
  31. - name: configmap-volume
  32. mountPath: /apollo-portal/config
  33. terminationMessagePath: /dev/termination-log
  34. terminationMessagePolicy: File
  35. imagePullPolicy: IfNotPresent
  36. imagePullSecrets:
  37. - name: harbor
  38. restartPolicy: Always
  39. terminationGracePeriodSeconds: 30
  40. securityContext:
  41. runAsUser: 0
  42. schedulerName: default-scheduler
  43. strategy:
  44. type: RollingUpdate
  45. rollingUpdate:
  46. maxUnavailable: 1
  47. maxSurge: 1
  48. revisionHistoryLimit: 7
  49. progressDeadlineSeconds: 600
  50. EOF

(3)service.yaml文件内容如下:

  1. [root@mfyxw50 ~]# cat > /data/k8s-yaml/apollo-portal/service.yaml << EOF
  2. kind: Service
  3. apiVersion: v1
  4. metadata:
  5. name: apollo-portal
  6. namespace: infra
  7. spec:
  8. ports:
  9. - protocol: TCP
  10. port: 8080
  11. targetPort: 8080
  12. selector:
  13. app: apollo-portal
  14. clusterIP: None
  15. type: ClusterIP
  16. sessionAffinity: None
  17. EOF

(4)Ingress.yaml文件内容如下:

  1. [root@mfyxw50 ~]# cat > /data/k8s-yaml/apollo-portal/Ingress.yaml << EOF
  2. kind: Ingress
  3. apiVersion: extensions/v1beta1
  4. metadata:
  5. name: apollo-portal
  6. namespace: infra
  7. spec:
  8. rules:
  9. - host: portal.od.com
  10. http:
  11. paths:
  12. - path: /
  13. backend:
  14. serviceName: apollo-portal
  15. servicePort: 8080
  16. EOF

(5)ConfigMap.yaml文件内容如下:

  1. [root@mfyxw50 ~]# cat > /data/k8s-yaml/apollo-portal/configmap.yaml << EOF
  2. apiVersion: v1
  3. kind: ConfigMap
  4. metadata:
  5. name: apollo-portal-cm
  6. namespace: infra
  7. data:
  8. application-github.properties: |
  9. # DataSource
  10. spring.datasource.url = jdbc:mysql://mysql.od.com:3306/ApolloPortalDB?characterEncoding=utf8
  11. spring.datasource.username = apolloportal
  12. spring.datasource.password = 123456
  13. app.properties: |
  14. appId=100003173
  15. apollo-env.properties: |
  16. dev.meta=http://config.od.com
  17. EOF

6.应用Apollo-portal资源配置清单

在master节点(mfyxw30.mfyxw.com或mfyxw40.mfyxw.com)任意一台上执行即可

(1)应用Apollo-portal资源配置清单

  1. [root@mfyxw30 ~]# kubectl apply -f http://k8s-yaml.od.com/apollo-portal/deployment.yaml
  2. deployment.extensions/apollo-portal created
  3. [root@mfyxw30 ~]#
  4. [root@mfyxw30 ~]# kubectl apply -f http://k8s-yaml.od.com/apollo-portal/service.yaml
  5. service/apollo-portal created
  6. [root@mfyxw30 ~]#
  7. [root@mfyxw30 ~]# kubectl apply -f http://k8s-yaml.od.com/apollo-portal/Ingress.yaml
  8. ingress.extensions/apollo-portal created
  9. [root@mfyxw30 ~]#
  10. [root@mfyxw30 ~]# kubectl apply -f http://k8s-yaml.od.com/apollo-portal/configmap.yaml
  11. configmap/apollo-portal-cm created

(2)查看Apollo-portal的pod是否正常启动

  1. [root@mfyxw30 ~]# kubectl get pod -n infra
  2. NAME READY STATUS RESTARTS AGE
  3. apollo-adminservice-5cccf97c64-bhqzb 1/1 Running 1 6h22m
  4. apollo-configservice-5f6555448-7wxsp 1/1 Running 1 6h16m
  5. apollo-portal-57bc86966d-jz5vg 1/1 Running 0 112s
  6. dubbo-monitor-6676dd74cc-9hghb 1/1 Running 13 17d
  7. dubbo-monitor-6676dd74cc-rd86g 1/1 Running 12 17d
  8. jenkins-b99776c69-p6skp 1/1 Running 17 39d

7.使用浏览器portal.od.com登录

Apollo-portal默认的用户为:apollo 密码为:admin 第一次登录后,强烈建议修改密码,在此修改密码为:admin123

在kubernetes集群里集成Apollo配置中心(3)之交付Apollo-portal至Kubernetes集群的更多相关文章

  1. 在kubernetes集群里集成Apollo配置中心(1)之交付Apollo-configservice至Kubernetes集群

    1.Apollo简介 Apollo(阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境.不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限.流程治理等特性,适用于微 ...

  2. 在kubernetes集群里集成Apollo配置中心(1)之交付Apollo-adminservice至Kubernetes集群

    1.部署apollo-adminservice软件包 apollo-adminservice软件包链接地址:https://github.com/ctripcorp/apollo/releases/d ...

  3. Spring Boot 2.0 整合携程Apollo配置中心

    原文:https://www.jianshu.com/p/23d695af7e80 Apollo(阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境.不同集群的配置,配置修改后能够 ...

  4. (转)实验文档3:在kubernetes集群里集成Apollo配置中心

    使用ConfigMap管理应用配置 拆分环境 主机名 角色 ip HDSS7-11.host.com zk1.od.com(Test环境) 10.4.7.11 HDSS7-12.host.com zk ...

  5. 基于winserver的Apollo配置中心分布式&集群部署实践(正确部署姿势)

    基于winserver的Apollo配置中心分布式&集群部署实践(正确部署姿势)   前言 前几天对Apollo配置中心的demo进行一个部署试用,现公司已决定使用,这两天进行分布式部署的时候 ...

  6. 基于zookeeper集群的云平台-配置中心的功能设计

    最近准备找工作面试,就研究了下基于zookeeper集群的配置中心. 下面是自己设想的关于开源的基于zookeeper集群的云平台-配置中心的功能设计.大家觉得哪里有问题,请提出宝贵的意见和建议,谢谢 ...

  7. 携程 Apollo 配置中心传统 .NET 项目集成实践

    官方文档存在的问题 可能由于 Apollo 配置中心的客户端源码一直处于更新中,导致其相关文档有些跟不上节奏,部分文档写的不规范,很容易给做对接的新手朋友造成误导. 比如,我在参考如下两个文档使用传统 ...

  8. kubernetes实战-配置中心(四)分环境使用apollo配置中心

    要进行分环境,需要将现有实验环境进行拆分 portal服务,可以各个环境共用,但是apollo-adminservice和apollo-configservice必须要分开. 1.zk环境拆分为tes ...

  9. k8s-2-集成apollo配置中心

    主题: 在k8s中集成Apollo配置中心 架构图 一.配置中心概述 配置的几种方式 本课讲得是基于配置中心数据库实现 配置管理的现状 常见的配置中心 主讲:k8s configmap,apollo ...

随机推荐

  1. 使用idea插件识别log文件的相关设置

    最近要读一些spring boot项目产生的log文件,众所周知,idea拥有强大的插件系统.当我打开log文件时,idea自动帮我推荐了ideolog这个插件. 但是当我安装好之后发现系统并不能完全 ...

  2. expect的使用

    1. expect概述 1.1 expect的功能 脚本执行时,有时会需要人工进行交互输入,这时可以通过expect工具来实现自动交互. expect是一种shell解释器,但是expect可以在命令 ...

  3. 如何封装Promise对象?

    最近看到了一个有趣的Promise的方法,这里记录下来 <script> class MyPromise { constructor(executor) { // 初始化state赋值为p ...

  4. jQuery 当前展开其他收缩 三级下拉菜单(转载)

    jQuery可展开收缩三级下拉菜单 <!DOCTYPE html> <html> <head> <meta charset="UTF-8" ...

  5. python3 安装 #zlib zlibmodule.c -I$(prefix)/include -L$(exec_prefix)/lib -lz RHEL 8 install Python 3 or Python 2 using yum 编译安装 python3.7.4 . OpenSSL 1.0.2 or 1.1. Consequently, OpenSSL 0.9.8 and 1.0

    #zlib zlibmodule.c -I$(prefix)/include -L$(exec_prefix)/lib -lz Modules/Setup.dist https://askubuntu ...

  6. 从零开始学Java (五)条件选择

    if switch while do while for break continue 这块对于有语言基础的人来说可以跳过了. 注意有个equals方法. 1 public class Main { ...

  7. Python学习【第4篇】:元组魔法

    template = "i am {name},age:{age}" v = template.format(**{"name":'xiaoxing',&quo ...

  8. SpringMVC听课笔记(SpringMVC 表单标签 & 处理静态资源)

    1.springmvc表单标签,可以快速开发,表单回显,但是感触不深 2.静态资源的获取,主要是要配置这个

  9. 你可能不知道的 transition 技巧与细节

    CSS 中,transition 属性用于指定为一个或多个 CSS 属性添加过渡效果. 最为常见的用法,也就是给元素添加一个 transition,让其某个属性从状态 A 变化到状态 B 时,不再是非 ...

  10. JavaWeb——JSP内置对象application,JSP属性范围

    application application语法 application对象 JSP属性范围 范围的分类 page request session application pagecontext延伸 ...