spring eureka集群+spring boot 微服務,容器化部署示例

一、docker安裝
這里先采用在線安裝,利用docker hup下載基礎鏡像
1.環境版本要求

內核版本3.10及其以上
操作系統位數為64位
CPU架構為x86_64或amd64(目前也有別的支持)
內核開啟并支持cgroup和命名空間

2.命令檢查內核版本,本地環境為centos7

uname -r
1
3.更新yum

sudo yum update
1
4.添加Docker的yum源

sudo tee /etc/yum.repos.d/docker.repo <<-'EOF'
[dockerrepo]
name=Docker Repository
baseurl=https://yum.dockerproject.org/repo/main/centos/7/
enabled=1
gpgcheck=1
gpgkey=https://yum.dockerproject.org/gpg
EOF
?
5.安裝Docker軟件包

sudo yum install docker-engine
1
6.設置Docker服務開機自啟

sudo systemctl enable docker.service
1
7.啟動Docker服務

sudo systemctl start docker
1
8.驗證Docker是否安裝成功

docker -v
1
9.查看鏡像

[root@localhost ~]# docker images
REPOSITORY ? ? ? ? ?TAG ? ? ? ? ? ? ? ? IMAGE ID ? ? ? ? ? ?CREATED ??
1
2
10.刪除docker

?sudo yum remove docker \
? ? ? ? ? ? ? ? ? docker-client \
? ? ? ? ? ? ? ? ? docker-client-latest \
? ? ? ? ? ? ? ? ? docker-common \
? ? ? ? ? ? ? ? ? docker-latest \
? ? ? ? ? ? ? ? ? docker-latest-logrotate \
? ? ? ? ? ? ? ? ? docker-logrotate \
? ? ? ? ? ? ? ? ? docker-selinux \
? ? ? ? ? ? ? ? ? docker-engine-selinux \
? ? ? ? ? ? ? ? ? docker-engine
?
二、項目配置
springcloud版本:

<spring-cloud.version>Finchley.RELEASE</spring-cloud.version>
spring-boot-starter-parent:2.0.3
?
1.eureka
1)關鍵pom

?? ??? ?<dependency>
? ? ? ? ? ? <groupId>org.springframework.cloud</groupId>
? ? ? ? ? ? <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
? ? ? ? </dependency>
?
2)啟動類

@SpringBootApplication
@EnableEurekaServer
public class CommonserviceEurekaApplication extends SpringBootServletInitializer {

? ? public static void main(String[] args) {

? ? ? ? SpringApplication.run(CommonserviceEurekaApplication.class, args);
? ? }

? ? @Override
? ? protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
? ? ? ? return builder.sources(CommonserviceEurekaApplication.class);
? ? }
}
?
3)配置文件關鍵參數

eureka.client.serviceUrl.defaultZone=http://${eureka.instance.hostname}:${server.port}/eureka/
1
2.config
1)關鍵pom

?? ? <!--注冊發現-->
?? ? <dependency>
? ? ? ? ? ? <groupId>org.springframework.cloud</groupId>
? ? ? ? ? ? <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
? ? ? ? </dependency>
? ? ? ? ? <!--配置中心-->
? ? ? ? ? <dependency>
? ? ? ? ? ? <groupId>org.springframework.cloud</groupId>
? ? ? ? ? ? <artifactId>spring-cloud-config-server</artifactId>
? ? ? ? </dependency>
?
2)啟動類

@SpringBootApplication
@EnableConfigServer
@EnableDiscoveryClient
@EnableEurekaClient
public class ConfigServerApplication {

?? ?public static void main(String[] args) {
?? ??? ?SpringApplication.run(ConfigServerApplication.class, args);
?? ?}
}
?
3)配置文件關鍵參數

#配置注冊服務中心
eureka.client.serviceUrl.defaultZone= http://${eureka-container-name}:${config-service-port}/eureka/
#設置為本地啟動的方式,而不是通過git
spring.profiles.active=native
#配置本地配置路徑
spring.cloud.config.server.native.search-locations=${local-config-path}

注意:上面的${eureka-container-name}為eureka容器的別名或者id

三、生成鏡像
1.項目eureka\config分別打包上傳服務器
2.Dockerfile

FROM frolvlad/alpine-oraclejdk8:slim
VOLUME /tmp
ADD ROOT.jar app.jar
#RUN bash -c 'touch /app.jar'
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
EXPOSE ${PORT}


