『高級篇』docker之微服務docker下的服務通訊(19)

>原創文章,歡迎轉載。轉載請註明:轉載自IT人故事會,謝謝!
>原文鏈接地址:『高級篇』docker之微服務docker下的服務通訊(19)

上次我們把每個服務都進行了docker化,並且確保了每個docker容器都可以運行起來,但是並沒有讓他們之間進行彼此的通信,這次就完成通信這件事。讓docker服務運行起來,並且保證他們之間的正常通信。源碼:https://github.com/limingios/msA-docker

說到讓docker彼此進行通信。

以下的三種方案,如果使用redis,zookeeper,mysql那種是最優方案呢?這裏的話我們開發的微服務使用第三種方案來做。針對redis,zookeeper,mysql使用第二種方案來做。

  1. 直接通信,容器的IP和端口直接訪問服務。這種方式運行的很少,因爲docker的ip不穩定,每次重新都可能發生變化。
  2. 服務把端口映射出去,將服務的端口映射到主機的端口上,依賴它的容器去訪問主機的ip和端口就可以了。
  3. 通過link的方式,link到主機後,直接通過主機的名字來進行訪問。

使用docker compose的方式

我們也可以通過命令一個一個之間進行link,但是compose得方式是一種常見的使用方式,也是最好的方案,它可以描述出來服務之間的關係,非常的清晰明瞭。

version: '3'

services:
  message-thrift-python-service:
    image: message-thrift-python-service:latest

  user-thrift-service:
    image: user-thrift-service:latest
    command:
      - "--mysql.address=192.168.1.130"

  user-edge-service:
    image: user-edge-service:latest
    links:
      - user-thrift-service
      - message-thrift-python-service
    command:
      - "--redis.address=192.168.1.130"

  course-dubbo-service:
    image: course-dubbo-service:latest
    links:
      - user-thrift-service
    command:
      - "--mysql.address=192.168.1.130"
      - "--zookeeper.address=192.168.1.130"

  course-edge-service:
    image: course-edge-service:latest
    links:
      - user-edge-service
    command:
      - "--zookeeper.address=192.168.1.130"

  gataway-zuul:
    image: gataway-zuul:latest
    links:
      - user-edge-service
      - course-edge-service
    ports:
      - 8080:8080

配置這個了大概2天才配置好,太麻煩了,真的一個人如果做微服務建議放棄,太費勁。但是微服務的好處真的很明顯。

  1. 修改完每個微服務,都要進行build.sh
  2. 服務之間的調用,通過dockerlink的方式在docker-compose都進行了配置。
  3. 查看微服務的日誌通過docker logs 容器名稱
  4. docker ps 查看微服務的id

PS:三步走,服務docker化已經基本完成了,下一步創建docker倉庫。

『高級篇』docker之微服務docker下的服務通訊(19)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章