spring cloud微服务项目的发布与部署

Posted 汪神

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了spring cloud微服务项目的发布与部署相关的知识,希望对你有一定的参考价值。

普通的javaweb项目要发布的话,一般就三种方法:

1.把项目直接放在tomcat的webApps下启动tomcat即可。

2.把项目打包成war包放在webApps下,启动tomcat,自动解压war包。

3.采用显示定义上下文的方法(上面两种都是隐式定义上下文),也就是改配置文件的方法,要么在Tomcat的conf/Catalina/localhost目录下创建一个XML文件;要么在Tomcat的conf/server.xml文件中添加一个Context元素。

 

但现在发布的是微服务架构,何为微服务,就是多个工程,而且每个工程都相当于以前的一个工程,都自带了一个Tomcat。然后这里我们有一个很方便的部署发布的方法,用运行jar包来发布。下面讲一下步骤:

这里我们用的开发工具是Spring Tool Suite,项目构建工具是Maven

1.先要将将项目中本来的jar包清除一下,这里我们其实只关注每个工程target夹中的jar包。

点击项目,右键,run as Maven Clean

 

 (附:要是开发的时候,clean后项目有错误提示,那是因为引用的jar包被clean了,可以通过项目右键   Maven->update project来恢复)

 

clean后,检查项目的target文件夹下没有jar包的话就可以了。

 

2.创建jar包:

项目右键,run as->maven build...

 

然后在goals里写package:

然后run就行了。

每个工程都走这两步,然后就都有相对应的包。

然后这个时候我们想运行项目就非常方便了,只要在命令行里,去到jar包相应的目录下敲

java -jar xxxxxxxx.jar

即可。

为了方便,我们这里一般写好脚本,就这一行代码,保存为.bat后,双击该文件项目就会运行了。

 

 

然后讲一下部署的,这里先用windows系统,为了方便测试:

一、windows service系统配置

主要完成三个工作:装iis服务,JDK(java),配置安全工作组(开端口)

1.装iis服务,打开服务器管理器--》添加角色和功能--》,在角色处选中>Web服务器(IIS)、在功能处选中>(.NET Framework 4.5)、IIS可承载Web核心和HTTP代理上的RPC  按照即可。

2.JDK安装与在本地电脑安装一样。

3.配置安全工作组(就是开外网可以访问的端口):云服务器ECS-->网络和安全—》安全组。点击配置规则,在配置界面配置相应的端口即可(对于微服务,只需要配置入口端口接口,比如gate一个端口即可)。

 

 

 

2019-7.5补充:关于有引入自己的jar要加把jar先进本地maven仓库才能maven pacakge的问题

项目抽象出了一个公共的工程,common工程,虽然也是springBoot的项目,但没有启动类,也就不能启动的,只是把后台几个服务工程的公共的实体啊工具类什么的抽象出来。

然后在其他工程只要在maven的pom中像引用其他jar包一样引用它就好了。

 

开发的时候没有问题,但打包的时候,采用上面讲的package的方法一直报错,就找不到公共工程里面的类,就很奇怪,明明有这些maven依赖啊,如下图所示:

 

 

疯狂maven clean,然后maven update再maven package都没用。。。。

 

然后就想,怎么在pom中可以引用到自己的jar包呢,maven应该是先去本地仓库找,然后不行再去中央仓库或者镜像找,然后我们看上面的图,其他的都有在本地放库中的路径,只有这个common的jar也就我们自己的公共工程没有。

然后我也去本地仓库目录找了下好像确实没有。

 

emmmm问题好像找到了

 

于是就百度如何将自己的jar包加进本地仓库中(本来想自己建文件夹的,发现好像很不简单很有规律)

就发现了mvn install这个命令

然后sts也有这个maven的install命令,就对这个common工程跑:

 

发现这个命令的作用好像有两个:

  1. 和package一样,在target下面有相关的项目jar包还有其他也一样的文件

  2. 在本地maven仓库按照pom中你的groupid什么的建文件夹并放jar进去

  3. 在本地的maven仓库的一个和pom相关的文件把common的pom加进去:

--- maven-install-plugin:2.5.2:install (default-install) @ gzy-sc-common ---
[INFO] Installing D:\\xiangmu\\gzy\\gzy\\gzy_master\\gzy-sc-common\\target\\gzy-sc-common-1.0-SNAPSHOT.jar to D:\\feianzhuang\\repository\\com\\gzy\\gzy-sc-common\\1.0-SNAPSHOT\\gzy-sc-common-1.0-SNAPSHOT.jar
[INFO] Installing D:\\xiangmu\\gzy\\gzy\\gzy_master\\gzy-sc-common\\pom.xml to D:\\feianzhuang\\repository\\com\\gzy\\gzy-sc-common\\1.0-SNAPSHOT\\gzy-sc-common-1.0-SNAPSHOT.pom

 

 

然后再其他工程maven update,maven clean 重新maven package,问题解决~

总结就是,其他工程如果有在pom中引用自己写的jar包,要用maven install命令把这个jar包加进本地maven仓库先,然后引用了它的工程才能正常用maven pacakge打包,否则会报错找不到那个jar中的类

 

以上是关于spring cloud微服务项目的发布与部署的主要内容,如果未能解决你的问题,请参考以下文章

kubernetes部署spring cloud微服务项目

Spring Cloud Gateway 服务网关的部署与使用详细介绍

Spring Cloud Gateway 服务网关的部署与使用详细介绍

Spring Cloud Gateway 服务网关的部署与使用详细教程

Spring Cloud Gateway 服务网关的部署与使用详细教程

Spring Cloud Gateway 服务网关的部署与使用详细教程