docker 部署maven服务器,并将代码发布到maven服务器,并kie-server关联

news2024/11/8 18:49:51

书接上文
已经搭建好了kie-server的docker swarm集群. 没有搭建business-central是集群是因为这是个页面的可视化的开发环境 一来面向开发人员,不需要集群部署 二来他的数据是放在本地的git服务器上的. 所以每个node的数据不会统一 三来部署好了之后页面也打不开… 四来business-central是只可以有一个kie-server的远程服务器. 天生就不能集群部署,五来,搭建kie-server的集群是是不能使用 --link参数来指定对应的business-central的, 也就是说搭建的kie-server集群暂时不能指定business-central.

ok结论是 kie-server是三个node的集群, business-central不集群部署,只部署一台服务器. 而且business-central与kie-server不再进行连接. 也就是b 不指定kie-server远程服务器 . 现状暂时如此,以下是讲如此架构下的发布流程.

kie-server对外暴露了一个接口, 用于发布项目.

get请求 http://xxxx.104:8180/kie-server/services/rest//server/containers/testCreate
body:在这里插入图片描述

每个node是有本地maven库的, 会根据请求的三个参数从maven本地库找到这个jar 然后部署成一个kie-server里的一个容器. 容器就是kie-server对外提供服务的一个服务器之下的一个最高的组织方式.

ok为了验证可用性 手动把jar分别放进每个node里 并分别执行cp命令将jar从服务器的临时目录copy到容器里maven本地库下的指定目录里
在这里插入图片描述
结果是确实发送了get命令后会部署成功. ok验证通过. 但问题也很明显. 发布过程过于手动化, 对于开发人员来说很容易造成误操作, 比如某个node遗漏了cp命令, 还有一个问题 更严重, 因为已经利用了swarm的特性 已经是负载均衡的了, 所以put请求到了哪个node是不确定的, 需要打开日志发送多次put请求 确保每个node都发布成功了. 这个操作很…很蠢

ok在上一步的基础上更进一步假设如果每个node都连接同一个远程maven库, 那就只需要将代码发布到这个远程库, 即可以达到让每个node都能接受到这个资源从而进行发布, 就不需要人工把jar copy到各个node了./opt/jboss/.m2/repository目录会自动建的, 下面有setting.xml配置文件 文件内容很有帮助, 在这里插入图片描述
首先setting.xml是maven的配置文件 配置了服务器在哪等等信息. 注释的大致意思是
KIE_MAVEN_REPO - Defaults to http://localhost:8080/drools-wb/maven2
KIE_MAVEN_REPO_USER - Defaults to admin
KIE_MAVEN_REPO_PASSWORD - Defaults to admin
文件使用环境变量来配置, 三个关键的环境变量如上.
也就是说我们创建 kie-server集群的时候如果指定了环境变量 也就可以给每个node指定他的maven服务器地址. 很nice

ok下一步要开一个maven远程服务器 ,并验证可以将本地代码install的jar报 deploy到远程maven服务器.
docker run -d -p 8001:8081 --name nexus -v /root/nexus-data:/var/nexus-data --restart=always sonatype/nexus3
第一步利用docker创建一个maven服务器的容器. docker真是越用越好用.
然后http://172.16.250.104:8001 就可以看到maven的管理页面了, 需要密码
在这里插入图片描述
进入容器根目录, 下面有nexux-date目录, 里面原来有个admin.password的文件. 打开里面就是admin 的密码 .因为登录后改密码之后这个默认密码的文件消失了, 所以截图里没有

在这里插入图片描述
主要是复制下这两个的url

然后本地pc打开 IDEA, 设置 maven /user serttings file override . 然后编辑本地的setttings.xml 全文如下:

<?xml version="1.0" encoding="UTF-8"?>
 
<settings xmlns="http://maven.apache.org/SETTINGS/1.2.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.2.0 https://maven.apache.org/xsd/settings-1.2.0.xsd">
  <pluginGroups> 
  </pluginGroups>
  <proxies>
  </proxies>
  <servers>
 <server>
  <id>nexus-releases</id>
  <username>admin</username>
  <password>9b1f9129-0b87-460c-9435-37a754198655</password>
 </server>
 <server>
  <id>nexus-snapshots</id>
  <username>admin</username>
  <password>9b1f9129-0b87-460c-9435-37a754198655</password>
 </server>
 </servers>
  <mirrors>
    <mirror>
      <id>maven-default-http-blocker</id>
      <mirrorOf>external:http:*</mirrorOf>
      <name>Pseudo repository to mirror external repositories initially using HTTP.</name>
      <url>http://0.0.0.0/</url>
      <blocked>true</blocked>
    </mirror>
  </mirrors>
   <profiles>
  <profile>
  <id>nexus</id>
  <properties>
   <altSnapshotDeploymentRepository>
    nexus-snapshots::default::http://172.16.250.104:8001/repository/maven-snapshots/
   </altSnapshotDeploymentRepository>
   <altReleaseDeploymentRepository>
   nexus-releases::default::http://172.16.250.104:8001/repository/maven-releases/
   </altReleaseDeploymentRepository>
  </properties>
 </profile>
 </profiles>
 <activeProfiles>
 <activeProfile>nexus</activeProfile>
 </activeProfiles>
