国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Docker 部署 SpringBoot 的兩種方法,后一種一鍵部署超好用!

這篇具有很好參考價(jià)值的文章主要介紹了Docker 部署 SpringBoot 的兩種方法,后一種一鍵部署超好用!。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

  • 1.手工方式

    • 1.1.準(zhǔn)備Springboot jar項(xiàng)目

    • 1.2.編寫(xiě)Dockerfile

    • 1.3.構(gòu)建容器

    • 1.4.運(yùn)行容器

    • 1.5.查看運(yùn)行日志

    • 1.6.訪(fǎng)問(wèn)測(cè)試

  • 2.Docker遠(yuǎn)程連接并且使用idea一鍵部署

    • 2.1.配置docker遠(yuǎn)程連接端口

    • 2.2.使用idea連接到docker

    • 2.3.docker-maven-plugin 介紹

docker 啟動(dòng)springboot,架構(gòu),docker,spring boot,java


1.手工方式

1.1.準(zhǔn)備Springboot jar項(xiàng)目

docker 啟動(dòng)springboot,架構(gòu),docker,spring boot,java

將項(xiàng)目打包成jar

1.2.編寫(xiě)Dockerfile

FROM?java:8
VOLUME?/tmp
ADD?elk-web-1.0-SNAPSHOT.jar?elk.jar
EXPOSE?8080
ENTRYPOINT?["java","-Djava.security.egd=file:/dev/./urandom","-jar","/elk.jar"]

FROM:表示基礎(chǔ)鏡像,即運(yùn)行環(huán)境 VOLUME /tmp創(chuàng)建/tmp目錄并持久化到Docker數(shù)據(jù)文件夾,因?yàn)镾pring Boot使用的內(nèi)嵌Tomcat容器默認(rèn)使用/tmp作為工作目錄 ADD:拷貝文件并且重命名(ADD elk-web-1.0-SNAPSHOT.jar elk.jar 將應(yīng)用jar包復(fù)制到/elk.jar) EXPOSE:并不是真正的發(fā)布端口,這個(gè)只是容器部署人員與建立image的人員之間的交流,即建立image的人員告訴容器布署人員容器應(yīng)該映射哪個(gè)端口給外界 ENTRYPOINT:容器啟動(dòng)時(shí)運(yùn)行的命令,相當(dāng)于我們?cè)诿钚兄休斎雑ava -jar xxxx.jar,為了縮短 Tomcat 的啟動(dòng)時(shí)間,添加java.security.egd的系統(tǒng)屬性指向/dev/urandom作為 ENTRYPOINT

1.3.構(gòu)建容器

[root@VM_0_15_centos?elk]#?docker?build?-t?elk?.
Sending?build?context?to?Docker?daemon?14.43?MB
Step?1/5?:?FROM?java:8
Trying?to?pull?repository?docker.io/library/java?...
8:?Pulling?from?docker.io/library/java
5040bd298390:?Pull?complete
fce5728aad85:?Pull?complete
76610ec20bf5:?Pull?complete
60170fec2151:?Pull?complete
e98f73de8f0d:?Pull?complete
11f7af24ed9c:?Pull?complete
49e2d6393f32:?Pull?complete
bb9cdec9c7f3:?Pull?complete
Digest:?sha256:c1ff613e8ba25833d2e1940da0940c3824f03f802c449f3d1815a66b7f8c0e9d
Status:?Downloaded?newer?image?for?docker.io/java:8
?--->?d23bdf5b1b1b
Step?2/5?:?VOLUME?/tmp
?--->?Running?in?0aec2dc2f98c
?--->?a52e844f25d4
Removing?intermediate?container?0aec2dc2f98c
Step?3/5?:?ADD?elk-web-1.0-SNAPSHOT.jar?elk.jar
?--->?3ba2f4fdddda
Removing?intermediate?container?860a0f748a23
Step?4/5?:?EXPOSE?8080
?--->?Running?in?1d3331cc2be6
?--->?e9ac33d26ce0
Removing?intermediate?container?1d3331cc2be6
Step?5/5?:?ENTRYPOINT?java?-Djava.security.egd=file:/dev/./urandom?-jar?/elk.jar
?--->?Running?in?d354f8ee2af5
?--->?8937e1ade6c7
Removing?intermediate?container?d354f8ee2af5
Successfully?built?8937e1ade6c7

