微服务后端部署

2023-10-27

部署分布式微服务

本篇文章教会你从零部署spring-cloud微服务的项目

部署

这是一个已经开发完成的spring-cloud的项目

在这里插入图片描述

对服务进行打包

可以直接在总的项目下

在这里插入图片描述

通过maven对项目进行打包 这样系统就会帮助你对各个微服务进行打包

打包完成之后 将打好的jar包 通过 scp 命令或者其它的工具传送到部署的服务器

在这里插入图片描述

传送到服务器之后 通过 java -jar 的方式启动jar包即可

linux常见启动jar包的方式

方式一
java -jar xxx.jar

最常用的启动jar包命令,特点:当前ssh窗口被锁定,可按CTRL + C打断程序运行,或直接关闭窗口,程序退出

方式二
java -jar xxx.jar &

&代表在后台运行 ,ctrl+c 后程序也会继续运行

方式三
nohup java -jar xxx.jar &

nohup 即 no hang up 不挂断 ,关闭SSH客户端连接,程序不会中止运行

缺省情况下该作业的所有输出被重定向到nohup.out的文件中,如何让输出的内容重定向到指定的文件呢?

方式四
nohup java -jar xxx.jar >aaa.log &

将日志输入到指定的文件

方式五
nohup java -jar xxx.jar > springboot.log 2>&1 &
nohup 和 &
使用&后台运行程序:
  • 结果会输出到终端
  • 使用Ctrl + C,程序免疫
  • 关闭session,程序关闭
使用nohup运行程序:
  • 结果默认会输出到nohup.out
  • 使用Ctrl + C,程序关闭
  • 关闭session,程序免疫

常见问题

1. maven 的结构问题

父项目中只引入当前子项目的模块

在这里插入图片描述

子项目在引入子子项目的模块

在这里插入图片描述

子项目的父模块就是其父模块 不可越级 以免造成依赖的问题

在这里插入图片描述

2. maven 打成打jar包只有几kb

在总的项目的pom文件中加上如下的配置

<build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <fork>true</fork>
                    <addResources>true</addResources>
                    <excludes>
                        <exclude>
                            <groupId>org.projectlombok</groupId>
                            <artifactId>lombok</artifactId>
                        </exclude>
                    </excludes>
                </configuration>
            </plugin>
        </plugins>
</build>
3. 项目导包的时候配置文件和xml没有打入进去jar包

