Jmeter 基于Docker 实现分布式测试

基于Docker 实现分布式测试

  • 制作Jmeter基础镜像
  • 制作工作节点镜像
  • 启动工作节点
  • 启动控制节点
  • 遇到的问题

使用Docker 部署Jmeter非常方便,可以省略软件的安装以及配置,比如jdk、jmeter。需要部署多个工作节点可以节省时间。

在这里插入图片描述

  1. 控制节点(Master-主节点)只有一个,可以使用图形化的界面,方便操作
  2. 工作节点(Slave-从节点)使用Docker部署Jmeter镜像,工作节点的数量越多越好。
  3. 控制节点使用RMI 调用工作节点
  4. 控制节点测试计划设置的线程数量约等于工作节点宿主机能同时工作的线程数,这样能真实模拟用户同时发起的请求,压测的结果也准确些

制作Jmeter基础镜像

  1. 下载jmeter安装包 https://archive.apache.org/dist/jmeter/binaries/apache-jmeter-5.6.3.tgz
  2. 编写 Dockerfile
FROM openjdk:8-jdk-alpine3.9
ARG JMETER_VERSION=5.6.3# 设置工作目录
WORKDIR /opt/jmeter# 复制 Jmeter
COPY apache-jmeter-${JMETER_VERSION}.tgz   ./# 安装
RUN tar -xvzf apache-jmeter-$JMETER_VERSION.tgz \&& rm apache-jmeter-$JMETER_VERSION.tgz# 设置环境变量
ENV JMETER_HOME /opt/jmeter/apache-jmeter-$JMETER_VERSION/
ENV PATH="$JMETER_HOME/bin:${PATH}"
  1. 文件目录关系如下
root@ubuntu:/home/chengdu/jmeter/docker# tree
.
├── apache-jmeter-5.6.3.tgz
├── Dockerfile
└── worker└── Dockerfile.worker
  1. 执行编译镜像命令
docker build -t jmeter:5.6.3 .
  1. 查看镜像是否编译成功
root@ubuntu:/home/chengdu/jmeter/docker# docker images|grep jmeter
jmeter                   5.6.3             37a73dacbe58   4 hours ago     342MB
jmeter-5.6.3             worker            80ae9383e488   4 hours ago     342MB

制作工作节点镜像

基于第一步的基础镜像制作

FROM jmeter:5.6.3# 默认使用1099端口,可以用参数覆盖
ARG RMI_PORT=1099
ARG LOCAL_PORT=50000ENTRYPOINT $JMETER_HOME/bin/jmeter-server \-Dserver_port=${RMI_PORT} \-Dserver.rmi.localport=${LOCAL_PORT} \-Djava.rmi.server.hostname=${HOST_IP} \-Jserver.rmi.ssl.disable=true

保存为 Dockerfile.worker,运行编译镜像命令

docker build -f Dockerfile.worker -t jmeter-5.6.3:worker .

启动工作节点

启动3个工作节点,注意,HOST_IP 变量可以填写宿主机的IP确保控制节点的网络能当前的宿主机

docker run -p 1099:1099 -p 50000:50000 -e RMI_PORT=1099 -e LOCAL_PORT=50000 -e HOST_IP=192.168.230.128 -it -d --name jmeter-worker-01 jmeter-5.6.3:workerdocker run -p 1100:1100 -p 50001:50001 -e RMI_PORT=1100 -e LOCAL_PORT=50001 -e HOST_IP=192.168.230.128 -it -d --name jmeter-worker-02 jmeter-5.6.3:workerdocker run -p 1101:1101 -p 50002:50002 -e RMI_PORT=1101 -e LOCAL_PORT=50002 -e HOST_IP=192.168.230.128 -it -d --name jmeter-worker-03 jmeter-5.6.3:worker

查看是容器否启动成功了 docker ps
在这里插入图片描述

启动控制节点

  1. 修该 jmeter.properties 的 remote_hosts 配置
