SpringCloud | Docker 學習系列 | 將SpringCloud Eureka 服務註冊與發現部署到docker詳解
一、前言
最近在學習docker,順便把之前學習的spring cloud 部署到Docker 中。至於什麼是SpringCloud的服務註冊與發現,什麼是docker,我這裡就不作贅述了。可以先去學習這兩部分內容,再來看這篇文章,廢話不多說了。直接開始!
二、環境準備
JDK 8MAVEN 3.3.9
SpringCloud Dalston.SR4 SpringBoot 1.5.8.RELEASE
三、實戰eureka-server
3.1 建立工程
跟普通建立eurkea-server 工程一樣,如下圖所示:
目錄結構圖
3.2 pom.xml
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.eureka-server</groupId> <artifactId>101spring-cloud-eureka-server</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>101spring-cloud-eureka-server</name> <description>Demo project for Spring Boot</description> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.8.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <java.version>1.8</java.version> <spring-cloud.version>Dalston.SR4</spring-cloud.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-eureka-server</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies> <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>${spring-cloud.version}</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <build> <finalName>eureka-server</finalName> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> <!-- tag::plugin[] --> <!-- <plugin> <groupId>com.spotify</groupId> <artifactId>docker-maven-plugin</artifactId> <version>0.4.3</version> <configuration> <imageName>${docker.image.prefix}/test/${project.artifactId}</imageName> <dockerDirectory>src/main/docker</dockerDirectory> <resources> <resource> <targetPath>/</targetPath> <directory>${project.build.directory}</directory> <include>${project.build.finalName}.jar</include> </resource> </resources> </configuration> </plugin> --> <!-- end::plugin[] --> </plugins> </build> </project>
這裡暫時不用Docker 外掛演示,加入了eureka安全驗證,所以引入了security依賴。
3.3 application.yml
spring: application: name: eureka-server server: port: 8761 #安全認證配置 security: basic: enabled: true user: name: admin # 使用者名稱 password: admin123 # 使用者密碼 eureka: client: register-with-eureka: false fetch-registry: false
啟動專案測試是否成功。
啟動成功!說明我們的專案正常執行沒有問題!
四、實戰 eureka-client
建立eureka-client步驟跟建立eureka-server 一樣,只是注意一些細節。
4.1 application.yml
spring:
application:
name: eureka-client
server:
port: 8750
eureka:
instance:
prefer-ip-address: true
client:
serviceUrl:
defaultZone: http://admin:[email protected]:8761/eureka/
因為eureka-server 加入了安全驗證,所以客戶端註冊地址:http://admin:[email protected]:8761/eureka/
如上圖所示,說明客戶端註冊成功。整體流程沒問題!接下來部署到docker 中。
五、實戰 docker
這裡我的docker 搭建在VM虛擬機器CentOS7系統中。我安裝的docker 版本是目前最新的17ce社群版網上有許多搭建教程,這裡我就不囉嗦了。
5.1 打成Jar包
將 eureka-server 和 eureka-client 通過 maven 命令打成 jar 包右鍵=> Run As => Maven build => package 然後執行。
這裡我們看到已經打包成功了。重新整理一下target 目錄,可以看到已經打包好的eureka-server
eureka-client 也跟eureka-server 一樣。不過需要對application.yml 進行修改
需要將localhost 修改為eureka-server
5.2 製作docker 映象
這裡我通過遠端連線工具把jar上傳至linux 作業系統中。編寫dockerfile
FROM frolvlad/alpine-oraclejdk8:slim
VOLUME /tmp
ADD ./eureka-server.jar app.jar
#RUN bash -c 'touch /app.jar'
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
EXPOSE 8761
通過dockerfile 建立映象檔案
命令 docker build -t 10.0.233.4/eureka-server .
注:因為搭建了Harbor映象私服,所以取名為10.0.233.4/eureka-server
. 表示本目錄,不可以少。
映象打包成功,我們修改一下dockerfile 繼續上傳eureka-client
5.3 執行 docker 映象
到了最關鍵的一步了。
分別執行:
docker run --name eureka-server -p 8761:8761 -t 10.0.233.4/eureka-server
docker run --link eureka-server:8761 -p 8750:8750 -t 10.0.233.4/eureka-client
這時候我們可以看到已經實現了在docker 容器中的部署。完!
之後我會上傳至github中。
相關推薦
SpringCloud | Docker 學習系列 | 將SpringCloud Eureka 服務註冊與發現部署到docker詳解
一、前言 最近在學習docker,順便把之前學習的spring cloud 部署到Docker 中。至於什麼是SpringCloud的服務註冊與發現,什麼是docker,我這裡就不作贅述了。可以先去學習這兩部分內容,再來看這篇文章,廢話不多說了。直接開始!二、
SpringCloud | Docker 學習系列 | Kubernetes 學習 將SpringCloud Eureka 服務註冊與發現部署到docker中並放入到Kubernetes中管理
一、前言 很早之前就想寫這篇文章,終於有點時間來填坑了。之前都是在公司伺服器上搭建的,這次在自己的電腦上搭建好了環境,再來完善這篇部落格。二、環境準備 此次環境已經搭建完畢 kubernetes v1.9.0 docker 17.03.2-
springcloud學習筆記一:eureka服務註冊與發現
springcloud可以方便的幫我們完成微服務架構,它擁有多個子專案,可以去官網簡單看下介紹。 其中component下的代表著現有的子專案,本次所記錄的eureka就是其中spring-cloud-netflix裡的一個模組。 eureka在我們微服務架構中實現的就是服務發現與
SpringCloud系列——Zuul 動態路由 SpringCloud系列——Ribbon 負載均衡 SpringCloud系列——Eureka 服務註冊與發現 SpringCloud系列——Ribbon 負載均衡
前言 Zuul 是在Spring Cloud Netflix平臺上提供動態路由,監控,彈性,安全等邊緣服務的框架,是Netflix基於jvm的路由器和伺服器端負載均衡器,相當於是裝置和 Netflix 流應用的 Web 網站後端所有請求的前門。本文基於上篇(SpringCloud系列——Ribbon
SpringCloud學習 - Eureka服務註冊與發現
Eureka服務註冊與發現 書籤: (1)Eureka服務啟動 (2)Eureka客戶端註冊服務 (3)Eureka客戶端發現服務 (4)Eureka服務叢集 (5)Eureka服務其他細節 Eureka服務啟動 新建專案eureka-serve
SpringCloud(3)---Eureka服務註冊與發現
sta 檢索 消費 能夠 曾經 pri local cloud ava Eureka服務註冊與發現 一、Eureka概述 1、Eureka特點 (1) Eureka是一個基於REST的服務,用於定位服務,以實現雲端中間層服務發現和故障轉移。 (2)
springcloud (一) Eureka服務註冊與發現
http://blog.didispace.com/springcloud1/ Spring Cloud簡介 Spring Cloud是一個基於Spring Boot實現的雲應用開發工具,它為基於JVM的雲應用開發中的配置管理、服務發現、斷路器、智慧路由、微代理、控制匯流排
SpringCloud-Eureka服務註冊與發現(二)
背景: 傳統的服務之間的呼叫是客戶端直接向服務端傳送請求,在單機服務時代,服務並不是很多時,服務之間直接呼叫並不存在很大問題,但隨著微服務架構的興起,服務之間的呼叫越來越頻繁,再像以前一樣服務間直接呼叫,耦合性太大,並不利用維護服務,所以Eureka 應運而生,它將所有服務納入到自己的服務中心
SpringCloud-Eureka服務註冊與發現之叢集配置(五)
1.構建多個Eureka服務端,具體步驟參考單機版的Eureka服務端構建步驟 2.修改每個Eureka服務端yml檔案,將對外暴露的註冊介面地址由一個變成多 個,自身的暴露地址除外
SpringCloud-Eureka服務註冊與發現之自我保護機制(四)
當我們進行SpringCloud微服務開發的時候,有可能會出現如下的一些紅色提示資訊。這個是Eureka的自我保護機制。 自我保護機制 :預設情況下,如果Eureka Server在一定時間內沒有接收到某個微服務例項的心跳,Eureka S
SpringCloud-Eureka服務註冊與發現之開發小技巧(三)
1.如何為服務起別名,即修改下面紅色部分 解決方案:在yml配置檔案中加入以下資訊 測試: 2.如何設定服務端的ip地址 解決方案: 在yml配置檔案中加入以下資訊
SpringCloud(三)Eureka服務註冊與發現《2》(actuator與Eureka自我保護)
1、actuator與註冊微服務資訊完善 1.1、主機名稱:服務名稱修改 1.當前問題:含有主機名或主機ip。 2.修改microservice-provider-dept-8001yml檔案: eureka: client:&nbs
springcloud-Eureka-服務註冊與發現核心元件
Eureka元件 Eureka是Netfilx開源的服務發現元件,本身是一個基於rest的服務,它包含client和server兩部分。 Spirng Cloud將它整合在子專案Spirng Cloud Netfilx中,從而實現服務的註冊和發現 client註冊到Server什麼? client註
SpringCloud-Eureka服務註冊與發現
什麼是Eureka 簡單來說Eureka是一個Netflix公司開源的一款服務發現元件.這個元件提供的服務發現可以為負載均衡等提供支援.Eureka包括了Eureka Server 和 Eureka Client. Eureka Server 提供 REST 服務, Eureka Clien
springCloud Finchley 微服務架構從入門到精通【二】Eureka服務註冊與發現
一、開發工具說明 為了防止程式碼執行錯誤,建議使用一致的版本: 開發工具:Eclipse : Version: Neon.3 Release (4.6.3) 開發spring cloud應用推薦使用 idea或者spring官方提供的STS工具,筆者由於
SpringCloud微服務元件—Eureka服務註冊與發現
前言 本系列文章將簡單的學習SpringCloud微服務相關知識,其實也是因為時間的原因,一直拖到現在,遂打算趁著假期,決定記錄下來。 從天氣預報微服務系統的單體架構——>分散式架構的演變過程中,一步一步,由淺及深的學習SpringCloud微
《springcloud — Finchley.RELEASE版》第一篇 服務註冊與發現(eureka)
構建高可用Eureka註冊中心 Eureka通過執行多個例項,使其更具有高可用性。 建立一個maven工程micro-erueka-server(micro-parent參見第一篇),pom.xml如下: <?xml version="1.0" encoding=
F版本SpringCloud 3—大白話Eureka服務註冊與發現
引用:服務註冊與發現,就像是租房子一樣 前言 今天洛陽下雨了,唉,沒有想到有裹上了羽絨服,不穿冷穿了熱的尷尬溫度。上學工作這麼多年都在外面,家裡竟然沒有一件春天的外套。 日常閒聊之後,開始今天的芝士環節。 昨天說過了什麼是SpringCloud,提到了SpringCloud實際上是很多技術的合集,今天
Spring Cloud 入門教程 - Eureka服務註冊與發現
spring spring cloud spring cloud eureka spring boot 簡介 在微服務中,服務註冊與發現對管理各個微服務子系統起著關鍵作用。隨著系統水平擴展的越來越多,系統拆分為微服務的數量也會相應增加,那麽管理和獲取這些微服務的URL就會變得十分棘手,如果我們
eureka服務註冊與發現:(一)搭建註冊中心
hostname dubbo efault 必須 技術分享 不存在 dea bsp 啟用 最近由於工作中需要將原來的spring項目都進行架構調整,要實現應用解耦,所以考慮到通過微服務的方式將應用解耦。所以面臨兩個選擇:dubbo 和spring cloud ,由於項目規模