微服务: 部署服务


原文 微服务: 部署服务,CSDN同步发布。

转载请注明出处,谢谢!


简介

微服务系列 文章中,跟大家从环境搭建、Web工程创建、提供Restful接口、热部署、Git使用以及Swagger生成文档分享了SpringBoot的入门知识。今天继续分享如何使用IDEA和maven对工程进行打包操作,然后发布代码到服务器进行部署的过程。

大家有任何问题,或者文中有不正确的地方欢迎留言评论,共同进步,再次感谢大家的阅读。

IDEA 打包

File/Project Structure 打开视图,或者使用快捷键 Ctrl+Alt+Shift+S 打开视图。
在这里插入图片描述
打开的视图如下:
在这里插入图片描述
按照 1、2、3 步骤打开下面视图,如下:
在这里插入图片描述
配置该视图的内容,分别设置 Main Class 和 选择 JAR files,如下:
在这里插入图片描述
这里特别要注意,选择生成 MANIFEST.MF 文件目录放到 resources 下面,默认会放在 main\java 目录下。

如果不修改这个目录,最终运行生成的 jar 文件,会报下面的错误:

 Invalid or corrupt jarfile {project_name}.jar

配置完成后,点击 OK 关闭对话框即可。

接下来需要编译,点击 IDEA 的 Build 菜单,选择 Build Artifacts...,如下截图:
在这里插入图片描述
点击 Build Artifacts... 后出现视图
在这里插入图片描述
第一次直接选择 Build 选项,后续可以选择 Rebuild 或者 Clean 选项,根据你的需要进行选择即可。

等待 IDEA 打包完成后,在工程文件中会生成 out 目录和 resources 目录下面生成 META-INF 目录和对应的文件,如下图所示:
在这里插入图片描述
springboot_jar 目录下面有打包成功的 jar 文件,即 springboot.jar 文件,另外也将 tomcat 等一些其他依赖包都打包到一起了。

打开终端,执行 java -jar springboot.jar 就可以运行该项目了。
在这里插入图片描述
如果发现由于端口被占用而无法启动的情况,可以查看端口占用情况:

 netstat -ano | findstr 8080

查到类似如下结果:

 TCP    0.0.0.0:8080           0.0.0.0:0              LISTENING       18948
 TCP    [::]:8080              [::]:0                 LISTENING       18948

这里演示的进程ID是 18948,强制关闭端口进程即可

taskkill -F -PID 18948

部署到服务器

我使用虚拟机(Ubuntu)来简单介绍一下部署过程。虚拟机是 VMWare 其版本是 15.0.2,Ubuntu 系统版本是 19.04。如何安装虚拟机、如何在虚拟机中安装 Ubuntu 系统以及如何在 Ubuntu 中安装 Java 环境请大家自行查找资料完成,这里不赘述。

可以通过上面的方式(IDEA打包)完成后,将生成的 springboot_jar 目录拷贝到虚拟机的用户目录下,然后通过 java -jar springboot_jar/springboot.jar 来启动服务。

我们还可以通过 IDEA 的 maven 工具进行打包,步骤如下:

1、打开工程的maven视图
在这里插入图片描述
2、按照标红的1、2、3、4操作即可

成功后在 target 目录会生成对应的可执行的 jar 文件,该 jar 包包括了所有的 SpringBoot 相关的包如下图:
在这里插入图片描述
同理,复制 springboot-0.0.1-SNAPSHOT.jar 到虚拟机的用户目录,通过 java -jar springboot-0.0.1-SNAPSHOT.jar 运行服务即可。

查看 Ubuntu 的主机IP地址,可以通过 ifconfig 来获取,也可以在设置里面查找其IP地址。 ifconfig 需要按照 net-tools,安装命令如下:

sudo apt install net-tools

我的虚拟机的IP地址是 192.168.142.128,即 http://192.168.142.128:8080 是 Ubuntu 的 IP 地址和 Tomcat 的运行端口,回到 Windows 主机上面访问虚拟机的服务,通过下面图可以看出是成功的。
在这里插入图片描述
这里只是简单的介绍了一下如何将自己写的 SpringBoot 服务部署到服务器上面,在你的实际项目中部署没这么简单,我算是抛砖引玉吧,后续随着学习的深入我再跟大家分享一下在实际大项目中部署遇到的一些问题。


生活并没有那么复杂,要是你喜欢,大可以说我是在探索生命。
在这里插入图片描述

服务架构的分布式事务控制解决方案

09-06
1、课程简介 Spring Cloud是一系列框架的有序集合。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用Spring Boot的开发风格做到一键启动和部署。        在本套课程中,我们将全面的讲解Spring Cloud技术栈, 从环境的部署到技术的应用,再到项目实战,让我们不仅是学习框架技术的使用,而且可以学习到使用Spring Cloud如何解决实际的问题。 Spring Cloud各个组件相互配合,合作支持了一套完整的服务架构。 - 注册中心负责服务的注册与发现,很好将各服务连接起来 - 断路器负责监控服务之间的调用情况,连续多次失败进行熔断保护。 - API网关负责转发所有对外的请求和服务 - 配置中心提供了统一的配置信息管理服务,可以实时的通知各个服务获取最新的配置信息 - 链路追踪技术可以将所有的请求数据记录下来,方便我们进行后续分析 - 各个组件又提供了功能完善的dashboard监控平台,可以方便的监控各组件的运行状况 2、适应人群 有一定的Java基础,并且要有一定的web开发基础。 3、课程亮点        系统的学习Spring Cloud技术栈,由浅入深的讲解服务技术。涵盖了基础知识,原理剖析,组件使用,源码分析,优劣分析,替换方案等,以案例的形式讲解服务中的种种问题和解决方案 l  服务的基础知识 n  软件架构的发展史 n  服务的核心知识(CAP,RPC等) l  注册中心 n  Eureka搭建配置服务注册 n  Eureka服务端高可用集群 n  Eureka的原理和源码导读 n  Eureka替换方案Consul n  Consul下载安装&服务注册&高可用 l  服务发现与服务调用 n  Ribbon负载均衡基本使用&源码分析 n  Feign的使用与源码分析 n  Hystrix熔断(雪崩效应,Hystrix使用与原理分析) n  Hystrix替换方案Sentinel l  服务网关 n  Zuul网关使用&原理分析&源码分析 n  Zuul 1.x 版本的不足与替换方案 n  SpringCloud Gateway深入剖析 l  链路追踪 n  链路追踪的基础知识 n  Sleuth的介绍与使用 n  Sleuth与Zipkin的整合开发 l  配置中心 n  SpringClond Config与bus 开发配置中心 n  开源配置中心Apollo 4、主讲内容 章节一: 1.     服务基础知识 2.     SpringCloud概述 3.     服务注册中心Eureka 4.     Eureka的替换方案Consul 章节二: 1.     Ribbon实现客户端负载均衡 2.     基于Feign的服务调用 3.     服务熔断技术Hystrix 4.     Hystrix的替换方案Sentinel 章节三: 1.     服务网关Zuul的基本使用 2.     Zuul1.x 版本的不足和替换方案 3.     深入SpringCloud Gateway 4.     链路追踪Sleuth与Zipkin 章节四: 1.     SpringCloud Config的使用 2.     SpringCloud Config结合SpringCloud Bus完成动态配置更新 3.     开源配置中心Apollo
©️2020 CSDN 皮肤主题: 酷酷鲨 设计师: CSDN官方博客 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值