remote_hosts = 192.168.230.128:1099,192.168.230.128:1100,192.168.230.128:1101
  1. 启动控制节点,windows 直接点击 jmeter.bat,启动成功之后会看到3个配置的节点
    在这里插入图片描述
  2. 点击远程启动所有
  3. 在容器中查看执行日志
    docker exec -it 98300e4cdea0 /bin/sh 进入容器shell 终端,可以看到有一个日志文件 jmeter-server.log
root@ubuntu:/home/chengdu/jmeter/docker/worker# docker exec -it 98300e4cdea0 /bin/sh
/opt/jmeter # ls
apache-jmeter-5.6.3  jmeter-server.log
/opt/jmeter # tail -200f jmeter-server.log
tail: invalid number '200f'
/opt/jmeter # tail -200 jmeter-server.log
2024-02-03 08:26:26,214 INFO o.a.j.u.JMeterUtils: Setting Locale to en_EN
2024-02-03 08:26:26,295 INFO o.a.j.JMeter: Loading user properties from: /opt/jmeter/apache-jmeter-5.6.3/bin/user.properties
2024-02-03 08:26:26,296 INFO o.a.j.JMeter: Loading system properties from: /opt/jmeter/apache-jmeter-5.6.3/bin/system.properties
2024-02-03 08:26:26,296 INFO o.a.j.JMeter: Setting System property: server_port=1099
2024-02-03 08:26:26,297 INFO o.a.j.JMeter: Setting System property: server_port=1101
2024-02-03 08:26:26,297 INFO o.a.j.JMeter: Setting System property: server.rmi.localport=50002
2024-02-03 08:26:26,297 INFO o.a.j.JMeter: Setting System property: java.rmi.server.hostname=192.168.230.128
2024-02-03 08:26:26,297 INFO o.a.j.JMeter: Setting JMeter property: server.rmi.ssl.disable=true
2024-02-03 08:26:26,324 INFO o.a.j.JMeter: Copyright (c) 1998-2024 The Apache Software Foundation
2024-02-03 08:26:26,324 INFO o.a.j.JMeter: Version 5.6.3
2024-02-03 08:26:26,324 INFO o.a.j.JMeter: java.version=1.8.0_212
2024-02-03 08:26:26,324 INFO o.a.j.JMeter: java.vm.name=OpenJDK 64-Bit Server VM
2024-02-03 08:26:26,324 INFO o.a.j.JMeter: os.name=Linux
2024-02-03 08:26:26,324 INFO o.a.j.JMeter: os.arch=amd64
2024-02-03 08:26:26,325 INFO o.a.j.JMeter: os.version=5.15.0-71-generic
2024-02-03 08:26:26,325 INFO o.a.j.JMeter: file.encoding=UTF-8
2024-02-03 08:26:26,325 INFO o.a.j.JMeter: java.awt.headless=true
2024-02-03 08:26:26,325 INFO o.a.j.JMeter: Max memory     =1073741824
2024-02-03 08:26:26,325 INFO o.a.j.JMeter: Available Processors =2
2024-02-03 08:26:26,342 INFO o.a.j.JMeter: Default Locale=English (EN)
2024-02-03 08:26:26,343 INFO o.a.j.JMeter: JMeter  Locale=English (EN)
2024-02-03 08:26:26,343 INFO o.a.j.JMeter: JMeterHome=/opt/jmeter/apache-jmeter-5.6.3
2024-02-03 08:26:26,343 INFO o.a.j.JMeter: user.dir  =/opt/jmeter
2024-02-03 08:26:26,343 INFO o.a.j.JMeter: PWD       =/opt/jmeter
2024-02-03 08:26:26,344 INFO o.a.j.JMeter: IP: 172.17.0.4 Name: 98300e4cdea0 FullName: 98300e4cdea0
2024-02-03 08:26:26,444 INFO o.a.j.r.RmiUtils: Disabling SSL for RMI as server.rmi.ssl.disable is set to 'true'
2024-02-03 08:26:26,444 INFO o.a.j.r.RmiUtils: Disabling SSL for RMI as server.rmi.ssl.disable is set to 'true'
2024-02-03 08:26:26,579 INFO o.a.j.e.RemoteJMeterEngineImpl: Starting backing engine on 1101
2024-02-03 08:26:26,579 INFO o.a.j.r.RmiUtils: Resolving by name the value of System property 'java.rmi.server.hostname': 192.168.230.128
2024-02-03 08:26:26,580 INFO o.a.j.r.RmiUtils: Local IP address=192.168.230.128
2024-02-03 08:26:26,580 INFO o.a.j.e.RemoteJMeterEngineImpl: IP address is a site-local address; this may cause problems with remote access.Can be overridden by defining the system property 'java.rmi.server.hostname' - see jmeter-server script file
2024-02-03 08:26:26,581 INFO o.a.j.e.RemoteJMeterEngineImpl: Creating RMI registry (server.rmi.create=true)
2024-02-03 08:26:26,581 INFO o.a.j.r.RmiUtils: Disabling SSL for RMI as server.rmi.ssl.disable is set to 'true'
2024-02-03 08:26:26,581 INFO o.a.j.r.RmiUtils: Disabling SSL for RMI as server.rmi.ssl.disable is set to 'true'
2024-02-03 08:26:26,589 INFO o.a.j.e.RemoteJMeterEngineImpl: Bound to RMI registry on port 1101
2024-02-03 08:30:46,724 INFO o.a.j.s.SampleEvent: List of sample_variables: []
2024-02-03 08:30:46,984 INFO o.a.j.s.BatchSampleSender: Using batching for this run. Thresholds: num=100, time=60000
2024-02-03 08:30:46,985 INFO o.a.j.s.DataStrippingSampleSender: Using DataStrippingSampleSender for this run with stripAlsoOnError: true
2024-02-03 08:30:46,986 INFO o.a.j.s.BatchSampleSender: Using batching for this run. Thresholds: num=100, time=60000
2024-02-03 08:30:46,986 INFO o.a.j.s.DataStrippingSampleSender: Using DataStrippingSampleSender for this run with stripAlsoOnError: true
2024-02-03 08:30:47,111 INFO o.a.j.p.h.s.HTTPSamplerBase: Parser for text/html is org.apache.jmeter.protocol.http.parser.LagartoBasedHtmlParser
2024-02-03 08:30:47,112 INFO o.a.j.p.h.s.HTTPSamplerBase: Parser for application/xhtml+xml is org.apache.jmeter.protocol.http.parser.LagartoBasedHtmlParser
2024-02-03 08:30:47,112 INFO o.a.j.p.h.s.HTTPSamplerBase: Parser for application/xml is org.apache.jmeter.protocol.http.parser.LagartoBasedHtmlParser
2024-02-03 08:30:47,115 INFO o.a.j.p.h.s.HTTPSamplerBase: Parser for text/xml is org.apache.jmeter.protocol.http.parser.LagartoBasedHtmlParser
2024-02-03 08:30:47,121 INFO o.a.j.p.h.s.HTTPSamplerBase: Parser for text/vnd.wap.wml is org.apache.jmeter.protocol.http.parser.RegexpHTMLParser
2024-02-03 08:30:47,121 INFO o.a.j.p.h.s.HTTPSamplerBase: Parser for text/css is org.apache.jmeter.protocol.http.parser.CssParser
2024-02-03 08:30:47,214 INFO o.a.j.p.h.c.CookieManager: Settings: Delete null: true Check: true Allow variable: true Save: false Prefix: COOKIE_
2024-02-03 08:30:47,227 INFO o.a.j.s.BatchSampleSender: Using batching for this run. Thresholds: num=100, time=60000
2024-02-03 08:30:47,227 INFO o.a.j.s.DataStrippingSampleSender: Using DataStrippingSampleSender for this run with stripAlsoOnError: true
2024-02-03 08:30:47,310 INFO o.a.j.e.RemoteJMeterEngineImpl: Creating JMeter engine on host 192.168.230.128:1101 base '.'
2024-02-03 08:30:47,310 INFO o.a.j.e.RemoteJMeterEngineImpl: Remote client host: 192.168.230.1
2024-02-03 08:30:47,339 INFO o.a.j.s.FileServer: Default base='/opt/jmeter'
2024-02-03 08:30:47,357 INFO o.a.j.s.FileServer: Set new base='.'
2024-02-03 08:30:47,364 INFO o.a.j.e.StandardJMeterEngine: Applying properties {}
2024-02-03 08:30:47,413 INFO o.a.j.e.RemoteJMeterEngineImpl: Running test
2024-02-03 08:30:47,461 INFO o.a.j.e.StandardJMeterEngine: Running the test!
2024-02-03 08:30:47,462 INFO o.a.j.s.SampleEvent: List of sample_variables: []
2024-02-03 08:30:47,541 INFO o.a.j.e.u.CompoundVariable: Note: Function class names must contain the string: '.functions.'
2024-02-03 08:30:47,541 INFO o.a.j.e.u.CompoundVariable: Note: Function class names must not contain the string: '.gui.'
2024-02-03 08:30:51,297 INFO o.a.j.e.StandardJMeterEngine: Starting ThreadGroup: 1 : 分布式测试
2024-02-03 08:30:51,298 INFO o.a.j.e.StandardJMeterEngine: Starting 10 threads for group 分布式测试.
2024-02-03 08:30:51,298 INFO o.a.j.e.StandardJMeterEngine: Thread will continue on error
2024-02-03 08:30:51,298 INFO o.a.j.t.ThreadGroup: Starting thread group... number=1 threads=10 ramp-up=1 delayedStart=false
2024-02-03 08:30:51,449 INFO o.a.j.t.ThreadGroup: Started thread group number 1
2024-02-03 08:30:51,450 INFO o.a.j.e.StandardJMeterEngine: All thread groups have been started
2024-02-03 08:30:51,516 INFO o.a.j.t.JMeterThread: Thread started: 192.168.230.128:1101-分布式测试 1-1
2024-02-03 08:30:51,592 INFO o.a.j.t.JMeterThread: Thread started: 192.168.230.128:1101-分布式测试 1-2
2024-02-03 08:30:51,681 INFO o.a.j.t.JMeterThread: Thread started: 192.168.230.128:1101-分布式测试 1-3
2024-02-03 08:30:51,761 INFO o.a.j.t.JMeterThread: Thread started: 192.168.230.128:1101-分布式测试 1-4
2024-02-03 08:30:51,853 INFO o.a.j.t.JMeterThread: Thread started: 192.168.230.128:1101-分布式测试 1-5
2024-02-03 08:30:51,857 INFO o.a.j.p.h.s.HTTPHCAbstractImpl: Local host = 98300e4cdea0
2024-02-03 08:30:51,925 INFO o.a.j.t.JMeterThread: Thread started: 192.168.230.128:1101-分布式测试 1-6
2024-02-03 08:30:51,950 INFO o.a.j.p.h.s.HTTPHC4Impl: HTTP request retry count = 0
2024-02-03 08:30:51,972 INFO o.a.j.s.SampleResult: Note: Sample TimeStamps are START times
2024-02-03 08:30:51,972 INFO o.a.j.s.SampleResult: sampleresult.default.encoding is set to UTF-8
2024-02-03 08:30:51,972 INFO o.a.j.s.SampleResult: sampleresult.useNanoTime=true
2024-02-03 08:30:51,974 INFO o.a.j.s.SampleResult: sampleresult.nanoThreadSleep=5000
2024-02-03 08:30:52,023 INFO o.a.j.t.JMeterThread: Thread started: 192.168.230.128:1101-分布式测试 1-7
2024-02-03 08:30:52,122 INFO o.a.j.t.JMeterThread: Thread started: 192.168.230.128:1101-分布式测试 1-8
2024-02-03 08:30:52,192 INFO o.a.j.t.JMeterThread: Thread started: 192.168.230.128:1101-分布式测试 1-9
2024-02-03 08:30:52,297 INFO o.a.j.t.JMeterThread: Thread started: 192.168.230.128:1101-分布式测试 1-10
2024-02-03 08:30:53,189 INFO o.a.j.t.JMeterThread: Thread is done: 192.168.230.128:1101-分布式测试 1-3
2024-02-03 08:30:53,190 INFO o.a.j.t.JMeterThread: Thread finished: 192.168.230.128:1101-分布式测试 1-3
2024-02-03 08:30:53,217 INFO o.a.j.t.JMeterThread: Thread is done: 192.168.230.128:1101-分布式测试 1-10
2024-02-03 08:30:53,217 INFO o.a.j.t.JMeterThread: Thread finished: 192.168.230.128:1101-分布式测试 1-10
2024-02-03 08:30:53,218 INFO o.a.j.t.JMeterThread: Thread is done: 192.168.230.128:1101-分布式测试 1-2
2024-02-03 08:30:53,227 INFO o.a.j.t.JMeterThread: Thread finished: 192.168.230.128:1101-分布式测试 1-2
2024-02-03 08:30:53,243 INFO o.a.j.t.JMeterThread: Thread is done: 192.168.230.128:1101-分布式测试 1-6
2024-02-03 08:30:53,243 INFO o.a.j.t.JMeterThread: Thread finished: 192.168.230.128:1101-分布式测试 1-6
2024-02-03 08:30:53,245 INFO o.a.j.t.JMeterThread: Thread is done: 192.168.230.128:1101-分布式测试 1-1
2024-02-03 08:30:53,246 INFO o.a.j.t.JMeterThread: Thread finished: 192.168.230.128:1101-分布式测试 1-1
2024-02-03 08:30:53,246 INFO o.a.j.t.JMeterThread: Thread is done: 192.168.230.128:1101-分布式测试 1-7
2024-02-03 08:30:53,246 INFO o.a.j.t.JMeterThread: Thread finished: 192.168.230.128:1101-分布式测试 1-7
2024-02-03 08:30:53,250 INFO o.a.j.t.JMeterThread: Thread is done: 192.168.230.128:1101-分布式测试 1-4
2024-02-03 08:30:53,352 INFO o.a.j.t.JMeterThread: Thread finished: 192.168.230.128:1101-分布式测试 1-4
2024-02-03 08:30:53,354 INFO o.a.j.t.JMeterThread: Thread is done: 192.168.230.128:1101-分布式测试 1-5
2024-02-03 08:30:53,354 INFO o.a.j.t.JMeterThread: Thread finished: 192.168.230.128:1101-分布式测试 1-5
2024-02-03 08:30:53,428 INFO o.a.j.t.JMeterThread: Thread is done: 192.168.230.128:1101-分布式测试 1-8
2024-02-03 08:30:53,430 INFO o.a.j.t.JMeterThread: Thread finished: 192.168.230.128:1101-分布式测试 1-8
2024-02-03 08:30:53,469 INFO o.a.j.t.JMeterThread: Thread is done: 192.168.230.128:1101-分布式测试 1-9
2024-02-03 08:30:53,469 INFO o.a.j.t.JMeterThread: Thread finished: 192.168.230.128:1101-分布式测试 1-9
2024-02-03 08:30:53,476 INFO o.a.j.e.StandardJMeterEngine: Notifying test listeners of end of test
2024-02-03 08:30:53,476 INFO o.a.j.s.DataStrippingSampleSender: Test Ended on 192.168.230.128:1101
2024-02-03 08:30:53,477 INFO o.a.j.s.BatchSampleSender: Test Ended on 192.168.230.128:1101
2024-02-03 08:30:53,545 INFO o.a.j.s.DataStrippingSampleSender: Test Ended on 192.168.230.128:1101
2024-02-03 08:30:53,546 INFO o.a.j.s.BatchSampleSender: Test Ended on 192.168.230.128:1101
2024-02-03 08:30:53,567 INFO o.a.j.s.DataStrippingSampleSender: Test Ended on 192.168.230.128:1101
2024-02-03 08:30:53,567 INFO o.a.j.s.BatchSampleSender: Test Ended on 192.168.230.128:1101
2024-02-03 08:30:53,589 INFO o.a.j.e.StandardJMeterEngine: Test has ended on host 192.168.230.128:1101
  1. 查看运行结果
    在这里插入图片描述

