1. 场景描述 java项目linux环境下快速部署,以前介绍过,今天主要结合linux的软连接,实现版本的快速切换(回滚),包含完整的start.sh与stop.sh,只需修改包名和路径即可运行,有类似需求的朋友可以参考下. 2.解决方案 该方案主要介绍快速部署与版本的快速切换(回滚). 2.1 创建文件夹 [ruanjianlaowang@t-laowang ~]# mkdir app [ruanjianlaowang@t-laowang ~]# cd app [ruanjianlaowan…
Java项目导出为jar包+导出第三方jar包+使用命令行调用+传参 一.打包 情况1:不需要向程序传参数,并且程序没有使用第三方jar包 Eclipse上导出jar: 然后选择一个java文件作为入库,需要带main()主函数: 情况2:向程序传参数,并且程序没有使用第三方jar包 这种情形下打包和情况1是一样的 情况3:程序使用了第三方jar包 这种情况下的打包要复杂一些,需要把第三方jar包一起导出,可以使用eclipse的插件fat jar,很简便,但是fat jar只支持eclipse…
本文转自http://www.cnblogs.com/dfcao/p/6147970.html#undefined 感谢作者 基本上每个跟数据库打交道的程序员(当然也可能是你同事)都会碰一个问题,MySQL误操作后如何快速回滚?比如,delete一张表,忘加限制条件,整张表没了.假如这还是线上环境核心业务数据,那这事就闹大了.误操作后,能快速回滚数据是非常重要的. binlog2sql快速回滚 首先,确认你的MySQL server开启了binlog,设置了以下参数: [mysqld] serv…
一.安装 Java 环境 1 下载 jdk 8 yum -y install java-1.8.0-openjdk java-1.8.0-openjdk-devel 设置 centos7 环境变量 vim /etc/profile # 并添加下面三行配置 export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.212.b04-0.el7_6.x86_64 export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar…
http://www.cnblogs.com/nexiyi/archive/2012/12/28/2837560.html http://dead-knight.iteye.com/blog/1841675 创建 mvn命令创建项目: 建一个 JAVA 项目: mvn archetype:create -DgroupId=com.demo -DartifactId=App 建一个 web 项目 : mvn archetype:create -DgroupId=com.demo -Dartifac…
由于dotnet项目的生产环境环境部署工具比较少,所以我使用jenkins作为生产环境的自动化部署工具. 既然有回滚操作,那么就会有部署操作:要实现回滚,先要实现部署的操作,我在jenkins搭建了一键从测试环境发布到正式环境的工具,部署的大致思路如下(详细的操作点这里,有详细节点配置和部署配置): 前提:安装jenkins的环境为master,每一个生产环境为slave,slave是实时连接到master的. 1.测试环境上使用了CCNET进行每次的代码变更编译部署,在测试环境上进行编译的版本…
就在刚才查看资料时候, 看见一句话, 写的特别好: 当我的才华撑不起我的梦想的时候, 应该安静下来学习 配上我最喜欢动漫的一个角色: 红莲 1. Git 初始化项目 1). 创建新的知识库 echo "# study_git" >> README.md git init git add README.md git commit -m "first commit" git remote add origin https://github.com/renfa…
1.备份 备份可以使用批处理命令解决,实际就是复制当前发布文件 ::备份文件夹名,使用当前时间 set foldername=%date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%%time:~6,2% ::发布目录 set publishfolder=D:\LastOne\PcApi ::文件夹不存在 创建 if not exist "%publishfolder%\Backup\" ( md "%publishfol…
查看虚拟机ID 1 2 [root@node1 ~]# nova list --all | grep wyl | dc828fed-1c4f-4e5d-ae84-795a0e71eecc | wyl | ac33d3bc8fe54f52a2cc822adec7fe62 | ACTIVE | - | Running | provider=192.168.16.13 | 1 2 创建快照 格式: 1 2 3 rbd snap create {pool-name}/{image-name}@{snap…
1.添加JDK    window-----> preferences 2.设置默认JDK版本 3.在项目上右键------>Properties…
chookie和session 你们公司的会话保持怎么做的? 1.开发做的:记录用户登陆的状态,将用户登陆状态保存到,redis服务器中,nfs,mysql. ​ 记录用户的登陆状态. ​ 通过登陆用户对应的userid和cookie结合,记录用户的状态;如果是保存在本地,那么在其它用户使用该机器的时候去更改cookie的userid就能登陆其它用户的登陆状态,这样很不安全. ​ 这样就引入了session. ​ 2.运维:因为开发没有写会话保持功能,我们公司使用的是nginx的upstream…
0 环境说明 主tomcat:192.168.0.112 备tomcat:192.168.0.183 haproxy+keepalived-1:192.168.0.156 haproxy+keepalived-2:192.168.0.157 git: 尚未部署 sonar-scanner:尚未部署 软件: jdk-8u144-linux-x64.tar.gz apache-tomcat-8.5.43.tar.gz haproxy-1.5.18-8.el7.x86_64.rpm keepalive…
目录 1.概述 2.项目实践 2.1.环境说明 2.2.Jenkins配置 2.2.1.修改Jenkins的运行用户 2.2.2.配置Jenkins用户和Gitlab的ssh-key 2.2.3.Jenkins的凭据配置 2.2.4.目标主机的一些设置 2.2.5.新建一个自由风格的任务进行如下配置 3.项目演示 3.1.发布操作 3.2.回滚操作 1.概述 关于jenkins和gitlab的部署,不多加赘述,网上的部署文档多了去了,不踩坑,不成长!这里只聊聊生产的一些实践实用.在关于php项目…
前言:上一篇通过rancher管理k8s,部署服务应用扩容,高可用,本篇介绍kubectl命令行部署高可用集群节点,测试升级.扩容等 1.测试环境:3节点k3s,使用其中2节点(ubuntunode1与ubuntunode2),node3暂不用 输入命令,查看节点状况 2.进入任意节点,使用kubectl命令行进行服务部署操作,我们这里用node1节点 新建一个.yaml文件,用于部署2个负载的应用,文件名称:springbootapp-2nodes.yaml 文件内容如下,kind节点使用De…
访问我的博客 使用 git 进行项目的版本控制时,肯定会遇到回滚版本的情况,回滚有两种,一种是本地仓库回滚,另外一种是远程仓库回滚.以下详细讲解两种回滚方式,本文主要讲解远程回滚,以及常见使用误区. 本地仓库回滚 本地回滚就很简单,只是要撤销 commit 信息即可.可以直接使用 Reset HEAD进行回滚. HEAD^ 是还原到上一个版本,HEAD^^ 是还原到上上一个版本. Reset Type 有三种: mixed 默认方式,只保留源码,回退commit和index信息 soft 回退到…
reset 命令只能将整个版本的代码一起回滚,需要使用checkout 命令,可以还原部分文件到某一版本 格式为:git checkout [<branch>] [file] 1.首先使用log 命令查看版本号 commit id 直接使用git log可以查看所有的变更集,也可以指定具体的文件,这样只查看修改了了这个文件的变更集.如下: git log E:/Workspaces/WebStormProject/mobile/resources/ios/splash/Default@2x~i…
最近在学习jenkins过程中整理了大量资料,都收录在<jenkins自动化工具使用教程>,但依然缺少一些具体实现细节. 这篇文章,介绍jenkins做集群回滚时的两个设计方案,让一键回滚到指定时间的历史版本操作更加容易. 1. 集群回滚效果图 如上图就是01和02服务器上的market站点的集群回滚 2. 两个实现方案 关键点是jenkins生成的包含时间信息的备份目录名要一致.比如: D:\BackUp\Demo\2019_01\Web.Demo_13_1350 即:**\年_月\项目名_…
一.前言 上一篇文章中对yaml文件格式进行了解,并对k8s中各种主要资源通过yaml创建时的定义模板.接来下就进一步学习k8s的各种特点.并应用在示例中. 接下来先实现.Net Core Api程序版本滚动升级.回滚,并在过程中进一步的对k8s进行了解 二.滚动升级 1.推送新版本服务镜像v3到docker hub. 2.实现k8s中滚动升级: 新建k8sweb-dep.yaml文件,用于创建Deployment资源: apiVersion: apps/v1 kind: Deployment…
#:gitlab状态 root@ubuntu:~# gitlab-ctl status run: alertmanager: (pid 13305) 215965s; run: log: (pid 13081) 215991s run: gitaly: (pid 13180) 215968s; run: log: (pid 12160) 216098s run: gitlab-monitor: (pid 13241) 215968s; run: log: (pid 12828) 216009s…
MySQL中有六种日志文件,分别是:重做日志(redo log).回滚日志(undo log).二进制日志(binlog).错误日志(errorlog).慢查询日志(slow query log).一般查询日志(general log),中继日志(relay log).其中重做日志和回滚日志与事务操作息息相关,二进制日志也与事务操作有一定的关系,这三种日志,对理解MySQL中的事务操作有着重要的意义.这里简单总结一下这三者具有一定相关性的日志. 重做日志(redo log) 作用: 确保事务的持…
一.回滚日志(undo log) 1.作用 保存了事务发生之前的数据的一个版本,可以用于回滚,同时可以提供多版本并发控制下的读(MVCC),也即非锁定读 2.内容 逻辑格式的日志,在执行undo的时候,仅仅是将数据从逻辑上恢复至事务之前的状态,而不是从物理页面上操作实现的,这一点是不同于redo log的. 3.什么时候产生 事务开始之前,将当前是的版本生成undo log,undo 也会产生 redo 来保证undo log的可靠性 4.什么时候释放 当事务提交之后,undo log并不能立马…
若因各种原因导致滚动更新⽆法正常进⾏,如镜像⽂件获取失败."⾦丝雀"遇险等,则应该将应⽤回滚到之前的版本,或者回滚到由⽤户指定的历史记录中的版本. Deployment控制器的回滚操作可使⽤"kubectl rollout undo"命令完成,例如,下⾯的命令可将myapp-deploy回滚⾄此前的版本: ~]$ kubectl rollout undo deployments myapp-deploy deployment.apps "myapp-dep…
摘要: 多年以后,你面对一个需要回滚的Git仓库,准会想起这篇博客. 某一天,用户跟我反馈,他不能分配任务了.我去看了一下Fundebug捕获的报错信息: 可知,出错原因是前端发送的请求参数有问题.这个悲伤的故事是这样的:后端同时修改了多个接口,但是前端没有及时修改对应的接口调用. 这个问题不难解决,回滚代码就好了,但是,Git如何回滚代码呢?我花了点时间研究了一下. 测试仓库:Fundebug/git-rollback 我写了一个非常简单的测试仓库,master分支只有3个commit,每个c…
环境描述: 服务器系统:CentOS7 64位操作系统 面板版本:宝塔6.9.4 Nginx版本:Nginx 1.16 Tomcat版本:Tomcat7 JDK版本:1.8.0_121 环境部署就不用多介绍了,直接在面板上安装Nginx和Tomcat即可,另外注意要放行的默认端口有80(Nginx使用).8080.8009(Tomcat使用)等端口 然后打开网站:添加网站并将网站目录指向java环境的目录 将站点文件上传到项目部署目录进行部署 并且在Tomcat这里选上使用Tomcat 然后打开…
  前2天把git练了下,敲了很多命令,也借助图形界面增强自己的理解,乘着余热把linux在熟悉下.然后想起以前婷主有让我帮忙搭建的阿里云服务器,所以就想自己试着在阿里云的linux上搭建自己的javaEE项目 大致步骤有: 1.先从阿里云上购买一台linux云服务器 2.安装shell,xftp 3.下载linux版的jdk,tomcat,mysql 4.linux上敲命令安装 5.安装完成测试 6.通过导入阿里云镜像快速部署javaEE项目(前面5部是基础) 1.linux目录下主要4个文件…
 转载:http://www.cnblogs.com/EasonJim/p/6295372.html Jenkins使用FTP进行一键部署及回滚2(Windows)(项目实践) 前提: 这一篇是继上一篇http://www.cnblogs.com/EasonJim/p/6092938.html的真实项目实践. 思路和大致实现步骤请参照上一篇文章. 注意:这篇文章涉及到两台服务器:1为测试服务器.2为正式服务器.且,两台服务器都必须安装了jenkins. 注意2:这里所说的一键部署是指从测试服务器…