注意上面的${PORT} 應替換成eureka\config設置的不同容器聲明端口
3.build 生成鏡像

docker build -t orginaztion/service-image-name:tag
1
其中-t 標識鏡像tag ,格式為:所屬庫/服務鏡像名:版本

四、運行鏡像
其中localhost???port替換為宿主機開放端口,{localhost-*-port}替換為宿主機開放端口,localhost???port替換為宿主機開放端口,{container-*-port}替換為容器服務端口
1.啟動eureka

docker run --name eureka-service -d -it -p ${localhost-eureka-port}:${container-eureka-port} orginaztion/service-image-name:tag
1
注意:
并且name對應config中的注冊機參數的${eureka-container-name}
2.啟動config

docker run --name config-server ?--link eureka-server:eureka-server-name-alias -d -it -p ${localhost-config-port}:${container-config-port} -v ${local-config-path}:${contain-config-path} orginaztion/service-image-name:tag
1
注意:config依賴eureka,用–link鏈接 ,-v指定本地配置路徑鏈接容器相應路徑
3.訪問config配置信息

http://${localhost}:${localhost-config-port}/${prefix-config-name}/test|dev|prod
?

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/386701.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/386701.shtml
英文地址,請注明出處:http://en.pswp.cn/news/386701.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

程序員如何技術劃水,手把手教你寫Android項目文檔,絕對干貨

安卓開發大軍浩浩蕩蕩&#xff0c;經過近十年的發展&#xff0c;Android技術優化日異月新&#xff0c;如今Android 11.0 已經發布&#xff0c;Android系統性能也已經非常流暢&#xff0c;可以在體驗上完全媲美iOS。 但是&#xff0c;到了各大廠商手里&#xff0c;改源碼、自定…

rabbitmq文檔

https://blog.csdn.net/hellozpc/article/details/81436980轉載于:https://www.cnblogs.com/nankeyimengningchenlun/p/10968594.html

spring cloud各個微服務打包到docker容器內

日常你所啟動的微服務比如這樣的 java -jar eureka-0.0.1-SNAPSHOT.jar --server.port41578 --spring.profiles.activelocal 然后想把它給整Docker里玩玩 首先要在打包好的Spring Boot同級目錄下&#xff0c;建立一個Dockerfile 然后在這個文件下寫上以下內容,大致的意思上從…

程序員如何自我學習和成長?深度好文

前言 工欲善其事必先利其器!在現代IT中&#xff0c;每個Android程序員都需要最好的工具來提高他們的技能和效率。在Android應用程序開發這個殘酷的競爭行業中&#xff0c;只有優秀的程序員才能生存下去。你需要向客戶展示你擁有的最佳技術和能力。 不僅僅是展示你的設備以吸引…

.net core 雜記:用Autofac替換內置容器

官方建議使用內置容器&#xff0c;但有些功能并不支持&#xff0c;如下&#xff1a;屬性注入基于名稱的注入子容器自定義生存期管理Func<T> 支持所以可以使用其他第三方IOC容器&#xff0c;如Autofac&#xff0c;下面為學習使用記錄 一、首先準備了一個接口和其實現類 pu…

linux shell 獲取本機ip 寫入文件

本機IP獲取 /sbin/ifconfig -a|grep inet|grep -v 127.0.0.1|grep -v inet6|awk {print $2}|tr -d "addr:" k8s 獲取容器所造node節點的ip container_netifconfig eth0 |grep "inet" |grep -v "inet6"| awk {print $2}|cut -d . -f 3node_ipet…

程序員必看!Android面試10大知識點總結寶典助你通關!年薪50W

起由 搞了7年多Android了&#xff0c;前陣子面試了一家不大不小的公司。公司不大&#xff0c;面試官架子還不小&#xff0c;一副目中無人高高在上的樣子&#xff0c;搞得好像我一萬個想進他們公司、我進不了他們公司我全家都得喝西北風一樣。搞得我是真的郁悶&#xff1a;現在…

Odoo免費開源企業信息化平臺助力企業成功

企業信息化變革之路 信息孤島的真實由來 打開百度App&#xff0c;看更多圖片左邊為當下企業現狀&#xff0c;右邊為Odoo的整體 企業信息孤島的嚴重性&#xff0c;來自于企業的自身高速發展&#xff0c;企業以銷售為生命主題圍繞著客戶會搭建一系列相關的信息化系統&#xff0c;…