遇到的问题

  1. 宿主机和容器网络不通,需要Docker重置网络,步骤
# 停止所有容器
root@ubuntu:/home/chengdu/jmeter/docker/worker# docker stop $(docker ps -aq)
7aa491cf6145
67f090336f59
5c456dd2242a
# 移除网桥
docker network rm bridge
# 重启docker服务,重新生成网桥
sudo service docker restart

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

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

相关文章

yo!这里是单例模式相关介绍

目录 前言 特殊类设计 只能在堆上创建对象的类 1.方法一(构造函数下手) 2.方法二(析构函数下手) 只能在栈上创建对象的类 单例模式 饿汉模式实现 懒汉模式实现 后记 前言 在面向找工作学习c的过程中,除了基本…

隐写术:隐藏信息的秘密艺术

一、引言 隐写术,这个充满神秘色彩的词汇,似乎让我们回到了间谍和秘密特工的时代。但实际上,隐写术在现代社会仍然有着广泛的应用,例如在军事、情报、商业等领域。本文将带你走进隐写术的世界,探索它的原理、应用和防…

大模型增量预训练新技巧:解决灾难性遗忘

大家好,目前不少开源模型在通用领域具有不错的效果,但由于缺乏领域数据,往往在一些垂直领域中表现不理想,这时就需要增量预训练和微调等方法来提高模型的领域能力。 但在领域数据增量预训练或微调时,很容易出现灾难性…