1.4.運(yùn)行容器

docker?run?-di?--name?容器名稱(chēng)?-p?8080:8080?鏡像名稱(chēng)

其中-d表示后臺(tái)運(yùn)行容器,這也就自然地解決的Spring Boot不支持后臺(tái)運(yùn)行應(yīng)用程序的問(wèn)題。-p 8080:8080表示將容器內(nèi)部的8080端口映射到宿主機(jī)器的8080端口,這樣就可以通過(guò)宿主機(jī)器直接訪(fǎng)問(wèn)應(yīng) 用。--name 給容器取一個(gè)容易記住的名字方便日后管理。

在公眾號(hào)頂級(jí)架構(gòu)師后臺(tái)回復(fù)“架構(gòu)整潔”,獲取一份驚喜禮包。

[root@VM_0_15_centos?elk]#?docker?run?-di?--name?myspringboot?-p?8080:8080?8937e1ade6c7
04d6b2c347950a10c95a039c94a3e51d717e516dd8c3c742e3197687dfcf5523
[root@VM_0_15_centos?elk]#?docker?ps?-a
CONTAINER?ID????????IMAGE???????????????COMMAND??????????????????CREATED?????????????STATUS??????????????PORTS????????????????????NAMES
04d6b2c34795????????8937e1ade6c7????????"java?-Djava.secur..."???8?seconds?ago???????Up?7?seconds????????0.0.0.0:8080->8080/tcp???myspringboot
[root@VM_0_15_centos?elk]#

