部署和后期维护


SecureRandom产生随机数性能优化 -Djava.security.egd=file:/dev/./urandom

Docker基础知识

[root@localhost ~]$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
centos latest 1e1148e4cc2c 2 weeks ago 202MB
centos v1 1e1148e4cc2c 2 weeks ago 202MB
centos v2 1e1148e4cc2c 2 weeks ago 202MB

普通部署

jar包部署

  1. 打包:在项目根目录打包 mvn package
  2. 运行:将jar包上传到linux工作目录,然后运行java -jar xx.jar
  3. 注册服务:代码配置,创建软连接,ln -s /home/work/order.jar /etc/init.d/order
  4. 启动服务:service order start
  5. 开机启动:chkconfig order on

war包部署

基于Docker部署

编写启动脚本

在src/main/docker
runboot.sh

## 根据启动顺序调整sleep的时间
sleep 10    
java -Djava.security.egd=file:/dev/./urandom -jar /app/app.jar

编写Dockerfile

在src/main/docker

FROM java:8                            //设置依赖容器
VOLUME /tmp                            //保存和共享容器间的数据
RUN mkdir /app                         //创建目录 
ADD config-1.0.0-SNAPSHOT.JAR /app/app.jar 
ADD runboot.sh /app                    //拷贝启动脚本到指定目录,并自动解压
RUN bash -c 'touch /app/app.jar'       //修改文件创建时间和修改时间  
WORKDIR /app                           //指定工作目录,如果目录存在cd到指定目录,不存在则创建并cd到指定目录
RUN chmod a+x runboot.sh               //修改启动脚本权限
EXPOSE 8080                            //设置暴露端口
cmd /app/runboot.sh                    //指定默认的容器主进程的启动命令的,若不指定就是/bin/bash
## 注释
bash xx.sh使用shell运行脚本(在当前目录找脚本,然后在path路径找-参数0为脚本,参数1为参数)
bash -c 读取参数0的shell命令,以及后面的参数

为了能够保存(持久化)数据以及共享容器间的数据,Docker提出了Volume的概念。简单来说,Volume就是目录或者文件,它可以绕过默认的联合文件系统,而以正常的文件或者目录的形式存在于宿主机上
Docker镜像是由多个文件系统(只读层)叠加而成。当我们启动一个容器的时候,Docker会加载只读镜像层并在其上(译者注:镜像栈顶部)添加一个读写层。如果运行中的容器修改了现有的一个已经存在的文件,那该文件将会从读写层下面的只读层复制到读写层,该文件的只读版本仍然存在,只是已经被读写层中该文件的副本所隐藏。当删除Docker容器,并通过该镜像重新启动时,之前的更改将会丢失。在Docker中,只读层及在顶部的读写层的组合被称为Union File System(联合文件系统)。

在开发机器编译docker镜像到服务器

在我们持续集成过程中,项目工程一般使用 Maven 编译打包,然后生成镜像,通过镜像上线,能够大大提供上线效率,同时能够快速动态扩容,快速回滚,着实很方便
过简单的配置自动生成镜像并推送到仓库中,默认将镜像编译到localhost,使用DOCKER_HOST修改到指定远程Linux服务器

<build>
    <plugins>
         <plugin>
            <groupId>com.spotify</groupId>
            <artifactId>docker-maven-plugin</artifactId>
            <version>1.0.0</version>
            <configuration>
                <imageName>mavendemo</imageName>
                <dockerDirectory>${basedir}/docker</dockerDirectory> <!-- 指定 Dockerfile 路径-->
                <!-- 这里是复制 jar 包到 docker 容器指定目录配置,也可以写到 Docokerfile 中 -->
                <resources>
                    <resource>
                        <targetPath>/ROOT</targetPath>
                        <directory>${project.build.directory}</directory>
                        <include>${project.build.finalName}.jar</include>
                    </resource>
                </resources>
            </configuration>
        </plugin>   
    </plugins>
</build

mvn clean package docker:build 只执行 build 操作
mvn clean package docker:build -DpushImage 执行 build 完成后 push 镜像
mvn clean package docker:build -DpushImageTag 执行 build 并 push 指定 tag 的镜像

编译运行docker容器

  1. 编译镜像:docker build -t bin/work/order
  2. 运行镜像:docker run -d name order -p 8080:8080 bin/work/order

DockerCompose定义运行多容器

Docker-Compose项目负责对Docker容器集群的快速编排,将所管理的容器分为三层,分别是工程,服务以及容器
一个工程中可包含多个服务,一个服务可包括多个容器实例
Docker-Compose通过docker-compose.yml定义一组相关联的应用容器为一个项目(project)。
Docker-Compose标准模板文件应该包含version、services、networks 三大部分

discovery:
  image:"discory:latest"
  hostname:discovery
  name:discovery
  ports:"8080:8080"
————————————————————————————————————————————————————————————————————————————————
config:
  image:"config:latest"
  hostname:config
  name:config
  links:
    - discovery
  enveronment:
    EUREKA_HOST:discovery
    EUREKA_PORT:8080
   port:"8081:8081"
————————————————————————————————————————————————————————————————————————————————————
order:
  image:order:latest
  hostname:order
  links:
   - discovery
   - config
  environment:
    EUREKA_HOST:discovery
    EUREKA_PORT:8080
  ports:
    - "8082:8082"
————————————————————————————————————————————————————————————————————————————
gateway:
  image:gateway:latest
  hostname:gateway
  links:
    - discovery
    - config
    - order
  environment:
    EUREKA_HOST:discovery
    EUREKA_PORT:8080
  ports:
    -"80:80"

启动项目

docker-compose up -d

日志分析处理

Jenkins自动化运维

java -jar jenkins.war --httpPort=8081 指定端口启动jenkins
netstat -aon| findstr “4444” 查看占用端口

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
海康iSecure Center综合安防管理平台是一种集视频监控、报警管理、门禁控制、人员定位等功能于一体的安防管理平台。服务端的部署后期配置维护是确保平台正常运行的重要环节。 首先,服务端的部署需要选择一台合适的服务器,并根据系统要求安装操作系统和相关的软件环境。安装完成后,需要对服务器进行网络配置,确保能够正常与客户端和其他设备进行通信。 其次,需要进行系统初始化配置。配置包括设置管理员账号、密码和权限,同时需要对设备进行注册与管理,包括添加摄像头、报警设备等。另外,还需要进行相关策略设置,如报警触发条件、录像存储路径等。 在部署完成后,需要定期进行系统的维护和更新。维护包括系统性能监测、日志管理和设备状态监控等,保证系统的稳定运行。同时,也需要根据实际需求进行配置的修改和更新,如添加新的设备、调整报警策略等。 此外,还需要进行定期的备份和安全管理。定期备份系统配置文件、历史数据和日志,以防止数据丢失。同时,需保障系统的安全性,进行网络安全配置、加固系统漏洞等,防范潜在的安全威胁。 总之,海康iSecure Center综合安防管理平台服务端的部署后期配置维护对于保障平台正常运行和数据安全至关重要。通过合理规划和有效运维,将能够为用户提供稳定可靠的安防管理服务。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值