微服务后端部署

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(使用前将#替换为@)

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

  • 如何迭代所有注册表项?

    我正在尝试迭代所有注册表项以查找 包含 并删除 jre1 5 0 14 值 有办法做到吗 下面的代码只是在特定键下找到jre1 5 0 14 我确实想迭代所有的键 顺便说一句 if 子句获取是否等于 jre1 5 0 14 但如果它包含 j
  • 如何在Java 8中实现Elvis运算符?

    我有一个经典的 Elvis 运算符 案例 其中我调用每个可能返回 null 的方法并将它们链接在一起 thing nullableMethod1 a nullableMethod2 b nullableMethod3 在 Java 8 中
  • 使用 AbstractTableModel 获取 JTable 中选定的行

    我有一个JTable using AbstractTableModel我在哪里有一个JCheckBox在第一列中用于选择行 现在 我需要从已检查的表中获取选定的行 现在 我按顺序从第一行遍历到最后一行并获取所有选择的行 如下所示 List
  • 实现与扩展:何时使用?有什么不同?

    请用易于理解的语言进行解释或提供某些文章的链接 extends is for 延伸一类 implements is for 实施一个接口 接口和常规类之间的区别在于 在接口中您不能实现任何声明的方法 只有 实现 接口的类才能实现方法 C 中
  • 在 IntelliJ 上进行 Google App Engine Java 开发?

    令人烦恼的是 Google App Engine 已成为其中的另一个项目 他们只发布 Eclipse 插件 如 Spring Webflow 而我更喜欢 IntelliJ 你能用IntelliJ成功运行本地测试环境吗 并调试 部署本地或实时
  • 线程“main”java.lang.UnsatisfiedLinkError中出现异常:java.library.path中没有opencv_java249

    我目前正在尝试在我的 32 位笔记本电脑上设置 OpenCV 但我不断收到一条令我困惑的错误消息 Exception in thread main java lang UnsatisfiedLinkError no opencv java2
  • 使用除 SINGLE_TABLE 之外的任何其他 Hibernate 继承策略时 JVM 崩溃

    好吧 这可能不太可能 但还是这样吧 在Java JRE 1 6 0 26 b03 中我有两个类 SuperControl及其子类SubControl 它们都需要是持久对象 我正在使用 Hibernate Annotations 来实现这一点
  • @OneToMany 与 @JoinTable 错误

    我试图理解 OneToMany with JoinTable 对于这样的场景 我正在使用 JPA 2 1 Hibernate 5 0 4 和 Oracle 11 XE 当我打电话时userDao save user 下面的代码 我有 jav
  • 如何识别 Java 中的不可变对象

    在我的代码中 我正在创建一个对象集合 这些对象将由各种线程以只有在对象不可变的情况下才安全的方式访问 当尝试将新对象插入到我的集合中时 我想测试它是否是不可变的 如果不是 我将抛出异常 我能做的一件事是检查一些众所周知的不可变类型 priv
  • 在 Hibernate 中创建 UPDATE RETURNING 查询

    在 Oracle 中 我们可以创建一个更新查询 该查询将使用 RETURNING 子句返回更新的记录 Hibernate中有类似的功能吗 除了数据库生成的值之外 Hibernate 显然不需要返回更新的实例 因为对象传递给Session s
  • 尝试在java中的Arraylist中查找对象的所有出现

    我有一个 Java ArrayList 我需要查找其中出现的所有特定对象 ArrayList indexOf Object 方法只找到一次出现 所以看来我还需要其他东西 我认为你不需要太花哨 以下应该可以正常工作 static
  • 如何使用 Spring Boot 和 Flyway 设置 Quartz 调度程序的数据库架构?

    我有一个 Spring Boot 应用程序 它使用 Quartz 调度程序和 PostGreSQL 数据库作为存储 我正在将它从使用它自己的数据库运行迁移到publicschema 来针对每个应用程序使用一个 schema 的共享数据库运行
  • Java元数据读写

    是否可以以通用方式 对于所有图像类型 在 Java 中读取和写入元数据 我找到了一些示例 但它们总是特定的 例如 JPEG 或 PNG 我需要一些足够通用的东西 而不是到处都有 if else 语句 我不想重写源代码 但这是一个很好的例子
  • 不要模拟值对象:过于通用的规则,没有解释

    以下是 Mockito 单元测试框架的引用 不要模拟值对象 为什么有人会想要这样做呢 因为实例化对象太痛苦了 gt 无效 原因 如果创造新的装置太困难 那就是一个迹象 代码可能需要一些认真的重构 另一种方法是创建 价值对象的构建者 有一些工
  • 如何通过子 POJO 的属性过滤复合 ManyToMany POJO?

    我有两个像这样的房间实体 Entity public class Teacher implements Serializable PrimaryKey autoGenerate true public int id ColumnInfo n
  • 如何使用云打印打印Android活动显示

    我正在尝试将 Google 云打印实现到应用程序中 遵循集成指南 https developers google com cloud print docs android 我试图通过打印 google com 来保持基本 单击我创建的打印按
  • 我们可以使用 for-each 循环来迭代 Iterator 类型的对象吗? [复制]

    这个问题在这里已经有答案了 如果我们执行以下操作 我们会收到错误 class FGH public static Iterator reverse List list Collections reverse list return list
  • 无法映射 ftl 文件中的 jsonRequest 属性

    我想在 FTL 文件中映射下面的 json 文件市场和子市场字段 但是当我尝试下面的代码时 它没有映射 有人可以帮助我吗 我从 2 天开始就无法映射它 Json请求 ProcessOrderRequest prevalidationMode
  • Google Cloud Messaging - 立即收到或长时间延迟收到的消息

    我在大学最后一年的项目中使用谷歌云消息传递 一切正常 但我在使用 GCM 时遇到了一些麻烦 通常 消息要么几乎立即传递 要么有很大的延迟 我读过这篇文章 但我真的认为它不适用于这种情况 GCM 通常会在消息发送后立即传送消息 然而 这并不总
  • 编写自定义 Eclipse 调试器

    EDIT 一定有某种方法可以解决这个问题 而无需编写全新的调试器 我目前正在研究在现有 java 调试器之上构建的方法 如果有人对如何获取 Java 调试器已有的信息 有关堆栈帧 变量 原始数据等 有任何想法 那将非常有帮助 我想要做的是我

随机推荐

  • 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对项目进行打包 这样系统就会帮助你对各个微服务进行