git 如何修改仓库地址

问题背景:组内更换大部门之后,代码仓的地址也迁移了,所以原来的git仓库地址失效了。 虽然重新建一个新的文件夹,再把每个项目都git clone一遍也可以。但是有点繁琐,而且有的项目本地还有已经开发一半的代码&#xff0c…

遗失的源代码之回归之路的探索与实践

背景 最近比较突然被安排接手一个项目,该项目的情况如下 原生和RN结合的混合开发模式组件化开发,有很多基础组件以及业务组件但是在梳理项目依赖时发现了个别组件源码不全的情况,于是写了个cli用于对比两个版本产物文件,生成差异结果以便于快速进行源码找回恢复。 结果如下…

【lesson9】高并发内存池Page Cache层释放内存的实现

文章目录 Page Cache层释放内存的流程Page Cache层释放内存的实现 Page Cache层释放内存的流程 如果central cache释放回一个span,则依次寻找span的前后page id的没有在使用的空闲span,看是否可以合并,如果合并继续向前寻找。这样就可以将切…

05、全文检索 -- Solr -- Solr 全文检索之图形界面的文档管理(文档的添加、删除,如何通过关键字等参数查询文档)

目录 Solr 全文检索之文档管理添加文档使用 JSON 添加文档:使用 XML 添加文档: 删除文档使用 JSON 删除文档:使用 XML 删除文档: 查询文档查询文档的详细参数fq(Filter Query):过滤sort:排序sta…

