天天看點

docker實戰--部署一個spring boot微服務

需求:

把自己搭建的spring cloud子產品,服務注冊中心使用docker部署啟動。實作服務注冊和通路。

實作一個簡單的分布式 rpc 

準備工作:

安裝好docker的阿裡雲伺服器

eureka 微服務jar包

服務提供者(本地啟動)

服務調用方(本地啟動)

實作步驟:

dockerfile準備

通過配置eureka.instance.hostname 和server.port 提供給服務提供方和調用方的通路url.

spring:
  profiles:
    active: pro

---
eureka:
  instance:
    hostname: ***.**.*.*  #服務執行個體名稱  伺服器ip
  client:
    healthcheck:
      enabled: true #這個配置必須配置才能啟動成功
    register-with-eureka: false #表示是否向eureka注冊中心注冊自己
    fetch-registry: false  #false 表示自己是注冊中心
    service-url:   #表示監控注冊位址
      defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
server:
  port: ****  ##服務注冊端口
spring:
  profiles: pro
---
eureka:
  instance:
    hostname: localhost  #服務執行個體名稱
  client:
    healthcheck:
      enabled: true #這個配置必須配置才能啟動成功
    register-with-eureka: false #表示是否向eureka注冊中心注冊自己
    fetch-registry: false  #false 表示自己是注冊中心
    service-url:   #表示監控注冊位址
      defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
server:
  port: ****
spring:
  profiles: dev
           

maven package eureka得到jar包.

在伺服器端建立一個臨時目錄,并把jar上傳,

并且建立一個dockerfile用于生成鏡像

FROM java:8
ADD blog-eureka-0.0.1-SNAPSHOT.jar /app/eureka.jar
###RUN yum install net-tools
EXPOSE 1000  ##端口号
CMD java -jar /app/eureka.jar
           

目錄:

docker實戰--部署一個spring boot微服務

pull java:8 鏡像

docker pull java:8
           

 生成微服務鏡像

docker build -f dockerfile-eureka -t eureka:1.1 .
           

docker啟動 微服務應用

此處-p 後面是主控端和docker之間的端口映射

docker run -di --name eureka -p ***:*** eureka:1.1 
           

 此時eureka的管理頁面可以通路:

docker實戰--部署一個spring boot微服務

 dockers ps檢視容器已經啟動:

docker實戰--部署一個spring boot微服務

注冊服務

隻需要修改defaultZone的ip和端口

以前是localhost,因為以前eureka也在本地

eureka:
  client:
    service-url:
      defaultZone: http://ip:port/eureka/  ##eureka服務ip和port ###
    healthcheck:
      enabled: true
  instance:
    instance-id: seckill-platform
           

服務端全部配置: 

docker實戰--部署一個spring boot微服務

 可以看到服務已經注冊成功:

docker實戰--部署一個spring boot微服務

 前台調用

隻需要修改此處defaultZone:這就是feign自動尋找服務

eureka:
  client:
    register-with-eureka: false  #不像eureka 注冊自己
    service-url:
      defaultZone: http://ip:port/eureka/  ##
           

調用成功,此處通過eureka調用了背景查詢所有秒殺上面的邏輯。

docker實戰--部署一個spring boot微服務