</settings>

关键信息是server和两个url.
maven的配置好了, 然后是项目代码的配置,
对项目来说 ,因为项目用的maven 的配置文件里有了profile nexus, 所以在IDEA里打开项目可以看到profiles nexus是固定选中的在这里插入图片描述
打开项目文件里的 pom.xml 顶级节点下添加如下代码

<distributionManagement>
		<!--正式版本-->
		<repository>
			<!-- 在settings.xml中<server>的id-->
			<id>nexus-releases</id>
			<url>http://172.16.250.104:8001/repository/maven-releases/</url>
		</repository>

		<!--快照版本-->
		<snapshotRepository>
			<id>nexus-snapshots</id>
			<url>http://172.16.250.104:8001/repository/maven-snapshots/</url>
		</snapshotRepository>
	</distributionManagement>

ok 这样项目在执行 maven deploy命令的时候就会把install的时候生成的jar发布到远程服务器.根据版本号是否是快照 决定发布到正式还是快照的repostitory, 效果如下
在这里插入图片描述
这时候就可以在maven的后台管理页面看到刚deploy的jar 在这里插入图片描述
ok至此maven服务器和发布流程已经验证通过, 结束.
下一步是kie-server在部署集群的时候设置环境变量, 让集群中的每个node都连上maven服务器.
还有个问题没有解决, 即put发布命令是被负载均衡了的, 怎么保证每个节点都能确保发布.可能要发布的时候指定一下网络,不用ingress 发布好了之后再改成ingress ? 这要考虑下, 不过还好问题不大

待续

ps: docker还挺有意思的

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/141922.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

推荐系统入门学习(一)【小白入门系列】

推荐系统入门学习&#xff08;一&#xff09; 前言&#xff1a;本博客不会采取大量的难懂的语言来介绍推荐系统&#xff0c;只会用一些简单的方式来介绍推荐系统&#xff0c;祝学习愉快&#xff01; 1、推荐系统的概念 简单的说&#xff0c;推荐系统则是将产品推荐给用户的一…

判断点在多边形内部

一、问题描述已知点P(x,y)和多边形polygon&#xff0c;判断点P(x,y)是否在多边形内部。二、解决方案射线法以点P为端点&#xff0c;向左方作射线L&#xff0c;由于多边形是有界的&#xff0c;所以射线L的左端一定在多边形外部。考虑沿着L从无究远处开始自左向右移动&#xff0c…

Android 更改鼠标样式

定义风格 鼠标风格定义位置&#xff1a;\frameworks\base\core\res\res\values\styles.xml 系统定义了两套鼠标的风格&#xff0c;一套是默认&#xff0c;一套是放大的图标的风格&#xff0c;在下面增加自己的鼠标风格图标 <style name"BluePointer"><ite…

Springboot Controller接口默认自动填充 业务实体参数值

前言 今天看有小伙伴求救&#xff1a; 我还是一贯如此&#xff0c; 有人不明白&#xff0c;没玩过HandlerMethodArgumentResolver 。 那么很可能不止他一个人&#xff0c; 那么我就有必要出手。 不多说&#xff0c;开搞。 正文 快速模拟出这个使用场景 &#xff1a; 假如有好多…

Allegro174版本新功能介绍之动态铜皮Fast模式设置

Allegro174版本新功能介绍之动态铜皮Fast模式设置 Allegro升级到了174版本后,相比于172版本把动态铜皮的FAST模式优化的更为到位,据介绍,铜皮smooth的时间可以缩短非常多,尤其是针对于数据量非常大PCB,效率提升不少,但是在出生产文件的时候,铜皮还是必须Smooth,见下面o…

Odoo 16 企业版手册 - 库存管理之作业类型

作业类型 Odoo库存模块是有效管理所有类型库存操作的最佳选择。为公司的库存管理提供适当的支持对于完美地运营业务至关重要。当我们谈论Odoo是库存管理的完美解决方案时&#xff0c;您会好奇它提供的功能。在本节中&#xff0c;我们将使用专用库存模块详细介绍Odoo管理的库存操…

Vue(七) 生命周期和组件(一)

目录 1. 生命周期 1.1 引出生命周期 1.2 生命周期——挂载流程 1.3 生命周期——更新流程 1.4 生命周期——销毁流程 1.5 总结 2. 非单文件组件 2.1 对组建的理解 2.2 非单文件组件 2.3 组件的注意点 2.4 组件的嵌套 2.5 VueComponent构造函数 1. 生命周期 生命周期…

正版授权|FastStone Image Viewer 图像编辑转换浏览器软件,个人免费的图像浏览器、转换器和编辑器。

前言&#xff1a;快速、稳定、用户友好的图像浏览器、转换器和编辑器。它具有一系列不错的功能&#xff0c;包括图像查看、管理、比较、红眼去除、电子邮件、调整大小、裁剪、修饰和颜色调整。以下是软件页面。 FastStone Image Viewer 是一个快速、稳定、用户友好的图像浏览器…