[Linux 进程(六)] 写时拷贝 - 进程终止

文章目录 1、写时拷贝2、进程终止2.1 进程退出场景2.1.1 退出码2.1.2 错误码错误码 vs 退出码2.1.3 代码异常终止引入 2.2 进程常见退出方法2.2.1 exit函数2.2.2 _exit函数 本片我们主要来讲进程控制,讲之前我们先把写时拷贝理清,然后再开始讲进程控制。…

[office] 在Excel2010中设定某些单元格数据不参与排序的方法介绍 #其他#知识分享#笔记

在Excel2010中设定某些单元格数据不参与排序的方法介绍 在Excel中排序,相信大家都会了,直接将一组数据按照从小到大或者从大到小进行排序,但是,现在要求我们规定其中几组数据不进行排序,只排序其余的部分。又该如何操作…

ruoyi(若依)(el-menu也可参考)菜单栏过长显示省略号才显示气泡

一、背景 若依前后端分离的版本,新版本中优化了菜单名称过长悬停显示标题,但是是悬浮所有长度大于5的标题。可以查看提交记录:https://gitee.com/y_project/RuoYi-Cloud/commit/99932d91c0144da9f34f5bb05683cc0b86303217 但是我希望是只悬浮…

VC++中使用OpenCV绘制直线、矩形、圆和文字

