在发布的过程中不影响用户的使用,系统不会因发布而暂停对外服务,不会造成用户短暂性无法访问2,什么叫灰度
发布后让部分用户使用新版本,其它用户使用旧版本,逐步扩大影响范围,最终达到全部更新的发布方式 。 注意: 只有一台服务器时候,不存在灰度发布,只有平滑发布;服务器数量大于一台时候,可以实现灰度发布。二:蓝绿发布、灰度发布和滚动发布 1,蓝绿发布
需要准备正常业务使用资源的两倍以上服务器,项目逻辑上分为AB组,在项目系统时,首先把A组从负载均衡中摘除,进行新版本的部署,B组仍然继续提供服务。两套环境交替升级,旧版本保留一定时间便于回滚。2,灰度发布
灰度发布只升级部分服务,即让一部分用户继续用老版本,一部分用户开始用新版本。根据比例将老版本升级,例如80%用户访问是老版本,20%用户访问是新版本。3,滚动发布
滚动发布是指每次只升级一个或多个服务,升级完成后加入生产环境,不断执行这个过程,直到集群中的全部旧版本升级新版本。按批次停止老版本实例,启动新版本实例。4,小结
三种方式均可以做到平滑式升级,在升级过程中服务仍然保持服务的连续性,升级对外界是无感知的。那生产上选择哪种部署方法最合适呢?这取决于哪种方法最适合你的业务和技术需求。如果你们运维自动化能力储备不够,肯定是越简单越好,建议蓝绿发布,如果业务对用户依赖很强,建议灰度发布。如果是K8S平台,滚动更新是现成的方案,建议先直接使用。三,nexus搭建maven私服 1,nexus简介
Nexus私服是架设在局域网的一种特殊的远程仓库,目的是代理远程仓库及部署第三方构件。有了私服之后,当 Maven 需要下载构件时,直接请求私服,私服上存在则下载到本地仓库;否则,私服请求外部的远程仓库,将构件下载到私服,再提供给本地仓库下载。2,maven简介
Maven是一个采用纯Java编写的开源项目管理工具,Maven可以管理项目的整个生命周期,包括清除、编译,测试,报告、打包、部署等等。目前Apache下绝大多数项目都已经采用Maven进行管理. 而Maven本身还支持多种插件, 可以方便更灵活的控制项目。3,安装maven
1.下载maven并解压安装 官方文档下载地址https://archive.apache.org/dist/maven/binaries/ [root@192 ~]#wget https://archive.apache.org/dist/maven/binaries/apache-maven-3.0.3-bin.tar.gz [root@192 ~]#tar xfz apache-maven-3.0.3-bin.tar.gz -C /usr/local [root@192 ~]#cd /usr/local [root@192 ~]#mv apache-maven-3.0.3 maven 2,下载并解压安装jdk(maven运行需要借助jak) 官方文档下载地址:https://www.oracle.com/java/technologies/javase/jdk17-archive-downloads.html [root@192 ~]#wget https://download.oracle.com/java/17/archive/jdk-17.0.3.1_linux-aarch64_bin.tar.gz [root@192 ~]#tar xf jdk-17.0.3.1_linux-aarch64_bin.tar.gz -C /usr/local [root@192 ~]#mv /usr/local/jdk-17.0.3.1 /usr/local/java 3,设置环境变量 [root@192 ~]#vim /etc/profile JAVA_HOME=/usr/local/java MAVEN_HOME=/usr/local/maven PATH=$JAVA_HOME/bin:$MAVEN_HOME/bin:$PATH export JAVA_HOME MAVEN_HOME PATH [root@192 ~]#source /etc/profile 4,验证java和maven安装 [root@192 ~]# java -version java version "17.0.3.1" ... [root@192 ~]#mvn -version ... version: "3.10.0-693.el7.x86_64", arch: "amd64", family: "unix"4,安装部署nexus
由于专业版的nexus是收费的,所以我下载的是开源版 Nexus OSS,下载地址为 : https://help.sonatype.com/repomanager3/download/download-archives---repository-manager-3 1,下载解压安装 [root@192 ~]#wget http://download.sonatype.com/nexus/3/nexus-3.24.0-02-unix.tar.gz [root@192 ~]#tar xfz nexus-3.24.0-02-unix.tar.gz -C /usr/local 解压后会多出两个目录,nexus-3.24.0-02和sonatype-work [root@192 ~]#cd nexus-3.24.0-02/bin/ [root@192 ~]#./nexus start 进入游览器访问:http://192.168.222.129:8081 网页加载需要点时间....
注意 :
点击右上角的sign in登录,新版首次登录需要
cat /usr/local/sonatype-work/nexus3/admin.password
获取密码。
1,仓库介绍按图中标识顺序点击,就可以看到有这些仓库,现在分别介绍它们,分为三种类型: proxy:是远程仓库的代理。比如说在nexus中配置了一个central repository的proxy,当用户向这个proxy请求一个artifact,这个proxy就会先在本地查找,如果找不到的话,就会从远程仓库下载,然后返回给用户,相当于起到一个中转的作用。 Hosted:是宿主仓库,用户可以把自己的一些构件,deploy到hosted中,也可以手工上传构件到hosted里。比如说oracle的驱动程序,ojdbc6.jar,在central repository是获取不到的,就需要手工上传到hosted里,一般用来存放公司自己的jar包; Group:是仓库组,在maven里没有这个概念,是nexus特有的。目的是将上述多个仓库聚合,对用户暴露统一的地址,这样用户就不需要在pom中配置多个地址,只要统一配置group的地址就可以了右边那个Repository Path可以点击进去,看到仓库中artifact列表。不过要注意浏览器缓存,当你的项目希望在多个repository使用资源时就不需要多次引用了,只需要引用一个group即可。 maven-public:maven-central、maven-release和maven-snapshot三个库的合集。 maven-release:用来存放release版本的jar包。 maven-snapshot:用来存放snapshot版本的jar包。2,创建haha库 3,将新建的haha库加入maven-public管理,点击save保存
至此,创建仓库完成!!!
注意:用户名lisi,密码:123登录后,操作和管理员操作一样。