group count聚集函數無法直接統計出分組后的總記錄數

數據庫Group By類型語句統計記錄條數 最近做一個分頁查詢查詢的數據采用了group by來完成數據的查詢處理&#xff0c;需要統計分組后的數據總數發現count(*) 聚集函數無法直接統計出分組后的總記錄數。 查詢SQL&#xff1a; 復制代碼 SELECT count(*) FROM employeeexam, ex…

系統盤點Android開發者必須掌握的知識點,含小米、騰訊、阿里

什么是Flutter? Flutter是Google推出并開源的移動應用程序&#xff08;App&#xff09;開發框架&#xff0c;主打跨平臺、高保真、高性能。其采用Dart&#xff08;官網、中文網&#xff09;語言作為開發語言&#xff0c;開發者可以通過Dart語言開發Flutter App&#xff0c;一…

java 堆和棧的區別

1&#xff0c;在棧中存放的是基本類型變量和對象的引用變量&#xff0c;當一段代碼定義一個變量時&#xff0c;java 就在棧內為這個變量分配內存空間&#xff0c;當超過變量的作用域時&#xff0c;java會自動回收分配的內存。局部變量在棧內存 2&#xff0c;堆內存放的是new創建…

Web For Pentester -- File Upload

文件上傳漏洞是指用戶上傳了一個可執行的腳本文件&#xff0c;并通過此腳本文件獲得了執行服務器端命令的能力。 文件上傳導致的常見安全問題&#xff1a; 上傳文件是Web腳本語言&#xff0c;服務器的Web容器解釋并執行了用戶上傳的腳本&#xff0c;導致代碼執行&#xff1b; 上…

組件化與插件化的差別在哪里?附面試題答案

前言 本人水平有限&#xff0c;此文針對于自認為技術實力對標阿里P7&#xff0c;百度T5或者以下的讀者&#xff0c;如果是大佬不小心點進來了&#xff0c;可以自行點x略過。文內并不會出現每一家公司的面試過程細節&#xff0c;主要目的在于幫助大家怎么在像我一樣菜的情況下在…

json轉成類對象轉成xml全過程

類對象 XStreamAlias("ROOT") public class ProjectBase implements BaseConverterBean {private ProjectInfo PROJECTINFO;public ProjectInfo getPROJECTINFO() {return PROJECTINFO;}public void setPROJECTINFO(ProjectInfo pROJECTINFO) {PROJECTINFO pROJECT…

細數Android開發者的艱辛歷程,全網最新

前言 這篇文章主要是分享今年面試心得&#xff0c;現已就職于某大廠有三個月了&#xff0c;近期有很多公司均已啟動秋招&#xff0c;也祝大家面試順利&#xff0c;獲得理想的offer&#xff01; 之前找工作的那段時間感想頗多&#xff0c;總結一點面試經驗和人生思考分享給大家…

Mac安裝nginx配置過程

mac電腦系統重裝了&#xff0c;記錄一下安裝nginx的過程&#xff1a; 1、打開終端 2、安裝Command Line tools xcode-select --install 3、安裝brew命令 1 ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" 4、安裝…

2.用Python套用Excel模板,一鍵完成原亮樣式

from xlutils.copy import copy import xlrd import xlwttem_excelxlrd.open_workbook(日統計.xls,formatting_infoTrue)tem_sheettem_excel.sheet_by_index(0)new_excelcopy(tem_excel) new_sheetnew_excel.get_sheet(0) new_sheet.write(2,1,12) new_sheet.write(3,1,18) new…

面試中Handler這些必備知識點你都知道嗎?面試真題解析

前言 前幾天去參加了一場面試。面試的題目大多很基礎&#xff0c;有一道關于埋點的問題&#xff0c;面試官問我如果不用第三方SDK進行埋點&#xff0c;自己埋點的話&#xff0c;如何減少埋點對業務代碼的入侵。 當時沒想太多&#xff0c;就說創建一個 BaseView 類&#xff0c…

kubernetes對象之deployment

系列目錄 簡述 Deployment為Pod和ReplicaSet提供了一個聲明式定義(declarative)方法&#xff0c;用來替代以前的ReplicationController來方便的管理應用。典型的應用場景包括&#xff1a; 定義Deployment來創建Pod和ReplicaSet滾動升級和回滾應用擴容和縮容暫停和繼續Deploymen…