VC中使用OpenCV绘制直线、矩形、圆和文字 在VC中使用OpenCV绘制直线、矩形、圆和文字非常简单,分别使用OpenCV中的line、rectangle、circle、putText这四个函数即可。具体可以参考OpenCV官方文档:https://docs.opencv.org/4.x/index.html 下面的代码展…

nodejs express中使用连接池或者MySQL链接数据库出现Cannot read property ‘query‘ of undefined报错

1.如果你已经排除了数据库的启动状态原因和本地服务是否启动的原因 2.不妨看看你是否没有排查其他的数据库,我就是一直在排查第一个主数据库,却忘了我还连接了第二个数据库,就是第二个数据库的原因,出现这个错误。 3.我们可以通…

「 CISSP学习笔记 」08. 安全运营

该知识领域涉及如下考点,具体内容分布于如下各个子章节: 理解并遵守调查执行记录和监控活动执行配置管理 (CM)(例如,预配、基线、自动化)应用基本的安全操作概念应用资源保护执行事故管理执行和维护检测和预防措施实施…

我们使用的IPv4耗尽(We‘re running out of IPv4)

IPv4(Internet Protocol version 4)是互联网上使用最广泛的网络层协议之一,于1981年在 RFC 791 中发布,它定义了 32 位的IP地址结构和基本的协议操作。 由于 IPv4 使用 32 位的地址,因此只有四十亿(4,294,967,296,2^32)个地址。 这就导致随着地址不断被分配,IPv4 地…