[1.5.查看運(yùn)行日志

docker logs -f --tail=100 容器名稱(chēng)

[root@VM_0_15_centos?elk]#?docker?logs?-f?--tail=100?04d6b2c34795
??.???____??????????_????????????__?_?_
?/\\?/?___'_?__?_?_(_)_?__??__?_?\?\?\?\
(?(?)\___?|?'_?|?'_|?|?'_?\/?_`?|?\?\?\?\
?\\/??___)|?|_)|?|?|?|?|?||?(_|?|??)?)?)?)
??'??|____|?.__|_|?|_|_|?|_\__,?|?/?/?/?/
?=========|_|==============|___/=/_/_/_/
?::?Spring?Boot?::????????(v1.5.4.RELEASE)
2019-12-29?07:42:58.982??INFO?1?---?[???????????main]?c.b.ElkExampleSpringBootApplication??????:?Starting?ElkExampleSpringBootApplication?v1.0-SNAPSHOT?on?04d6b2c34795?with?PID?1?(/elk.jar?started?by?root?in?/)
2019-12-29?07:42:58.999??INFO?1?---?[???????????main]?c.b.ElkExampleSpringBootApplication??????:?No?active?profile?set,?falling?back?to?default?profiles:?default
2019-12-29?07:42:59.243??INFO?1?---?[???????????main]?ationConfigEmbeddedWebApplicationContext?:?Refreshing?org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@5a2e4553:?startup?date?[Sun?Dec?29?07:42:59?UTC?2019];?root?of?context?hierarchy
2019-12-29?07:43:03.652??INFO?1?---?[???????????main]?s.b.c.e.t.TomcatEmbeddedServletContainer?:?Tomcat?initialized?with?port(s):?8080?(http)
2019-12-29?07:43:03.699??INFO?1?---?[???????????main]?o.apache.catalina.core.StandardService???:?Starting?service?[Tomcat]
2019-12-29?07:43:03.714??INFO?1?---?[???????????main]?org.apache.catalina.core.StandardEngine??:?Starting?Servlet?Engine:?Apache?Tomcat/8.5.15
2019-12-29?07:43:04.012??INFO?1?---?[ost-startStop-1]?o.a.c.c.C.[Tomcat].[localhost].[/]???????:?Initializing?Spring?embedded?WebApplicationContext
2019-12-29?07:43:04.012??INFO?1?---?[ost-startStop-1]?o.s.web.context.ContextLoader????????????:?Root?WebApplicationContext:?initialization?completed?in?4772?ms
2019-12-29?07:43:04.449??INFO?1?---?[ost-startStop-1]?o.s.b.w.servlet.ServletRegistrationBean??:?Mapping?servlet:?'dispatcherServlet'?to?[/]
2019-12-29?07:43:04.470??INFO?1?---?[ost-startStop-1]?o.s.b.w.servlet.FilterRegistrationBean???:?Mapping?filter:?'characterEncodingFilter'?to:?[/*]
2019-12-29?07:43:04.470??INFO?1?---?[ost-startStop-1]?o.s.b.w.servlet.FilterRegistrationBean???:?Mapping?filter:?'hiddenHttpMethodFilter'?to:?[/*]
2019-12-29?07:43:04.471??INFO?1?---?[ost-startStop-1]?o.s.b.w.servlet.FilterRegistrationBean???:?Mapping?filter:?'httpPutFormContentFilter'?to:?[/*]
2019-12-29?07:43:04.471??INFO?1?---?[ost-startStop-1]?o.s.b.w.servlet.FilterRegistrationBean???:?Mapping?filter:?'requestContextFilter'?to:?[/*]
2019-12-29?07:43:05.534??INFO?1?---?[???????????main]?s.w.s.m.m.a.RequestMappingHandlerAdapter?:?Looking?for?@ControllerAdvice:?org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@5a2e4553:?startup?date?[Sun?Dec?29?07:42:59?UTC?2019];?root?of?context?hierarchy
2019-12-29?07:43:05.765??INFO?1?---?[???????????main]?s.w.s.m.m.a.RequestMappingHandlerMapping?:?Mapped?"{[/exception]}"?onto?public?java.lang.String?com.bruceliu.controller.ELKController.exception()
2019-12-29?07:43:05.766??INFO?1?---?[???????????main]?s.w.s.m.m.a.RequestMappingHandlerMapping?:?Mapped?"{[/elkdemo]}"?onto?public?java.lang.String?com.bruceliu.controller.ELKController.helloWorld()
2019-12-29?07:43:05.772??INFO?1?---?[???????????main]?s.w.s.m.m.a.RequestMappingHandlerMapping?:?Mapped?"{[/error],produces=[text/html]}"?onto?public?org.springframework.web.servlet.ModelAndView?org.springframework.boot.autoconfigure.web.BasicErrorController.errorHtml(javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse)
2019-12-29?07:43:05.780??INFO?1?---?[???????????main]?s.w.s.m.m.a.RequestMappingHandlerMapping?:?Mapped?"{[/error]}"?onto?public?org.springframework.http.ResponseEntity<java.util.Map<java.lang.String,?java.lang.Object>>?org.springframework.boot.autoconfigure.web.BasicErrorController.error(javax.servlet.http.HttpServletRequest)
2019-12-29?07:43:05.869??INFO?1?---?[???????????main]?o.s.w.s.handler.SimpleUrlHandlerMapping??:?Mapped?URL?path?[/webjars/**]?onto?handler?of?type?[class?org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
2019-12-29?07:43:05.869??INFO?1?---?[???????????main]?o.s.w.s.handler.SimpleUrlHandlerMapping??:?Mapped?URL?path?[/**]?onto?handler?of?type?[class?org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
2019-12-29?07:43:05.984??INFO?1?---?[???????????main]?o.s.w.s.handler.SimpleUrlHandlerMapping??:?Mapped?URL?path?[/**/favicon.ico]?onto?handler?of?type?[class?org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
2019-12-29?07:43:06.387??INFO?1?---?[???????????main]?o.s.j.e.a.AnnotationMBeanExporter????????:?Registering?beans?for?JMX?exposure?on?startup
2019-12-29?07:43:06.537??INFO?1?---?[???????????main]?s.b.c.e.t.TomcatEmbeddedServletContainer?:?Tomcat?started?on?port(s):?8080?(http)
2019-12-29?07:43:06.562??INFO?1?---?[???????????main]?c.b.ElkExampleSpringBootApplication??????:?Started?ElkExampleSpringBootApplication?in?8.771?seconds?(JVM?running?for?9.832)

1.6.訪(fǎng)問(wèn)測(cè)試

docker 啟動(dòng)springboot,架構(gòu),docker,spring boot,java

2.Docker遠(yuǎn)程連接并且使用idea一鍵部署

2.1.配置docker遠(yuǎn)程連接端口

首先編輯我們服務(wù)器上的docker文件

vim?/usr/lib/systemd/system/docker.service

修改以ExecStart開(kāi)頭的行(centos 7):添加

-H?tcp://0.0.0.0:2375?-H?unix:///var/run/docker.sock?\

docker 啟動(dòng)springboot,架構(gòu),docker,spring boot,java

修改后保存文件,然后重啟docker

systemctl?daemon-reload
service?docker?restart

重啟之后測(cè)試遠(yuǎn)程連接是否正常,這里的2375是之前配置的端口

curl?http://localhost:2375/version

看到返回信息基本上就沒(méi)有問(wèn)題了

[root@VM_0_15_centos?elk]#?curl?http://localhost:2375/version
{"Version":"1.13.1","ApiVersion":"1.26","MinAPIVersion":"1.12","GitCommit":"7f2769b/1.13.1","GoVersion":"go1.10.3","Os":"linux","Arch":"amd64","KernelVersion":"3.10.0-957.21.3.el7.x86_64","BuildTime":"2019-09-15T14:06:47.565778468+00:00","PkgVersion":"docker-1.13.1-103.git7f2769b.el7.centos.x86_64"}

然后開(kāi)啟端口,或者關(guān)閉防火墻,二者選其一即可

firewall-cmd?--zone=public?--add-port=2375/tcp?--permanent
chkconfig?iptables?off

然后打開(kāi)瀏覽器測(cè)試將之前的localhost修改為你的ip

docker 啟動(dòng)springboot,架構(gòu),docker,spring boot,java

2.2.使用idea連接到docker

首先下載docker插件,idea 自帶了docker插件。如果沒(méi)有插件可以選擇安裝docker插件

docker 啟動(dòng)springboot,架構(gòu),docker,spring boot,java

然后配置docker地址,在你的File | Settings | Build, Execution, Deployment | Docker

docker 啟動(dòng)springboot,架構(gòu),docker,spring boot,java

配置完成鏈接之后,出現(xiàn)了框中的內(nèi)容即可.

docker 啟動(dòng)springboot,架構(gòu),docker,spring boot,java

鏈接成功之后會(huì)列出容器和鏡像!

配置阿里云鏡像加速器:

docker 啟動(dòng)springboot,架構(gòu),docker,spring boot,java

2.3.docker-maven-plugin 介紹

在我們持續(xù)集成過(guò)程中,項(xiàng)目工程一般使用 Maven 編譯打包,然后生成鏡像,通過(guò)鏡像上線(xiàn),能夠大大提供上線(xiàn)效率,同時(shí)能夠快速動(dòng)態(tài)擴(kuò)容,快速回滾,著實(shí)很方便。docker-maven-plugin 插件就是為了幫助我們?cè)贛aven工程中,通過(guò)簡(jiǎn)單的配置,自動(dòng)生成鏡像并推送到倉(cāng)庫(kù)中。

pom.xml:

<build>

????????<finalName>${project.artifactId}</finalName>

????????<plugins>

????????????<plugin>
????????????????<groupId>org.springframework.boot</groupId>
????????????????<artifactId>spring-boot-maven-plugin</artifactId>
????????????????<configuration>
????????????????????<fork>true</fork>
????????????????</configuration>
????????????</plugin>
????????????<!--?跳過(guò)單元測(cè)試?-->
????????????<plugin>
????????????????<groupId>org.apache.maven.plugins</groupId>
????????????????<artifactId>maven-surefire-plugin</artifactId>
????????????????<configuration>
????????????????????<skipTests>true</skipTests>
????????????????</configuration>
????????????</plugin>

????????????<!--使用docker-maven-plugin插件-->
????????????<plugin>
????????????????<groupId>com.spotify</groupId>
????????????????<artifactId>docker-maven-plugin</artifactId>
????????????????<version>1.0.0</version>
????????????????<!--將插件綁定在某個(gè)phase執(zhí)行-->
????????????????<executions>
????????????????????<execution>
????????????????????????<id>build-image</id>
????????????????????????<!--用戶(hù)只需執(zhí)行mvn?package?,就會(huì)自動(dòng)執(zhí)行mvn?docker:build-->
????????????????????????<phase>package</phase>
????????????????????????<goals>
????????????????????????????<goal>build</goal>
????????????????????????</goals>
????????????????????</execution>
????????????????</executions>
????????????????<configuration>
????????????????????<!--指定生成的鏡像名-->
????????????????????<imageName>bruceliu/${project.artifactId}</imageName>
????????????????????<!--指定標(biāo)簽-->
????????????????????<imageTags>
????????????????????????<imageTag>latest</imageTag>
????????????????????</imageTags>
????????????????????<!--指定基礎(chǔ)鏡像jdk1.8-->
????????????????????<baseImage>java</baseImage>
????????????????????<!--鏡像制作人本人信息-->
????????????????????<maintainer>bruceliu@email.com</maintainer>
????????????????????<!--切換到ROOT目錄-->
????????????????????<workdir>/ROOT</workdir>
????????????????????<cmd>["java",?"-version"]</cmd>
????????????????????<entryPoint>["java",?"-jar",?"/${project.build.finalName}.jar"]</entryPoint>
????????????????????<!--指定遠(yuǎn)程?docker?api地址-->
????????????????????<dockerHost>http://122.51.50.249:2375</dockerHost>
????????????????????<!--?這里是復(fù)制?jar?包到?docker?容器指定目錄配置?-->
????????????????????<resources>
????????????????????????<resource>
????????????????????????????<targetPath>/</targetPath>
????????????????????????????<!--jar?包所在的路徑??此處配置的?即對(duì)應(yīng)?target?目錄-->
????????????????????????????<directory>${project.build.directory}</directory>
????????????????????????????<!--用于指定需要復(fù)制的文件?需要包含的?jar包?,這里對(duì)應(yīng)的是?Dockerfile中添加的文件名?-->
????????????????????????????<include>${project.build.finalName}.jar</include>
????????????????????????</resource>
????????????????????</resources>
????????????????</configuration>
????????????</plugin>

????????</plugins>
????</build>

執(zhí)行Maven打包命令:

在公眾號(hào)Linux中文社區(qū)后臺(tái)回復(fù)“命令行”,獲取一份驚喜禮包。

docker 啟動(dòng)springboot,架構(gòu),docker,spring boot,java文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-717215.html

G:\softDevelopment\JDK8\bin\java?-Dmaven.multiModuleProjectDirectory=E:\workspace2017\elk-web?-Dmaven.home=E:\Maven20190910\apache-maven-3.6.1?-Dclassworlds.conf=E:\Maven20190910\apache-maven-3.6.1\bin\m2.conf?"-javaagent:G:\idea2017\IntelliJ?IDEA?2017.3.1\lib\idea_rt.jar=49260:G:\idea2017\IntelliJ?IDEA?2017.3.1\bin"?-Dfile.encoding=UTF-8?-classpath?E:\Maven20190910\apache-maven-3.6.1\boot\plexus-classworlds-2.6.0.jar?org.codehaus.classworlds.Launcher?-Didea.version=2017.3.7?-s?E:\Maven20190910\apache-maven-3.6.1\conf\settings.xml?-Dmaven.repo.local=E:\Maven20190910\repository?package
[INFO]?Scanning?for?projects...
[WARNING]
[WARNING]?Some?problems?were?encountered?while?building?the?effective?model?for?com.bruceliu.elk.demo:elk-web:jar:1.0-SNAPSHOT
[WARNING]?'build.plugins.plugin.(groupId:artifactId)'?must?be?unique?but?found?duplicate?declaration?of?plugin?org.springframework.boot:spring-boot-maven-plugin?@?line?36,?column?21
[WARNING]
[WARNING]?It?is?highly?recommended?to?fix?these?problems?because?they?threaten?the?stability?of?your?build.
[WARNING]
[WARNING]?For?this?reason,?future?Maven?versions?might?no?longer?support?building?such?malformed?projects.
[WARNING]
[INFO]
[INFO]?-------------------<?com.bruceliu.elk.demo:elk-web?>--------------------
[INFO]?Building?elk-web?1.0-SNAPSHOT
[INFO]?--------------------------------[?jar?]---------------------------------
[INFO]
[INFO]?---?maven-resources-plugin:2.6:resources?(default-resources)?@?elk-web?---
[INFO]?Using?'UTF-8'?encoding?to?copy?filtered?resources.
[INFO]?Copying?1?resource
[INFO]?Copying?0?resource
[INFO]
[INFO]?---?maven-compiler-plugin:3.1:compile?(default-compile)?@?elk-web?---
[INFO]?Changes?detected?-?recompiling?the?module!
[INFO]?Compiling?2?source?files?to?E:\workspace2017\elk-web\target\classes
[INFO]
[INFO]?---?maven-resources-plugin:2.6:testResources?(default-testResources)?@?elk-web?---
[INFO]?Using?'UTF-8'?encoding?to?copy?filtered?resources.
[INFO]?skip?non?existing?resourceDirectory?E:\workspace2017\elk-web\src\test\resources
[INFO]
[INFO]?---?maven-compiler-plugin:3.1:testCompile?(default-testCompile)?@?elk-web?---
[INFO]?Nothing?to?compile?-?all?classes?are?up?to?date
[INFO]
[INFO]?---?maven-surefire-plugin:2.18.1:test?(default-test)?@?elk-web?---
[INFO]?Tests?are?skipped.
[INFO]
[INFO]?---?maven-jar-plugin:2.6:jar?(default-jar)?@?elk-web?---
[INFO]?Building?jar:?E:\workspace2017\elk-web\target\elk-web.jar
[INFO]
[INFO]?---?spring-boot-maven-plugin:1.5.4.RELEASE:repackage?(default)?@?elk-web?---
[INFO]
[INFO]?---?docker-maven-plugin:1.0.0:build?(build-image)?@?elk-web?---
[INFO]?Using?authentication?suppliers:?[ConfigFileRegistryAuthSupplier]
[INFO]?Copying?E:\workspace2017\elk-web\target\elk-web.jar?->?E:\workspace2017\elk-web\target\docker\elk-web.jar
[INFO]?Building?image?bruceliu/elk-web
Step?1/6?:?FROM?java
?--->?d23bdf5b1b1b
Step?2/6?:?MAINTAINER?bruceliu@email.com
?--->?Running?in?787e4786fbd4
?--->?4d4519f52fda
Removing?intermediate?container?787e4786fbd4
Step?3/6?:?WORKDIR?/ROOT
?--->?f40dcbc9a9eb
Removing?intermediate?container?7fa6bbc9d1df
Step?4/6?:?ADD?/elk-web.jar?//
?--->?c7f1107ae3d4
Removing?intermediate?container?f370558f1a38
Step?5/6?:?ENTRYPOINT?java?-jar?/elk-web.jar
?--->?Running?in?e4480ced0829
?--->?b634ca5fa5ad
Removing?intermediate?container?e4480ced0829
Step?6/6?:?CMD?java?-version
?--->?Running?in?cc6a064ef921
?--->?cf9a5d50326b
Removing?intermediate?container?cc6a064ef921
Successfully?built?cf9a5d50326b
[INFO]?Built?bruceliu/elk-web
[INFO]?Tagging?bruceliu/elk-web?with?latest
[INFO]?------------------------------------------------------------------------
[INFO]?BUILD?SUCCESS
[INFO]?------------------------------------------------------------------------
[INFO]?Total?time:??10.329?s
[INFO]?Finished?at:?2019-12-29T22:44:06+08:00
[INFO]?------------------------------------------------------------------------

Process?finished?with?exit?code?0

到了這里,關(guān)于Docker 部署 SpringBoot 的兩種方法,后一種一鍵部署超好用!的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶(hù)投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【SpringBoot系列】Springboot使用kafka的兩種方式

    ???♂? 個(gè)人主頁(yè):@香菜的個(gè)人主頁(yè),加 ischongxin ,備注csdn ???作者簡(jiǎn)介:csdn 認(rèn)證博客專(zhuān)家,游戲開(kāi)發(fā)領(lǐng)域優(yōu)質(zhì)創(chuàng)作者,華為云享專(zhuān)家,2021年度華為云年度十佳博主 ?? 希望大家多多支持,我們一起進(jìn)步!?? 如果文章對(duì)你有幫助的話(huà), 歡迎評(píng)論 ??點(diǎn)贊???? 收藏 ??

    2024年02月05日
    瀏覽(28)
  • Springboot使用kafka的兩種方式

    在Spring Boot中使用Apache Kafka主要有兩種方式:使用Spring Kafka項(xiàng)目和使用Spring Boot的spring-boot-starter-kafka。以下是這兩種方式的簡(jiǎn)要概述: 使用Spring Kafka項(xiàng)目 Spring Kafka是Spring官方提供的一個(gè)用于Apache Kafka的集成庫(kù)。雖然它不是一個(gè)Spring Boot專(zhuān)用的庫(kù),但它可以與Spring Boot很好地集

    2024年02月20日
    瀏覽(28)
  • SpringBoot集成WebSocket的兩種方式

    SpringBoot集成WebSocket的兩種方式

    本站在2014年4月時(shí)曾全面的學(xué)習(xí)HTML5的技術(shù),特寫(xiě)過(guò)HTML5的WebSocket示例,當(dāng)時(shí)使用的Servlet3.0規(guī)范中的API,需要Tomcat7的支持(貌似在Tomcat6的后期維護(hù)版本也增加了WebSocket的支持),早在當(dāng)初該示例還是本站的一個(gè)特色功能,好多來(lái)找我要源碼的呢。時(shí)隔多年再來(lái)使用SpringBoot架構(gòu)

    2024年02月15日
    瀏覽(20)
  • Docker引擎安裝的兩種方式

    Docker引擎安裝的兩種方式

    1. 規(guī)劃節(jié)點(diǎn) Docker部署節(jié)點(diǎn)規(guī)劃如下表所示: IP 主機(jī)名 節(jié)點(diǎn) 192.168.100.10 master Docker節(jié)點(diǎn) 2. 基礎(chǔ)準(zhǔn)備 所有節(jié)點(diǎn)安裝CentOS7.9_2009系統(tǒng),并配置主機(jī)名和網(wǎng)卡。 配置主機(jī)名和網(wǎng)卡 查看linux版本,是否符合centos 7 查看網(wǎng)絡(luò)是否通暢 安裝gcc,gcc-c++編譯器 ? 安裝device-mapper-persistent-data和

    2024年03月26日
    瀏覽(16)
  • SpringBoot項(xiàng)目模塊間通信的兩種方式

    SpringBoot項(xiàng)目模塊間通信的兩種方式

    說(shuō)明:在微服務(wù)架構(gòu)開(kāi)發(fā)中,一個(gè)請(qǐng)求是通過(guò)模塊之間的互相通信來(lái)完成的,如下面這個(gè)場(chǎng)景: 創(chuàng)建兩個(gè)子模塊:訂單模塊(端口8081)、用戶(hù)模塊(端口8082),兩個(gè)模塊之間沒(méi)有聯(lián)系,現(xiàn)在需要查詢(xún)訂單,根據(jù)訂單中的用戶(hù)ID,查詢(xún)?cè)撚唵螌?duì)應(yīng)的用戶(hù)信息。 (兩個(gè)模塊是獨(dú)

    2024年02月15日
    瀏覽(25)
  • 【數(shù)據(jù)結(jié)構(gòu)與算法分析】使用C語(yǔ)言實(shí)現(xiàn)隊(duì)列的兩種(帶頭結(jié)點(diǎn)與不帶頭結(jié)點(diǎn))鏈?zhǔn)酱鎯?chǔ),并且給出一種循環(huán)隊(duì)列的設(shè)計(jì)思想

    【數(shù)據(jù)結(jié)構(gòu)與算法分析】使用C語(yǔ)言實(shí)現(xiàn)隊(duì)列的兩種(帶頭結(jié)點(diǎn)與不帶頭結(jié)點(diǎn))鏈?zhǔn)酱鎯?chǔ),并且給出一種循環(huán)隊(duì)列的設(shè)計(jì)思想

    ??當(dāng)我們編寫(xiě)程序時(shí),經(jīng)常需要處理各種數(shù)據(jù)結(jié)構(gòu)。隊(duì)列是一種常見(jiàn)的數(shù)據(jù)結(jié)構(gòu),它有著廣泛的應(yīng)用場(chǎng)景。隊(duì)列的基本操作包括入隊(duì)和出隊(duì),應(yīng)用于模擬等待隊(duì)列、消息隊(duì)列、計(jì)算機(jī)緩存等場(chǎng)合。 ??在實(shí)際編程中,我們可以用不同的數(shù)據(jù)結(jié)構(gòu)來(lái)實(shí)現(xiàn)隊(duì)列。本文主要介紹了

    2024年02月08日
    瀏覽(503)
  • 詳解 docker 鏡像制作的兩種方式

    制作Docker鏡像一般有2種方法: 通過(guò)Dockerfile,完成鏡像的創(chuàng)建 使用倉(cāng)庫(kù)中已有的鏡像,安裝自己使用的軟件環(huán)境后完成新鏡像創(chuàng)建 docker build: 用于構(gòu)建 Docker 鏡像。該命令可以從 Dockerfile 構(gòu)建鏡像,也可以從 tar 包構(gòu)建鏡像。 docker tag: 用于給鏡像打上標(biāo)簽。該命令可以將鏡像

    2024年02月01日
    瀏覽(28)
  • 交換排序的兩種方法

    交換排序的兩種方法

    C語(yǔ)言實(shí)現(xiàn)交換排序的兩種方法:冒泡排序和快排。 冒泡排序:冒泡排序十分簡(jiǎn)單,在這里簡(jiǎn)要分析: 算法步驟: 比較相鄰的元素。如果第一個(gè)比第二個(gè)大,就交換他們兩個(gè)。 對(duì)每一對(duì)相鄰元素作同樣的工作,從開(kāi)始第一對(duì)到結(jié)尾的最后一對(duì)。這步做完后,最后的元素會(huì)是

    2023年04月24日
    瀏覽(23)
  • 鏈表逆置的兩種方法

    鏈表逆置的兩種方法

    原鏈表圖: ? 方法一:頭插法鏈表 逆置 1.斷開(kāi)頭節(jié)點(diǎn)與其他節(jié)點(diǎn)的連接(提前存好head-next的地址) ?? ?Node* p = head-next; ?? ?Node* q = p-next; ? ? head-next = NULL; 2. 頭插法 在head后面插入p后鏈表的各個(gè)節(jié)點(diǎn) ?? ?p-next = head-next; ? ??head-next = p; p、q指針往后移 ?? ?p = q; ?? ?if

    2024年02月16日
    瀏覽(32)
  • 更改pip源的兩種方法

    在使用`pip`安裝Python包時(shí),由于網(wǎng)絡(luò)問(wèn)題,可能會(huì)出現(xiàn)下載速度慢、甚至無(wú)法下載的情況。這時(shí)可以考慮更改`pip`的鏡像源,以加快下載速度。以下是幾種更改`pip`鏡像源的方法: 1. 使用`pip`命令更改 可以使用`pip`命令更改`pip`的鏡像源。以清華大學(xué)的鏡像源為例,使用以下命

    2023年04月27日
    瀏覽(27)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包