中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Docker Compose如何部署復雜的App

發布時間:2021-10-19 17:59:20 來源:億速云 閱讀:126 作者:柒染 欄目:大數據

這篇文章給大家介紹Docker Compose如何部署復雜的App,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

如何使用docker-compose部署復雜的application。

先介紹一些docker-compose的簡單命令:

docker-compose build

這個命令可以根據docker-compose.yml文件內容,構建服務鏡像。

docker-compose up

這個命令可以將服務全部啟動。

docker-compose down --rmi all

將docker-compose容器停止,并且刪除相應容器鏡像。

首先看一下系統架構:

Docker Compose如何部署復雜的App

每個微服務都是使用springboot實現的。

Eureka服務

他的application.properties內容如下:

server.port=8080

eureka.instance.hostname=192.168.182.151
# 是否向服務中心注冊自己
eureka.client.register-with-eureka=false
# 是否檢索服務
eureka.client.fetch-registry=false
eureka.client.service-url.defaultZone=http://${eureka.instance.hostname}:${server.port}/eureka/

elasticsearch-curl服務

application.properties內容如下:

spring.elasticsearch.rest.uris=192.168.182.149:9200
logging.level.root=INFO
logging.file=user.log
es.ips[0]=192.168.182.149
es.port=9300
es.clusterName=elasticsearch


#注冊中心的注冊地址
eureka.client.service-url.defaultZone=http://192.168.182.151:8080/eureka/
spring.application.name=elasticsearch-curl-provider


server.port=8081

es-consumer服務

這個服務主要是用于消費es-curl服務的。他的application.propertis內容如下:

#注冊中心的注冊地址
eureka.client.service-url.defaultZone=http://192.168.182.151:8080/eureka/
spring.application.name=elasticsearch-consumer

server.port=8082

調用服務:

ResponseEntity<Object> objectResponseEntity = restTemplate.postForEntity("http://elasticsearch-curl-provider/add/"+indexName+"/" + type, data, Object.class);

Dockerfile文件內容

Eureka服務:

FROM java:8-alpine
MAINTAINER "eureka server"
ADD spring-cloud-eureka-server-1.0-SNAPSHOT.jar app.jar
EXPOSE 8080
ENTRYPOINT ["java", "-jar", "/app.jar"]

es-curl服務:

FROM java:8-alpine
MAINTAINER "es-curl server"
ADD elasticsearch-curl-1.0-SNAPSHOT.jar app.jar
EXPOSE 8081
ENTRYPOINT ["java", "-jar", "/app.jar"]

es-consumer服務:

FROM java:8-alpine
MAINTAINER "es-curl server"
ADD elasticsearch-curl-1.0-SNAPSHOT.jar app.jar
EXPOSE 8081
ENTRYPOINT ["java", "-jar", "/app.jar"]

docker-compose.yml文件

version: '3'

services:

    eureka:
        build:
            context: ./eureka
            dockerfile: Dockerfile
        container_name: ddy-eureka
        ports:
            - "8080:8080"

    es-curl:
        build:
            context: ./es-curl/.
            dockerfile: Dockerfile
        container_name: ddy-es-curl
        depends_on:
            - eureka
        ports:
            - "8081:8081"
        links:
            - eureka

    es-consumer:
        build:
            context: ./es-consumer/.
            dockerfile: Dockerfile
        container_name: ddy-consumer
        depends_on:
            - eureka
            - es-curl
        ports:
            - "8082:8082"
        links:
            - eureka
            - es-curl

操作

docker-compose build
docker-compose up

訪問192.168.182.151:8080

Docker Compose如何部署復雜的App

更好的方式部署

在eureka服務中,修改application.properties內容:

eureka.instance.hostname=eureka

分別在es-curl和es-consumer服務中的application.properties修改內容:

eureka.client.service-url.defaultZone=http://eureka:8080/eureka/

這樣就不需要知道主機的ip是多少了。

實驗二:測試簡單的eureka生產者和消費者:

項目代碼:https://github.com/vincentduan/spring-cloud-project 下面的eureka目錄下

eureka server

eureka server中的application.properties內容如下:

server.port=8080

eureka.instance.hostname=eureka
# 是否向服務中心注冊自己
eureka.client.register-with-eureka=false
# 是否檢索服務
eureka.client.fetch-registry=false
eureka.client.service-url.defaultZone=http://${eureka.instance.hostname}:${server.port}/eureka/

對應的Dockerfile內容如下:

FROM java:8-alpine
MAINTAINER "es-curl server"
ADD spring-cloud-eureka-server-1.0-SNAPSHOT.jar app.jar
EXPOSE 8080
ENTRYPOINT ["java", "-jar", "/app.jar"]

service-provider1

service-provider1中的application.properties內容如下:

# 注冊中心的注冊地址
eureka.client.service-url.defaultZone=http://eureka:8080/eureka/

# 服務名稱--調用的時候根據名稱來調用該服務的方法
spring.application.name=service-provider-A
server.port=8081

對應的Dockerfile內容如下:

FROM java:8-alpine
MAINTAINER "es-curl server"
ADD spring-cloud-eureka-provider-A-1-1.0-SNAPSHOT.jar app.jar
EXPOSE 8081
ENTRYPOINT ["java", "-jar", "/app.jar"]

service-provider2

service-provider2中的application.properties內容如下:

# 注冊中心的注冊地址
eureka.client.service-url.defaultZone=http://eureka:8080/eureka/

# 服務名稱--調用的時候根據名稱來調用該服務的方法
spring.application.name=service-provider-A
server.port=8082

 應的Dockerfile內容如下:

FROM java:8-alpine
MAINTAINER "es-curl server"
ADD spring-cloud-eureka-provider-A-2-1.0-SNAPSHOT.jar app.jar
EXPOSE 8082
ENTRYPOINT ["java", "-jar", "/app.jar"]

 consumer

consumer中的application.properties內容如下:

# 注冊中心的注冊地址
eureka.client.service-url.defaultZone=http://eureka:8080/eureka/

# 服務名稱--調用的時候根據名稱來調用該服務的方法
spring.application.name=service-consumer-A
server.port=8083

 應的Dockerfile內容如下:

# 注冊中心的注冊地址
eureka.client.service-url.defaultZone=http://eureka:8080/eureka/

# 服務名稱--調用的時候根據名稱來調用該服務的方法
spring.application.name=service-consumer-A
server.port=8083

整個docker-compose.yml文件內容如下:

version: '3'

services:

    eureka:
        build:
            context: ./eureka
            dockerfile: Dockerfile
        container_name: ddy-eureka
        ports: 
            - "8080:8080"

    service-provider-1:
        build:
            context: ./provider-1
            dockerfile: Dockerfile
        container_name: ddy-provider-1
        ports:
            - "8081:8081"
        depends_on:
            - eureka
        links:
            - eureka
    
    service-provider-2:
        build:
            context: ./provider-2
            dockerfile: Dockerfile
        container_name: ddy-provider-2
        ports:
            - "8082:8082"
        depends_on:
            - eureka
        links:
            - eureka

    service-consumer:
        build:
            context: ./consumer
            dockerfile: Dockerfile
        container_name: ddy-consumer
        ports:
            - "8083:8083"
        depends_on:
            - eureka
            - service-provider-1
            - service-provider-2
        links:
            - eureka
            - service-provider-1
            - service-provider-2

執行docker-compose build執行構建。

使用命令docker-compose ps 可以查看服務情況:

docker-compose ps
     Name             Command         State           Ports         
--------------------------------------------------------------------
ddy-consumer     java -jar /app.jar   Up      0.0.0.0:8083->8083/tcp
ddy-eureka       java -jar /app.jar   Up      0.0.0.0:8080->8080/tcp
ddy-provider-1   java -jar /app.jar   Up      0.0.0.0:8081->8081/tcp
ddy-provider-2   java -jar /app.jar   Up      0.0.0.0:8082->8082/tcp

docker-compose up 啟動項目。

瀏覽器中輸入ip地址:ip:8080可以查看到eureka服務已經啟動了。并且能看到provider也已經注冊進來了。輸入ip:8083/gotoUser/jack多刷幾次可以看到啟用了不同的provider服務。

關于Docker Compose如何部署復雜的App就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

罗城| 浦县| 南宁市| 新源县| 合作市| 神农架林区| 鸡东县| 霞浦县| 石林| 西林县| 五台县| 巴楚县| 威海市| 武定县| 象山县| 永平县| 疏勒县| 天气| 齐齐哈尔市| 河间市| 邯郸县| 建始县| 湛江市| 华宁县| 敖汉旗| 拜泉县| 瑞安市| 玉屏| 浦县| 桐庐县| 丹巴县| 开远市| 文昌市| 靖安县| 象山县| 鄂伦春自治旗| 安阳市| 阿鲁科尔沁旗| 唐山市| 宜州市| 牡丹江市|