日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

Docker容器化部署config-server无法直接访问

發(fā)布時間:2023/11/27 生活经验 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Docker容器化部署config-server无法直接访问 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

Docker容器化部署config-server無法直接訪問

  • 1. 本機ip啟動方式:
  • 2. Docker容器啟動
      • 1)問題
      • 2)解決辦法
        • - 本機啟動
        • - 服務(wù)器啟動倆種方式
  • 3. dockerfile 示例
  • 4. JVM參數(shù)可配置
  • 5. 排查問題
    • 參考:

解決辦法:spring.cloud.config.uri

1. 本機ip啟動方式:

使用都是本地服務(wù)時,未使用docker方式部署。

spring:application:name: test-servicecloud:config:name: common-config,database-config,hbase-config,test-serviceprofile: devdiscovery:enabled: trueservice-id: config-server
eureka:instance:prefer-ip-address: trueinstance-id: ${spring.cloud.client.ip-address}:${server.port}client:serviceUrl:
#      defaultZone: http://xx.xx.xx.xx:xx/eureka/,http://xx.xx.xx.xx:xx/eureka/defaultZone: ${EUREKA_SERVER}

2. Docker容器啟動

1)問題

Docker容器化部署之后,服務(wù)器服務(wù)對外的ipPort和Eureka里獲取到的容器里真實的ipPort是不一致的;

訪問服務(wù)時只能通過服務(wù)對外的ipPort訪問,直接訪問eureka里的ipPort會報錯

2)解決辦法

- 本機啟動

spring:application:name: test-servicecloud:config:name: common-config,db-config,hbase-config,hdfs-config,test-serviceprofile: devuri: ${CONFIG_SERVER}  #docker容器部署config-server對外的ipPort#uri: http://xx.xx.xx.xx:xx/
eureka:instance:prefer-ip-address: trueinstance-id: ${spring.cloud.client.ip-address}:${server.port}metadata-map:zone: 1234client:serviceUrl:
#      defaultZone: http://xx.xx.xx.xx:xx/eureka/,http://xx.xx.xx.xx:xx/eureka/defaultZone: ${EUREKA_SERVER}

metadata-map: zone 與serviceUrl同時存在時,默認會優(yōu)先取同一個metadata-map: zone 內(nèi)的服務(wù),所以本地調(diào)試時可以把本地服務(wù)的eureka.instance.metadata-map.zone設(shè)置為 1234等,以避免影響正常的服務(wù)接口調(diào)用

- 服務(wù)器啟動倆種方式

方式1

spring:application:name: test-servicecloud:config:name: common-config,db-config,hbase-config,hdfs-config,test-serviceprofile: devuri: ${CONFIG_SERVER}
eureka:instance:prefer-ip-address: trueinstance-id: ${spring.cloud.client.ip-address}:${server.port}client:serviceUrl:defaultZone: ${EUREKA_SERVER}

方式2

spring:application:name: test-servicecloud:config:name: common-config,database-config,hbase-config,test-serviceprofile: devdiscovery:enabled: trueservice-id: config-server
eureka:instance:prefer-ip-address: trueinstance-id: ${spring.cloud.client.ip-address}:${server.port}client:serviceUrl:defaultZone: ${EUREKA_SERVER}#defaultZone: http://xx.xx.xx.xx:xx/eureka/,http://xx.xx.xx.xx:xx/eureka/

3. dockerfile 示例

FROM 基礎(chǔ)鏡像
MAINTAINNER 維護者 姓名郵箱
ADD 添加jar包、bootstrap.xml
ENV 設(shè)置日期時區(qū)
ENTRYPOINT 用于設(shè)定容器啟動時第一個運行的命令及其參數(shù)。

FROM registry.xxx.com/base/java:1.8
MAINTAINER xxx "xxx@qq.com"
ADD target/xxx-xxx-0.0.1.jar xxx-xxx-0.0.1.jar
ADD src/main/resources/bootstrap.yml bootstrap.yml
ENV lang en_Us.utf8
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
ENTRYPOINT java ${JVM_PARAMS:=-Xms4g –Xmx4g} -jar xxx-xxx-0.0.1.jar

4. JVM參數(shù)可配置

  • 方式一

    dockfile 中直接啟動服務(wù)的如下配置即可;
    環(huán)境變量 JVM_PARAMS= 配置 例如:-Xms8g –Xmx8g
    -Xmx 最大內(nèi)存 -Xms最小內(nèi)存

ENTRYPOINT java ${JVM_PARAMS:=-Xms4g –Xmx4g} –jar xxxxxx.jar    注: -Xms4g –Xmx4g 為默認值
  • 方式二

    dockfile 中調(diào)用shell 腳本啟動的

ENTRYPOINT  ./shell.sh “${JVM_PARAMS:=-Xms4g –Xmx4g}”   注:雙引號必須的

shell.sh如下

java $1 -jar test-service-0.0.1.jar

5. 排查問題

查看服務(wù)進程id: ps aux | grep java
查看分配內(nèi)存及使用情況: jmap -heap pid
查看占用內(nèi)存: top (尋找對應(yīng)進程的)

參考:

  • https://www.jianshu.com/p/1706831ee897
  • metadata-map: zone 與serviceUrl注冊后先后使用,默認會優(yōu)先取同一個metadata-map: zone 內(nèi)的服務(wù)

總結(jié)

以上是生活随笔為你收集整理的Docker容器化部署config-server无法直接访问的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。