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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > java >内容正文

java

docker 部署java_使用Docker堆栈部署的微服务-WildFly,Java EE和Couchbase

發(fā)布時間:2023/12/3 java 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 docker 部署java_使用Docker堆栈部署的微服务-WildFly,Java EE和Couchbase 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

docker 部署java

關(guān)于微服務(wù)的資料很多,只是用谷歌搜索就可以了 ! 幾年前,我在比利時的Devoxx上發(fā)表了有關(guān)將單片重構(gòu)為微服務(wù)的演講,它獲得了很好的評價:

該博客將展示Docker如何簡化微服務(wù)的創(chuàng)建和關(guān)閉。

該博客中使用的所有代碼都在github.com/arun-gupta/couchbase-javaee上 。

使用撰寫的微服務(wù)定義

Docker 1.13引入了v3的Docker Compose 。 語法上的更改很小,但主要區(qū)別是添加了deploy屬性。 此屬性允許為容器指定副本,滾動更新和重新啟動策略。

我們的微服務(wù)將使用預(yù)先部署的Java EE應(yīng)用程序啟動WldFly應(yīng)用程序服務(wù)器。 該應(yīng)用程序?qū)⑴cCouchbase數(shù)據(jù)庫對話以獲取CRUD應(yīng)用程序數(shù)據(jù)。

這是Compose定義:

version: '3' services:web:image: arungupta/couchbase-javaee:travelenvironment:- COUCHBASE_URI=dbports:- 8080:8080- 9990:9990depends_on:- dbdb:image: arungupta/couchbase:travelports:- 8091:8091- 8092:8092 - 8093:8093 - 11210:11210