未来电话呼叫技术的社会影响与发展趋势----云微呼

未来电话呼叫技术将以更为智能化、便捷化和个性化为主要发展趋势,其所带来的社会影响也将是多层面的。以下将探讨未来电话呼叫技术可能的发展趋势以及对社会的影响: 智能化助力生活便捷: 未来电话呼叫技术将更加智能化,通过人工智…

uniapp 组件封装

1. uniapp 组件封装时间戳格式化为星期 1.1. components/m-week.vue <template><text>{{week}}</text> </template> <script>export default {props: {time: String},mounted(e) {this.week this.getWeek(Number(this.time))},data() {return …

车载测试Vector工具——基于DoIP的ECU/车辆的连接故障排除

车载测试Vector工具——基于DoIP的ECU/车辆的连接故障排除 我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师(Wechat:gongkenan2013)。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 屏蔽力是信息过载时代一个人的特殊竞争力,任何消耗你的人和…

【考研408】计算机网络笔记

文章目录 计算机网络体系结构计算机网络概述计算机网络的组成计算机网络的功能计算机网络的分类计算机网络的性能指标课后习题 计算机网络体系结构与参考模型计算机网络协议、接口、服务的概念ISO/OSI参考模型和TCP/IP模型课后习题 物理层通信基础基本概念奈奎斯特定理与香农定…

PyCharm / DataSpell 导入WSL2 解析器,实现GPU加速

PyCharm / DataSpell 导入WSL2 解析器的实现 Windows的解析器不好么&#xff1f;设置WSL2和实现GPU加速为PyCharm / DataSpell 设置WSL解析器设置Interpreter Windows的解析器不好么&#xff1f; Windows上的解析器的确很方便&#xff0c;也省去了我们很多的麻烦。但是WSL2的解…

cesium-水平测距

cesium测量两点间的距离 <template><div id"cesiumContainer" style"height: 100vh;"></div><div id"toolbar" style"position: fixed;top:20px;left:220px;"><el-breadcrumb><el-breadcrumb-item&…