加入一下的配置

    <build>
        <resources>
            <resource>
                <directory>src/main/resources</directory>
                <includes>
                    <include>**/*.properties</include>
                    <include>**/*.yaml</include>
                    <include>**/*.yml</include>
                    <include>**/*.xml</include>
                </includes>
            </resource>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.properties</include>
                    <include>**/*.yaml</include>
                    <include>**/*.yml</include>
                    <include>**/*.xml</include>
                </includes>

            </resource>
        </resources>
    </build>
4. 引入的jar包 在maven仓库中没有

使用mvn install 命令 将项目中引入的jar安装到本地仓库

mvn install:install-file -DgroupId=com.jd.blockchain -DartifactId=jdchain-samples -Dversion=1.6.4.RELEASE  -Dpackaging=jar -Dfile=E:\JDChain\jdchain-samples-master\sdk-samples\target\sdk-samples-1.6.4.RELEASE.jar
  
5. 打包的时候 依赖工程找不到

对于本项目 使用的构建工具是maven,项目分了很多模块,并且模块之间还存在一定的依赖,比如说一个项目common是提供各项目通用的工具类,公共的类等

例子:项目backend-master,有common、infrastructure、service等其中service下面的模块都依赖于common,将来需要上线部署的也是service和infrastructure项目,所以两个项目是要进行打包,也就是这个打包操作,让我浪费了好多时间,这里都是我亲身经历的血泪史。

当使用Maven对service项目直接进行package时,提示依赖于common的jar包找不到。因为直接对service打包,common并没有被打包,依赖关系无法保持。这时你要做的就是,首先对项目common进行install,如图

在这里插入图片描述

注意!注意!这里有一个巨坑,我已经义无反顾的跳进去一次了,大家一定不要再往里面跳了:Common打包出来的应该是不可执行的jar包,所以不要在Common的pom中定义spring-boot-maven-plugin插件,因为这个Spring-boot插件会在Maven的package后进行二次打包,目的为了生成可执行jar包,如果common中定义了这个插件,会报错提示没有找到main函数。这时你就可以去打包service项目了,当然打包的时候可能还是不行,这里还有一个小坑,如果还是不能进行打包的话,那么就install一下root项目,也就是总目录下的pom文件对应的install操作,这样再打包service项目基本上就没有问题了。最简单的方式就在直接对backend-master进行package和install

件,会报错提示没有找到main函数。这时你就可以去打包service项目了,当然打包的时候可能还是不行,这里还有一个小坑,如果还是不能进行打包的话,那么就install一下root项目,也就是总目录下的pom文件对应的install操作,这样再打包service项目基本上就没有问题了。最简单的方式就在直接对backend-master进行package和install

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

微服务后端部署 的相关文章

  • 如何生成源代码来创建我正在调试的对象?

    我的典型场景 我处理的遗留代码有一个错误 只有生产中的客户端才会遇到 我附加了一个调试器并找出如何重现该问题their系统给定their输入 但是 我还不知道为什么会发生错误 现在我想在本地系统上编写一个自动化测试来尝试重现然后修复错误 最
  • Java ASN.1 编译器

    现在我正在使用二进制笔记 http bnotes sourceforge net 解析 ASN 1 文件以在 Java 项目中使用 它采用 ASN 1 定义并生成 Java 类 让我可以操作 ASN 1 文件 我用扩展标记碰壁了 因为它不支
  • 将 hyperjaxb3 升级到 jpa 2.1

    我正在尝试在使用 maven jpa hibernate 和 hyperjaxb 的 eclipse 项目中升级到 JPA 2 1 当我尝试执行以下操作时出现以下错误Run As Run on Server从日食内部 java lang N
  • Android 上 WebRTC 的自定义视频源

    Overview 我想使用自定义视频源通过 WebRTC Android 实现来直播视频 如果我理解正确的话 现有的实现仅支持 Android 手机上的前置和后置摄像头 以下类与此场景相关 Camera1Enumerator java ht
  • 由于 maven-surefire-plugin,Maven 构建失败

    我这里有类似的问题eclipse 中缺少 maven surefire plugin https stackoverflow com questions 23588957 maven surefire plugin missing in e
  • json文件格式的升级路径

    我们将 Java 应用程序的用户首选项存储在 JSON 文件中 使用Jackson http jackson codehaus org 随着我们继续开发该应用程序 我们将添加首选项 重命名首选项并删除过时的首选项 当用户将应用程序升级到下一
  • 将 Flash 文件上传与 JSF 集成

    我看到我们可以通过flash文件上传来上传多个文件 喜欢SWF上传 http code google com p swfupload or YUI上传器 http yuilibrary com yui docs uploader 是否可以将
  • 动态更新 LookAndFeel 值

    我希望能够动态更新 Swing GUI 的 LookAndFeel 属性 在本例中 我有一个简单的 Swing Awt 游戏 运行最初为 Nimbus 的游戏LookAndFeel 在启动后的各个时刻 我只想更改 比方说 一个细节 应用程序
  • 处理大数据表时应该如何使用Hibernate Mapping

    问题定义 我有一个包含大量数据 超过 100 000 行 的数据库表 表结构如下 AppID DocID DocStatus 1 100 0 1 101 1 2 200 0 2 300 1 每个 applicationID 可能有数千个文档
  • 我可以直接在 Maven 中使用 GitHub 项目吗?

    我有兴趣使用GitHub 上的项目 https github com toelen spymemcached jcache作为我的项目中的依赖项 GitHub 项目有一个pom文件 我可以修改我的pom文件来使用这个项目 如果是这样 怎么办
  • Jersey/JAX-RS:如何自动使用@Valid递归级联bean验证?

    我正在 Jersey 的 REST 资源端点中验证我的 POJO public class Resource POST public Response post NotNull Valid final POJO pojo public cl
  • 从 API Explorer 调用 API 方法时不允许使用范围

    我在 Google App Engine 中有一个奇怪的行为 我正在使用 Eclipse 和 Java 进行开发 特别是使用 Google Cloud Endpoints 我使用以下设置创建了一个示例 API 实际上 我正在使用许多其他示波
  • 无法实例化类对象的类型 (Java)

    这是我收到错误的代码 在 new 之后的第二个 Killer 处 String classes new String 5 kills 0 Brian Moser kills 1 James Doakes kills 2 Lila Tourn
  • 从 Java/Spring 检索 RabbitMQ 队列中未确认消息的数量

    有没有办法返回未确认的消息数 我正在使用此代码来获取队列中的消息数 DeclareOk declareOk amqpAdmin getRabbitTemplate execute new ChannelCallback
  • 为什么 writeObject 抛出 java.io.NotSerializedException 以及如何修复它?

    我有这个异常 我不明白为什么会抛出它 或者我应该如何处理它 try os writeObject element catch IOException e e printStackTrace Where element is a Transf
  • Spring cron 表达式每 30 分钟一次

    Java spring 我有以下 cron 作业的 cron 表达式 0 0 35 但上面提到的 cron 表达式每小时触发一次 如下所示 1 35 2 35 3 35 4 35 我想每 35 分钟触发一次 而不是一小时触发一次 有什么快速
  • 告诉 JAXB 使用注释将 解组为 Date 类

    将 JAXB 与 Java First 一起使用时 类型的字段 属性java util Date编组和解编为xs dateTime一切都按预期进行 但是如果字段 属性的类型是Object JAXB 解组xs dateTimeto XMLGr
  • DOM 中不再存在缓存元素

    就像在类似的问题中一样 我使用appium java 尝试选择元素 在移动应用程序中 我要转到页面 之后有许多元素 android widget ImageView 0 我需要选择 6 个 例如 这样的元素并执行其他步骤 Byt 只能选择一
  • 指定不带组件的GridBagLayout的网格参数

    我试图帮助另一个用户 但遇到了一个问题 我想用 GridBagLayout 来做到这一点 c1 c2 c3 10 80 10 v v r1 B1
  • Spring Data JPA 存储库,具有规范、分页和标准 fetch-join

    我正在使用具有规范和分页功能的 Spring Data JPA 存储库实现实体列表的搜索 过滤服务 我正在尝试减少查询数量 n 1 问题 并使用条件获取机制获取嵌套数据 我有两个实体类 Entity Table name delegatio

随机推荐

  • Python 模运算符

    模运算是一种算术运算 可求出一个数字除以另一个数字的余数 余数称为运算的模 例如 5除以3等于1 余数为2 8除4等于2 余数为0 Python 模运算符 在 Python 中 模运算符由百分号 语法如下 num1 num2 这是一个例子
  • Linux服务器上重置Mysql8密码

    前言 此流程适用于mysql 8版本 1 关闭数据库 1 关闭数据库 service mysqld stop 2 编辑配置文件 1 编辑文件 vim etc my cnf 输入 i 进入编辑模式 2 添加配置 skip grant tabl
  • ECSHOP文件结构系统简介

    原来做电子商务系统一直用zencart 后来虽然接触过一段时间magento 但是magento觉得还是挺高深的 前面两个比较多的用在外贸电子商务 特别是magento 可以说是开源电子商务系统中的豪华版 以后有时间的话再一起学习探讨一下
  • 通过App的演示深入理解区块链运行原理

    下载安装 如果没有安装nodejs 需要先安装 nodejs Clone this repository git clone https github com seanseany blockchain cli Go into the rep
  • 源码进阶之线程池

    写在前面 上次学习了多线程 了解了线程的概念和作用 学习了线程的创建方式 工作模式和一些重要的方法 当我们使用线程中 创建 销毁线程伴随着系统开销 过于频繁的创建 销毁线程 就会很大程度上影响处理效率 那么此时我们就引入了线程池的概念 即为
  • C语言【猜数字游戏】详解

    提示 文章写完后 目录可以自动生成 如何生成可参考右边的帮助文档 文章目录 前言 一 猜数字游戏是什么 二 使用步骤 1 首先应该打印菜单 2 打印我们的game 函数来实现我们的游戏具体逻辑 总结 前言 本文详细介绍了猜数字游戏的具体实现
  • Android Studio升级Gradle Plugin升级导致项目运行失败问题

    背景 错误 升级Android Studio 旧项目无法运行 奇奇怪怪什么错误都有 例如 java lang IllegalAccessError class org gradle api internal tasks compile pr
  • 100天精通Python(数据分析篇)——第68天:Pandas数据清洗函数大全(判断缺失、删除空值、填补空值、替换元素、分割元素)

    文章目录 一 drop 删除指定行列 1 删除指定行 2 删除指定列 二 del 删除指定列 三 isnull 判断是否为缺失 1 判断是否为缺失 2 判断哪些列存在缺失 3 统计缺失个数 四 notnull 判断是否不为缺失 五 drop
  • Mac上如何正确的安装 Android Studio

    1 下载 Android Studio 官方下载地址 2 预处理 可选 如果事先下载过 Android Studio 则需要在终端执行以下命令 卸载主程序 rm Rf Applications Android Studio app rm R
  • window jenkins + 加固 & mac 进行jenkins + fastlane + pod + git环境搭建 一

    非常炒蛋的操作 但是必须搞 最心累就是360有个版本问题 严重拖了后腿 最后提示 权限不足 是cli版本内部问题 主要思想 jenkins 进行搭建支持window linux 等系统部署完毕后 配置git或者svn的路径 进行构建后 进行
  • R语言 lightgbm 算法优化:不平衡二分类问题(附代码)

    来源 大数据文摘 本文约10000字 建议阅读10分钟本文以kaggle比赛的数据为例 为你讲解不平衡二分类问题的解决方法 本案例使用的数据为kaggle中 Santander Customer Satisfaction 比赛的数据 此案例
  • c语言作业 求1到n的阶乘和,C语言,计算1到n的阶乘求和问题

    C语言 计算1到n的阶乘求和问题以下文字资料是由 历史新知网www lishixinzhi com 小编为大家搜集整理后发布的内容 让我们赶快一起来看一下吧 C语言 计算1到n的阶乘求和问题 在for n gt 1 n 里面对b进行初始化
  • 短视频自媒体涨粉的“小心机“,如何快速涨粉

    今天要分享的也是大家最关心 最头疼的问题 如何让自己的自媒体账号涨粉 关于涨粉 以下是你必须要知道的 01坚持发垂直作品 运营抖音账号 保证持续更新是十分必要的 另外内容选题上要保证足够垂直 每期做一个内容 一方面有利于塑造个人 IP 另一
  • 本科的控制工程到底学什么?

    一 控制学什么 对于控制领域来讲 我所研究的对象主要有两个 信号和系统 信号是信息的表现形式 目前所接触的信号主要就是电信号 即电压或电流等 而系统则是将一种信号处理成另一种信号的实体 在自动控制原理这门课中学到了各种的系统 也就是由一些电
  • win7下使用cpan安装Perl模块

    使用Padre集成开发环境 需要安装Perl模块 例如要安装IO promot模块 步骤如下 在cmd窗口中 使用命令 perl MCPAN e shell install IO Prompt 稍等一下就好了 安装完毕 但是也会遇到安装失败
  • ubuntu22.04 安装配置 Samba服务详细过程(新)

    1 先进入root目录 sudo s 2 安装Samba服务 apt get install samba 2 安装cifs utils包 cifs utils是一个Linux命令包 它提供了访问远程Windows网络共享的工具和命令 执行
  • Flutter windows程序窗口布满工作区

    Flutter 改变Windows窗口大小有一个比较多的插件 很多都是在main dart中注入 这样势必影响多平台应用 至少 我们也应该遵守单一职责原理 既然是windows的问题 那么就在windows中进行解决 通过阅读Flutter
  • 剑指 Offer 42. 连续子数组的最大和(java+python)

    输入一个整型数组 数组中的一个或连续多个整数组成一个子数组 求所有子数组的和的最大值 要求时间复杂度为O n 示例1 输入 nums 2 1 3 4 1 2 1 5 4 输出 6 解释 连续子数组 4 1 2 1 的和最大 为 6 提示 1
  • 从Java到Go:使用Go语言实现电子邮件发送服务

    目录 1 概述 2 SMTP简介 3 从Java到Go 基本语法差异 3 1 变量声明和初始化 3 2 函数声明
  • 微服务后端部署

    部署分布式微服务 本篇文章教会你从零部署spring cloud微服务的项目 部署 这是一个已经开发完成的spring cloud的项目 对服务进行打包 可以直接在总的项目下 通过maven对项目进行打包 这样系统就会帮助你对各个微服务进行