软件安全测试需要考虑哪些问题?看看专业软件测评中心怎么说

互联网信息时代&#xff0c;软件产品为我们的生活和工作中带来了极大的便利。我们使用的软件都有包含个人资料以及各类信息等安全因素&#xff0c;因此软件的安全问题是用户最为关注的话题之一。可以有效保障软件产品安全的的关键手段便是软件安全测试&#xff0c;那么在进行软…

力扣sql入门篇(九)

力扣sql入门篇(九) 1 股票的资本损益 1.1 题目内容 1.1.1 基本题目信息 1.1.2 示例输入输出 1.2 示例sql语句 # 每个用户的所有Sell的price值减去Buy的price值就可以了 SELECT e.stock_name,sum(e.price) capital_gain_loss FROM ( SELECT stock_name,operation,operation…

解决可见性的方案有哪几种,你都知道吗???

1. 前言 上次【保证原子性的几种方式&#xff0c;你都知道吗&#xff1f;&#xff1f;&#xff1f;】 经过一顿大杂烩后&#xff0c;列举了几种原子性的解决方案。这次我们继续上次的话题&#xff0c;我们来说说可见性的解决方案。废话不多说&#xff0c;让我们赶快开始吧。 2.…

【阶段二】Python数据分析Pandas工具使用10篇:探索性数据分析:数据的检验:正态性检验

本篇的思维导图: 探索性数据分析:数据的检验 数据检索,则是对数据深层次的探索或挖掘,用于验证数据是否服从某种假设,这部分内容将以数据的正态性检验、卡方检验和t检验为例,结合Python讲解具体的使用方法。 正态性检验 统计学中的很多模型或检验都需要…

java旅游日志博客系统旅行记录系统

简介 记录个人旅游动态日志的系统&#xff0c;也可以用来做博客系统&#xff0c;主页可以发布旅游日志&#xff0c;关注博主&#xff0c;给博主留言&#xff0c;管理评论&#xff0c;博文点赞&#xff0c;个人主页。 演示视频 https://www.bilibili.com/video/BV1rv41147W1/?…

(深度学习快速入门)第三章第三节1:深度学习必备组件之数据集处理和参数初始化

文章目录一&#xff1a;数据集的处理&#xff08;1&#xff09;数据集划分&#xff08;2&#xff09;数据集验证&#xff08;3&#xff09;标准化和归一化二&#xff1a;模型参数的初始化&#xff08;1&#xff09;梯度消失和梯度爆炸&#xff08;2&#xff09;模型参数初始化方…

Kafka概述

Kafka入门-1 视频资料&#xff0c;b站&#xff1a;https://www.bilibili.com/video/BV1eD4y1C7uM/?spm_id_from333.788.recommend_more_video.14&vd_source37596bc6f952081640b3f38ea9f6a2cb 深入理解 Kafka: 核心设计与实践原理。PDF 书资料&#xff1a; https://book.…

P8第一讲(选修):反向传播Backpropagation

8. 第 1 讲&#xff08;选修&#xff09;&#xff1a;反向传播_哔哩哔哩_bilibili Gradient Descent neual work基本架构已经学过了 backpropagation(反向传播)可以帮助我们有效的进行渐变迭代计算(帮助计算梯度)。 假设网络有一大堆参数&#xff1a; 首先选一个初始的参数&…

零基础多图详解图神经网络(GNN/GCN)【论文精读】

原文链接&#xff1a; A Gentle Introduction to Graph Neural Networks (distill.pub) 我们不仅仅关系整个图的架构&#xff0c;其实我们更关心的是每个顶点每条边和整个图所表示的信息。 我们如何把我们想要的信息表示成以上这些向量&#xff0c;以及这些向量是否能够通过数据…

uni-app打开第三方地图软件进行导航

最近在开发字节小程序的过程中遇到地图导航的需求&#xff0c;相信大家也会遇到所以我为大家整理了一篇干货内容。 下面是我整理的代码案例---------记得喝水&#xff08;太“干”了&#xff0c;复制就能用&#xff09;。 效果图如下&#xff1a; 1.点击图标弹出弹框进行选择…

数据结构与算法基础——算法分析(1)

算法的定义 算法&#xff1a;对特定问题的求解方法和步骤的描述&#xff0c;在计算机中&#xff0c;他是指令的有限集合。 举例&#xff1a;求解一元二次方程的根 描述算法的基本方式&#xff1a; &#xff08;1&#xff09;自然语言 &#xff08;2&#xff09;流程图 &…

CSS3 弹性盒子(flex、flex-direction属性、flex-wrap属性、align-items属性、align-content属性)详解

文章目录flexflex-direction 属性flex-wrap 属性align-items 属性align-content 属性的使用flex 在 CSS3 中给 display 属性增加了新的属性值 flex&#xff0c;如果一个元素被设置 display:flex&#xff0c;说明该元素为弹性布局&#xff0c;也就是个弹性盒子。 flex 主要由两…