1.Java项目部署基本概述:  1.什么是Java项目?  2.为什么Java项目需要使用Maven编译?  3.手动实现Java项目构建?  4.手动实现Java项目架构图? 源码包   jar包  war包    1.JAVA源码包--编译--> war --编译的过程中需要依赖--> jar包    2.JAVA源码包也可以编译生成 jar包  (需要被依赖才会启用   -->不能独立运行)    3.有的jar可以独立运行   java -jar xx.jar 手动部署Java…
一:两种部署包: 部署之前先说下两种包,java项目部署到服务器一般有用war包的,也有用jar包的,微服务spring-cloud普及后大部分打包都是jar,部署之前先搞清楚自己要打war包还是jar包,下面小介绍两种包的区别: spring boot既可以打成war发布,也可以找成jar包发布.说一下区别: jar包:直接通过内置tomcat运行,不需要额外安装tomcat.如需修改内置tomcat的配置,只需要在spring boot的配置文件中配置.内置tomcat没有自己的日志输出,全…
5分钟快速掌握Jenkins,项目一键自动部署 目录 前言 Jenkins是什么? Jenkins环境安装搭建 Jenkins基本使用介绍 Jenkins快速构建项目,项目自动化部署 学习总结 前言 在开发过程当中,部署项目也算是基本操作了,部署方式多种多样,花费的时间也是不尽相同.项目部署大致需要以下几步:编译,打包,上传,kill已有进程,启动项目.单一架构,常规部署方式,熟练的话估摸着也需要3分钟左右:如果项目包比较大,上传替换,可能需要5-10分钟左右.如果项目改动频繁,一天花费在部署上…
前言 技术学习是一个总结.纠错.触类旁通的过程,而不是单纯重复练习的过程,如果你问一个做过5年以上Java的老码农,他们很多人都会有很强的"搬砖感",这种"搬砖感"其实就是对Java项目的触类旁通.看出套路来了,比如: (1)绝大部分Java应用系统,绝大部分功能归根到底都是数据库的"CRUD增删改查",中间加了一些数据的校验.转换和逻辑运算,不同之处就是有的功能流程拐弯多一些.性能要求高一些.界面交互炫酷一些等. (2)绝大部分应用系统,核心架…