真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

DockerCompose如何部署復(fù)雜的App

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

創(chuàng)新互聯(lián)公司溝通電話(huà):18980820575,為您提供成都網(wǎng)站建設(shè)網(wǎng)頁(yè)設(shè)計(jì)及定制高端網(wǎng)站建設(shè)服務(wù),創(chuàng)新互聯(lián)公司網(wǎng)頁(yè)制作領(lǐng)域10余年,包括成都垃圾桶等多個(gè)行業(yè)擁有豐富的網(wǎng)站營(yíng)銷(xiāo)經(jīng)驗(yàn),選擇創(chuàng)新互聯(lián)公司,為企業(yè)保駕護(hù)航!

如何使用docker-compose部署復(fù)雜的application。

先介紹一些docker-compose的簡(jiǎn)單命令:

docker-compose build

這個(gè)命令可以根據(jù)docker-compose.yml文件內(nèi)容,構(gòu)建服務(wù)鏡像。

docker-compose up

這個(gè)命令可以將服務(wù)全部啟動(dòng)。

docker-compose down --rmi all

將docker-compose容器停止,并且刪除相應(yīng)容器鏡像。

首先看一下系統(tǒng)架構(gòu):

Docker Compose如何部署復(fù)雜的App

每個(gè)微服務(wù)都是使用springboot實(shí)現(xiàn)的。

Eureka服務(wù)

他的application.properties內(nèi)容如下:

server.port=8080

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

elasticsearch-curl服務(wù)

application.properties內(nèi)容如下:

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


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


server.port=8081

es-consumer服務(wù)

這個(gè)服務(wù)主要是用于消費(fèi)es-curl服務(wù)的。他的application.propertis內(nèi)容如下:

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

server.port=8082

調(diào)用服務(wù):

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

Dockerfile文件內(nèi)容

Eureka服務(wù):

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服務(wù):

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服務(wù):

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

訪問(wèn)192.168.182.151:8080

Docker Compose如何部署復(fù)雜的App

更好的方式部署

在eureka服務(wù)中,修改application.properties內(nèi)容:

eureka.instance.hostname=eureka

分別在es-curl和es-consumer服務(wù)中的application.properties修改內(nèi)容:

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

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

實(shí)驗(yàn)二:測(cè)試簡(jiǎn)單的eureka生產(chǎn)者和消費(fèi)者:

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

eureka server

eureka server中的application.properties內(nèi)容如下:

server.port=8080

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

對(duì)應(yīng)的Dockerfile內(nèi)容如下:

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內(nèi)容如下:

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

# 服務(wù)名稱(chēng)--調(diào)用的時(shí)候根據(jù)名稱(chēng)來(lái)調(diào)用該服務(wù)的方法
spring.application.name=service-provider-A
server.port=8081

對(duì)應(yīng)的Dockerfile內(nèi)容如下:

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內(nèi)容如下:

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

# 服務(wù)名稱(chēng)--調(diào)用的時(shí)候根據(jù)名稱(chēng)來(lái)調(diào)用該服務(wù)的方法
spring.application.name=service-provider-A
server.port=8082

 應(yīng)的Dockerfile內(nèi)容如下:

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內(nèi)容如下:

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

# 服務(wù)名稱(chēng)--調(diào)用的時(shí)候根據(jù)名稱(chēng)來(lái)調(diào)用該服務(wù)的方法
spring.application.name=service-consumer-A
server.port=8083

 應(yīng)的Dockerfile內(nèi)容如下:

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

# 服務(wù)名稱(chēng)--調(diào)用的時(shí)候根據(jù)名稱(chēng)來(lái)調(diào)用該服務(wù)的方法
spring.application.name=service-consumer-A
server.port=8083

整個(gè)docker-compose.yml文件內(nèi)容如下:

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

執(zhí)行docker-compose build執(zhí)行構(gòu)建。

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

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 啟動(dòng)項(xiàng)目。

瀏覽器中輸入ip地址:ip:8080可以查看到eureka服務(wù)已經(jīng)啟動(dòng)了。并且能看到provider也已經(jīng)注冊(cè)進(jìn)來(lái)了。輸入ip:8083/gotoUser/jack多刷幾次可以看到啟用了不同的provider服務(wù)。

關(guān)于Docker Compose如何部署復(fù)雜的App就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到。


網(wǎng)頁(yè)題目:DockerCompose如何部署復(fù)雜的App
當(dāng)前鏈接:http://weahome.cn/article/gjcjch.html

在線(xiàn)咨詢(xún)

微信咨詢(xún)

電話(huà)咨詢(xún)

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部