在此撰寫文件中:

  • 此Compose中的兩個服務(wù)由名稱db和web屬性定義
  • 使用image屬性定義的每個服務(wù)的圖像名稱
  • arungupta/couchbase:travel圖像將啟動Couchbase服務(wù)器,使用Couchbase REST API對其進(jìn)行配置,并使用?32k JSON文檔加載travel-sample存儲桶。
  • arungupta/couchbase-javaee:travel映像啟動WildFly并部署從https://github.com/arun-gupta/couchbase-javaee構(gòu)建的應(yīng)用程序WAR文件。 如果要構(gòu)建自己的映像,請克隆該項目。
  • envrionment屬性定義了WildFly中部署的應(yīng)用程序可訪問的環(huán)境變量。 COUCHBASE_URI引用數(shù)據(jù)庫服務(wù)。 在https://github.com/arun-gupta/couchbase-javaee/blob/master/src/main/java/org/couchbase/sample/javaee/Database.java所示的應(yīng)用程序代碼中使用了此代碼。
  • 端口轉(zhuǎn)發(fā)是使用ports屬性實現(xiàn)的
  • Compose定義文件中的depends_on屬性可確保容器啟動順序。 但是需要在容器內(nèi)運(yùn)行的應(yīng)用程序確保應(yīng)用程序級別的啟動。 在我們的例子中,WildFly的啟動速度非???#xff0c;但是要花幾秒鐘才能啟動數(shù)據(jù)庫。 這意味著WildFly中部署的Java EE應(yīng)用程序無法與數(shù)據(jù)庫進(jìn)行通信。 這概述了構(gòu)建微服務(wù)應(yīng)用程序時的最佳實踐:您必須進(jìn)行防御性編碼,并在應(yīng)用程序初始化中確保依賴的微服務(wù)已啟動,而無需假定啟動順序。 這顯示在https://github.com/arun-gupta/couchbase-javaee/blob/master/src/main/java/org/couchbase/sample/javaee/Database.java的數(shù)據(jù)庫初始化代碼中。 它執(zhí)行以下檢查:

  • 鏟斗存在
  • Couchbase的查詢服務(wù)已啟動并正在運(yùn)行
  • 樣品桶已滿載
  • 可以在單個主機(jī)上使用docker-compose up -d命令啟動該應(yīng)用程序。 或使用docker stack deploy命令以群集模式運(yùn)行的Docker引擎集群。

    設(shè)置Docker Swarm模式

    使用以下命令初始化Swarm模式:

    docker swarm init

    這將啟動“群管理器”。 默認(rèn)情況下,管理器節(jié)點(diǎn)也是工作程序,但可以配置為僅管理器。

    使用命令docker info命令查找有關(guān)此單節(jié)點(diǎn)集群的一些信息:

    Containers: 0Running: 0Paused: 0Stopped: 0 Images: 17 Server Version: 1.13.0 Storage Driver: overlay2Backing Filesystem: extfsSupports d_type: trueNative Overlay Diff: true Logging Driver: json-file Cgroup Driver: cgroupfs Plugins:Volume: localNetwork: bridge host ipvlan macvlan null overlay Swarm: activeNodeID: 92mydh0e09ba5hx3wtmcmvktzIs Manager: trueClusterID: v68ikyaff7rdxpaw1j0c9i60sManagers: 1Nodes: 1Orchestration:Task History Retention Limit: 5Raft:Snapshot Interval: 10000Number of Old Snapshots to Retain: 0Heartbeat Tick: 1Election Tick: 3Dispatcher:Heartbeat Period: 5 secondsCA Configuration:Expiry Duration: 3 monthsNode Address: 192.168.65.2Manager Addresses:192.168.65.2:2377 Runtimes: runc Default Runtime: runc Init Binary: docker-init containerd version: 03e5862ec0d8d3b3f750e19fca3ee367e13c090e runc version: 2f7393a47307a16f8cee44a37b262e8b81021e3e init version: 949e6fa Security Options:seccompProfile: default Kernel Version: 4.9.5-moby Operating System: Alpine Linux v3.5 OSType: linux Architecture: x86_64 CPUs: 4 Total Memory: 1.952 GiB Name: moby ID: SGCM:KDRD:G3M7:PZHN:J4RL:VFFR:G2SR:EKD5:JV4J:RL3X:LF7T:XF6V Docker Root Dir: /var/lib/docker Debug Mode (client): false Debug Mode (server): trueFile Descriptors: 31Goroutines: 124System Time: 2017-01-27T08:25:58.032295342ZEventsListeners: 1 No Proxy: *.local, 169.254/16 Username: arungupta Registry: https://index.docker.io/v1/ Experimental: true Insecure Registries:127.0.0.0/8 Live Restore Enabled: false

    該集群有1個節(jié)點(diǎn),即節(jié)點(diǎn)。

    或者,可以使用Docker for AWS輕松設(shè)置多主機(jī)集群。

    部署微服務(wù)

    可以通過以下方式啟動微服務(wù):

    docker stack deploy --compose-file=docker-compose.yml webapp

    顯示輸出:

    Creating network webapp_default Creating service webapp_web Creating service webapp_db

    WildFly和Couchbase服務(wù)在此節(jié)點(diǎn)上啟動。 每個服務(wù)都有一個容器。 如果在多個節(jié)點(diǎn)上啟用了Swarm模式,則容器將分布在多個節(jié)點(diǎn)上。

    創(chuàng)建一個新的覆蓋網(wǎng)絡(luò)。 這允許不同主機(jī)上的多個容器相互通信。
    使用docker docker service ls驗證WildFly和Couchbase服務(wù)是否正在運(yùn)行:

    ID NAME MODE REPLICAS IMAGE a9pkiziw3vgw webapp_db replicated 1/1 arungupta/couchbase:travel hr5s6ue54kwj webapp_web replicated 1/1 arungupta/couchbase-javaee:travel

    可以使用docker service logs -f webapp_web查看該服務(wù)的docker service logs -f webapp_web :

    webapp_web.1.wby0b04t7bap@moby | ========================================================================= webapp_web.1.wby0b04t7bap@moby | webapp_web.1.wby0b04t7bap@moby | JBoss Bootstrap Environment webapp_web.1.wby0b04t7bap@moby | webapp_web.1.wby0b04t7bap@moby | JBOSS_HOME: /opt/jboss/wildfly webapp_web.1.wby0b04t7bap@moby | webapp_web.1.wby0b04t7bap@moby | JAVA: /usr/lib/jvm/java/bin/java webapp_web.1.wby0b04t7bap@moby | webapp_web.1.wby0b04t7bap@moby | JAVA_OPTS: -server -Xms64m -Xmx512m -XX:MetaspaceSize=96M -XX:MaxMetaspaceSize=256m -Djava.net.preferIPv4Stack=true -Djboss.modules.system.pkgs=org.jboss.byteman -Djava.awt.headless=true webapp_web.1.wby0b04t7bap@moby | webapp_web.1.wby0b04t7bap@moby | =========================================================================. . .webapp_web.1.wby0b04t7bap@moby | 23:14:15,811 INFO [org.jboss.as.server] (ServerService Thread Pool -- 34) WFLYSRV0010: Deployed "airlines.war" (runtime-name : "airlines.war") webapp_web.1.wby0b04t7bap@moby | 23:14:16,076 INFO [org.jboss.as] (Controller Boot Thread) WFLYSRV0060: Http management interface listening on http://127.0.0.1:9990/management webapp_web.1.wby0b04t7bap@moby | 23:14:16,077 INFO [org.jboss.as] (Controller Boot Thread) WFLYSRV0051: Admin console listening on http://127.0.0.1:9990 webapp_web.1.wby0b04t7bap@moby | 23:14:16,077 INFO [org.jboss.as] (Controller Boot Thread) WFLYSRV0025: WildFly Full 10.1.0.Final (WildFly Core 2.2.0.Final) started in 98623ms - Started 443 of 691 services (404 services are lazy, passive or on-demand) 確保等待最后一條日志語句顯示。

    存取微服務(wù)

    從微服務(wù)獲取10家航空公司:

    curl -v http://localhost:8080/airlines/resources/airline

    結(jié)果顯示為:

    * Trying ::1... * Connected to localhost (::1) port 8080 (#0) > GET /airlines/resources/airline HTTP/1.1 > Host: localhost:8080 > User-Agent: curl/7.43.0 > Accept: */* > < HTTP/1.1 200 OK < Connection: keep-alive < X-Powered-By: Undertow/1 < Server: WildFly/10 < Content-Type: application/octet-stream < Content-Length: 1402 < Date: Fri, 03 Feb 2017 17:02:45 GMT < * Connection #0 to host localhost left intact [{"travel-sample":{"country":"United States","iata":"Q5","callsign":"MILE-AIR","name":"40-Mile Air","icao":"MLA","id":10,"type":"airline"}}, {"travel-sample":{"country":"United States","iata":"TQ","callsign":"TXW","name":"Texas Wings","icao":"TXW","id":10123,"type":"airline"}}, {"travel-sample":{"country":"United States","iata":"A1","callsign":"atifly","name":"Atifly","icao":"A1F","id":10226,"type":"airline"}}, {"travel-sample":{"country":"United Kingdom","iata":null,"callsign":null,"name":"Jc royal.britannica","icao":"JRB","id":10642,"type":"airline"}}, {"travel-sample":{"country":"United States","iata":"ZQ","callsign":"LOCAIR","name":"Locair","icao":"LOC","id":10748,"type":"airline"}}, {"travel-sample":{"country":"United States","iata":"K5","callsign":"SASQUATCH","name":"SeaPort Airlines","icao":"SQH","id":10765,"type":"airline"}}, {"travel-sample":{"country":"United States","iata":"KO","callsign":"ACE AIR","name":"Alaska Central Express","icao":"AER","id":109,"type":"airline"}}, {"travel-sample":{"country":"United Kingdom","iata":"5W","callsign":"FLYSTAR","name":"Astraeus","icao":"AEU","id":112,"type":"airline"}}, {"travel-sample":{"country":"France","iata":"UU","callsign":"REUNION","name":"Air Austral","icao":"REU","id":1191,"type":"airline"}}, {"travel-sample":{"country":"France","iata":"A5","callsign":"AIRLINAIR","name":"Airlinair","icao":"RLA","id":1203,"type":"airline"}}]

    Docker for Java Developers研討會是一個自定進(jìn)度的動手實驗,可讓您輕松開始使用Docker。

    獲取單個資源:

    curl -v http://localhost:8080/airlines/resources/airline/137

    創(chuàng)建一個新資源:

    curl -v -H "Content-Type: application/json" -X POST -d '{"country":"France","iata":"A5","callsign":"AIRLINAIR","name":"Airlinair","icao":"RLA","type":"airline"}' http://localhost:8080/airlines/resources/airline

    更新資源:

    curl -v -H "Content-Type: application/json" -X PUT -d '{"country":"France","iata":"A5","callsign":"AIRLINAIR","name":"Airlin Air","icao":"RLA","type":"airline","id": "19810"}' http://localhost:8080/airlines/resources/airline/19810

    刪除資源:

    curl -v -X DELETE http://localhost:8080/airlines/resources/airline/19810

    每個命令的詳細(xì)輸出在github.com/arun-gupta/couchbase-javaee上 。

    刪除微服務(wù)

    可以使用命令docker stack rm webapp刪除微服務(wù)

    Removing service webapp_web Removing service webapp_db Removing network webapp_default

    想要開始使用Couchbase嗎? 查看Couchbase入門套件 。

    想更多地了解如何在容器中運(yùn)行Couchbase?

    • 容器上的Couchbase
    • Couchbase論壇
    • Couchbase開發(fā)人員門戶
    • @couchhasedev和@couchbase

    翻譯自: https://www.javacodegeeks.com/2017/02/microservice-using-docker-stack-deploy-wildfly-java-ee-couchbase.html

    docker 部署java

    創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎

    總結(jié)

    以上是生活随笔為你收集整理的docker 部署java_使用Docker堆栈部署的微服务-WildFly,Java EE和Couchbase的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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

    主站蜘蛛池模板: 黄色网页观看 | 日韩中文在线播放 | 日韩在线观看视频一区二区三区 | 久久黑人| 成年人免费大片 | 特级淫片aaaaaaa级 | 日本熟妇人妻中出 | 一色道久久88加勒比一 | 青青草福利视频 | 嫩草伊人 | wwww黄色片| 狠狠操婷婷| 中国无码人妻丰满熟妇啪啪软件 | 男女无遮挡免费视频 | 日美女网站| 日韩经典午夜福利发布 | 伊人久久精品视频 | 中文在线a在线 | 6080久久| 欧美黄色a | 婷婷在线观看视频 | 黄色性情网站 | 国产精品国产三级国产aⅴ9色 | 亚洲精品69 | 欧美aa| 欧美日韩在线播放 | 91精品国产91综合久久蜜臀 | 老司机一区二区 | 夜色成人网 | 中文字幕人成 | 强迫凌虐淫辱の牝奴在线观看 | 羞羞网站在线看 | 久久精品一区 | 色综合综合网 | 欧洲一区二区在线 | 国产欧美一区二区三区在线老狼 | 日本一区二区三区视频在线 | 日韩精品视频免费在线观看 | 成人精品电影 | 高清国产一区二区三区 | 亚洲视频自拍 | 黄色激情在线观看 | 一品道av| 91美女片黄 | 欧美拍拍视频 | 日本四级电影 | 久久久久高清 | 精品一区二区三区蜜臀 | 天堂8在线 | 舔花蒂 | 亚洲大色网 | 亚洲av无一区二区三区久久 | 百合sm惩罚室羞辱调教 | 久久亚洲中文字幕无码 | 在线免费国产 | 97伊人网| 精品人妻久久久久一区二区三区 | 无码精品人妻一区二区三区漫画 | 亚洲成人影音 | 亚洲欧美日韩中文在线 | 欧美日韩一区二区在线 | 久久久久久久久久久网 | 婷婷久久久久久 | 欧美一区二区三区视频在线观看 | 久久涩涩 | 国产精品12页 | 国产对白在线 | 成人黄色网址在线观看 | 操欧洲美女 | jizz毛片| 在线观看深夜视频 | 国产精品久久久999 www日本高清视频 | 97人人视频 | 久久99草| 国产娇小hdxxxx乱 | 少妇久久久久久久久久 | 女生扒开腿让男生操 | 久久青青草原亚洲av无码麻豆 | 日韩性xx | 欧美精品自拍偷拍 | 久久aⅴ乱码一区二区三区 亚洲成人18 | 久久午夜鲁丝片午夜精品 | 91在线 | 色网站免费看 | 国产伦理片在线观看 | 亚洲自拍色图 | 91午夜在线观看 | 精品日韩在线视频 | 91成人短视频在线观看 | 在线尤物 | h片在线播放 | 在线视频一区二区 | 色狠狠综合网 | 精品美女一区二区 | 欧美中文字幕在线视频 | 69式视频 | 午夜肉伦伦 | 韩国伦理电影免费在线 | 内射中出日韩无国产剧情 |