Kafka集群部署详细教程
版本说明
- Ubuntu 18.04.6
- Zookeeper 3.5.9
- Kafka 2.7.0
- JDK8
集群配置
| 操作系统 | ip | 域名 | Zookeeper 端口 | Kafka 端口 |
|---|---|---|---|---|
| Ubuntu 18.04.6 | 192.168.50.131 | kafka1.com | 2181 | 9092 |
| Ubuntu 18.04.6 | 192.168.50.132 | kafka2.com | 2181 | 9092 |
| Ubuntu 18.04.6 | 192.168.50.133 | kafka3.com | 2181 | 9092 |
安装 vim, curl
sudo apt update
sudo apt install vim
sudo apt install curl
配置静态 ip 和 hosts
为了使用域名,更加方便的进行配置,这里将虚拟机的 DHCP 改成了静态分配 IP,所以需要手动设置一下每台机器 IP 地址,这里以 192.168.50.131 为例。
-
找到网络接口名称,运行以下命令:
ip addr查找以
ens或eth开头的接口名称。例如,ens33或eth0。hedon@ubuntu:~$ ip addr 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft foreverinet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000link/ether 00:0c:29:82:9e:69 brd ff:ff:ff:ff:ff:ffinet 192.168.50.133/24 brd 192.168.50.255 scope global dynamic noprefixroute ens33valid_lft 1644sec preferred_lft 1644secinet6 fe80::c367:c7cc:3ad4:23b3/64 scope link valid_lft forever preferred_lft forever可以找到
ens33,其中inet 192.168.50.133/24表示 IP 地址为192.168.50.133,子网掩码为/24(等于255.255.255.0)。这个 IP 地址是 DHCP 动态分配的,说明宿主机分配给虚拟机的 IP 范围就在
192.168.50.xxx,所以我们会将静态 IP 配置在这个范围内。 -
获取网关地址
ip route | grep default输出:
hedon@ubuntu:~$ ip route | grep default default via 192.168.50.2 dev ens33 proto dhcp metric 100说明默认网关是
192.168.50.2, -
编辑
/etc/network/interfaces文件,配置静态 IP 地址,内容如下:auto ens33 iface ens33 inet staticaddress 192.168.50.131netmask 255.255.255.0gateway 192.168.50.2dns-nameservers 8.8.8.8 8.8.4.4 -
重启
su reboot -
再次查看 ip 地址
ip addr有以下输出便说明静态 IP 配置成功了。
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft foreverinet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000link/ether 00:0c:29:82:9e:69 brd ff:ff:ff:ff:ff:ffinet 192.168.50.131/24 brd 192.168.50.255 scope global ens33valid_lft forever preferred_lft foreverinet6 fe80::20c:29ff:fe82:9e69/64 scope link valid_lft forever preferred_lft forever -
配置域名
sudo vim /etc/hosts追加内容如下:
192.168.50.131 kafka1.com 192.168.50.132 kafka2.com 192.168.50.133 kafka3.com -
ping 一下
hedon@ubuntu:~$ ping kafka1.com PING kafka1.com (192.168.50.131) 56(84) bytes of data. 64 bytes from kafka1.com (192.168.50.131): icmp_seq=1 ttl=64 time=0.024 ms 64 bytes from kafka1.com (192.168.50.131): icmp_seq=2 ttl=64 time=0.021 ms 64 bytes from kafka1.com (192.168.50.131): icmp_seq=3 ttl=64 time=0.029 ms ^C --- kafka1.com ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2029ms rtt min/avg/max/mdev = 0.021/0.024/0.029/0.006 ms -
ping 一下百度,看看能不能访问外网
hedon@ubuntu:~$ ping baidu.com ping: baidu.com: Name or service not known如果这里可以访问,则直接跳过进入下一步,不可以的话,需要配置一下域名解析系统。
-
配置域名解析系统
sudo vim /etc/resolv.conf追加下面内容:
nameserver 8.8.8.8 nameserver 8.8.4.4再尝试 ping 一下百度:
hedon@ubuntu:~$ ping www.baidu.com PING www.a.shifen.com (153.3.238.110) 56(84) bytes of data. 64 bytes from 153.3.238.110 (153.3.238.110): icmp_seq=1 ttl=128 time=15.9 ms 64 bytes from 153.3.238.110 (153.3.238.110): icmp_seq=2 ttl=128 time=15.9 ms 64 bytes from 153.3.238.110 (153.3.238.110): icmp_seq=3 ttl=128 time=16.1 ms 64 bytes from 153.3.238.110 (153.3.238.110): icmp_seq=4 ttl=128 time=15.3 ms ^C --- www.a.shifen.com ping statistics --- 4 packets transmitted, 4 received, 0% packet loss, time 14104ms rtt min/avg/max/mdev = 15.368/15.850/16.145/0.291 ms
补充说明:/etc/network/interfaces 文件的配置
这是一个用于配置 Linux 系统上网络接口的文件。在这个示例中,我们为名为 ens33 的网络接口配置了静态 IP 地址和相关的网络设置。下面是各行的解释:
-
auto ens33: 这一行表示在系统启动时自动激活ens33网络接口。auto关键字后面跟着接口名称。 -
iface ens33 inet static: 这一行定义了ens33网络接口的配置。iface关键字后面跟着接口名称,inet表示我们正在配置 IPv4 地址,static表示我们要为接口分配一个静态 IP 地址(而不是通过 DHCP 获得)。 -
address 192.168.50.131: 这一行设置了网络接口的静态 IP 地址。在这个例子中,我们为ens33接口分配了192.168.50.131IP 地址。IP 地址是 Internet 协议(IP)用于在网络中唯一标识设备的数字标签。每个连接到网络的设备都需要一个唯一的 IP 地址,以便其他设备可以找到并与之通信。IP 地址通常分为两种版本:IPv4 和 IPv6。在此示例中,我们使用了一个 IPv4 地址。
-
netmask 255.255.255.0: 这一行定义了子网掩码。在这个例子中,子网掩码是255.255.255.0,表示前三个字节(24 位)是网络地址,最后一个字节(8 位)是主机地址。子网掩码用于划分 IP 地址的网络部分和主机部分。子网掩码与 IP 地址进行按位与操作,从而得到网络地址。这有助于确定哪些 IP 地址属于同一子网,以便正确地将数据包路由到目的地。子网划分有助于组织网络、提高安全性和管理性。
-
gateway 192.168.50.2: 这一行设置了默认网关。在这个例子中,我们将默认网关设置为192.168.50.2。默认网关是用于将数据包发送到其他网络的路由器或设备的 IP 地址。网关是一个充当网络中数据包传输的中继点的设备,通常是一个路由器。当一个设备需要将数据包发送到不同子网的另一个设备时,它会将数据包发送到网关。网关负责将数据包路由到正确的目的地。默认网关是设备用于将数据包发送到其他网络的首选网关。
-
dns-nameservers 8.8.8.8 8.8.4.4: 这一行指定了 DNS 服务器的 IP 地址。在这个例子中,我们使用了谷歌的公共 DNS 服务器8.8.8.8和8.8.4.4。DNS 服务器用于将主机名解析为 IP 地址。域名系统(DNS)是将人类可读的域名(例如 www.baidu.com)IP 地址的系统。DNS 服务器是负责执行此解析过程的服务器。当您在浏览器中输入一个网址时,计算机会向 DNS 服务器查询该域名对应的 IP 地址,然后将请求发送到该 IP 地址以获取网页内容。
配置文件中的这些设置将在系统启动时生效。要立即应用更改,您可以使用以下命令重启网络服务:
sudo systemctl restart networking
安装 jdk
sudo apt update
sudo apt install openjdk-8-jdk
验证 java8 是否已经安装成功:
java -version
有以下类似输出的话则表明安装成功:
openjdk version "1.8.0_362"
OpenJDK Runtime Environment (build 1.8.0_362-8u372-ga~us1-0ubuntu1~18.04-b09)
OpenJDK 64-Bit Server VM (build 25.362-b09, mixed mode)
安装 zookeeper
在 Ubuntu 上,您可以通过以下步骤安装 Apache Zookeeper 3.5.9:
- 下载 Apache Zookeeper 3.5.9 的二进制文件。使用以下命令下载并解压缩 Zookeeper:
wget https://archive.apache.org/dist/zookeeper/zookeeper-3.5.9/apache-zookeeper-3.5.9-bin.tar.gz
tar -xzf apache-zookeeper-3.5.9-bin.tar.gz
- 将解压缩后的文件夹移动到
/opt目录中:
sudo mv apache-zookeeper-3.5.9-bin /opt/zookeeper-3.5.9
- 在
/opt/zookeeper-3.5.9目录中创建一个名为data的文件夹,用于存储 Zookeeper 的数据:
sudo mkdir /opt/zookeeper-3.5.9/data
- 在
/opt/zookeeper-3.5.9/data下创建 myid 文件并设置内容为1,其他两台机器则为2和3:
echo 1 | sudo tee /opt/zookeeper-3.5.9/data/myid
- 复制 Zookeeper 配置文件样本,并将其命名为
zoo.cfg:
sudo cp /opt/zookeeper-3.5.9/conf/zoo_sample.cfg /opt/zookeeper-3.5.9/conf/zoo.cfg
- 使用文本编辑器(例如 vim)编辑
zoo.cfg文件:
sudo vim /opt/zookeeper-3.5.9/conf/zoo.cfg
- 修改
zoo.cfg文件:
# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
# 设置数据存储目录
dataDir=/opt/zookeeper-3.5.9/data
# the port at which the clients will connect
clientPort=2181
# 设置集群信息
server.1=kafka1.com:2888:3888
server.2=kafka2.com:2888:3888
server.3=kafka3.com:2888:3888
在 Zookeeper 的配置文件中,
server.x=hostname:port1:port2这种格式的配置项是用来设置 Zookeeper 集群(集群模式下)的。其中,x是服务器的 ID,hostname是服务器的主机名或 IP 地址,port1和port2是用于集群间通信的端口。具体来说:
port1(2888):这是服务器之间用于相互通信的端口。Zookeeper 服务器使用这个端口进行 leader 选举以及同步 follower 和 leader 之间的状态。
port2(3888):这个端口用于服务器之间的 leader 选举。在 Zookeeper 集群启动或者在 leader 服务器崩溃后,follower 服务器会通过这个端口进行新一轮的 leader 选举。这两个端口可以根据你的网络配置进行修改,但必须在所有的 Zookeeper 服务器上保持一致。
- 三个节点都启动 Zookeeper 服务器:
/opt/zookeeper/bin/zkServer.sh start
可以连接到 Zookeeper 的端口上(默认是 2181),通过发送四字命令 srvr 来验证 Zookeeper 是否安装正确(部署集群的话需要把所有 Zookeeper 启动):
hedon@ubuntu:/opt/zookeeper-3.5.9$ telnet localhost 2181
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
srvr
Zookeeper version: 3.5.9-83df9301aa5c2a5d284a9940177808c01bc35cef, built on 01/06/2021 19:49 GMT
Latency min/avg/max: 0/0/0
Received: 1
Sent: 0
Connections: 1
Outstanding: 0
Zxid: 0x0
Mode: standalone
Node count: 5
Connection closed by foreign host.
- 要停止 Zookeeper 服务器,可以使用以下命令:
/opt/zookeeper/bin/zkServer.sh stop
安装 Kafka
-
下载并解压 Kafka
wget https://archive.apache.org/dist/kafka/2.7.0/kafka_2.13-2.7.0.tgz tar -zxvf kafka_2.13-2.7.0.tgz -
将解压缩后的文件夹移动到
/opt目录中:sudo mv kafka_2.13-2.7.0 /opt/kafka-2.7.0 -
创建日志目录
sudo mkdir /opt/kafka-2.7.0/kafka-logs -
备份 Kafka 默认配置
sudo cp /opt/kafka-2.7.0/config/server.properties /opt/kafka-2.7.0/config/server.properties.bak -
修改 Kafka 配置
sudo vim /opt/kafka-2.7.0/config/server.properties主要是修改下面几个配置:
# 集群中每个 broker 的 id 必须唯一,这里分别为 1,2,3 broker.id=1 # 日志目录 log.dirs=/opt/kafka-2.7.0/kafka-logs # 配置 Zookeeper zookeeper.connect=kafka1.com:2181,kafka2.com:2181,kafka3.com:2181 # 定义 Kafka Broker 在哪些网络地址上监听连接,下面配置表示在所有的 IP 地址上监听 9092 端口 listeners=PLAINTEXT://:9092 # 定义 Kafka Broker 如何向外部公布它的地址。这是 Kafka Broker 通知 Producer 和 Consumer 如何连接到自己的方式。例如,如果你设置 advertised.listeners=PLAINTEXT://my.public.ip:9092,那么 Kafka Broker 将告诉 Producer 和 Consumer 它的公共 IP 地址是 my.public.ip,并且它在 9092 端口上监听连接。 advertised.listeners=PLAINTEXT://kafka1.com:9092 -
三个节点都启动 Kafka
/opt/kafka-2.7.0/bin/kafka-server-start.sh -daemon /opt/kafka-2.7.0/config/server.properties -
选择任意一个节点创建一个新 topic
/opt/kafka-2.7.0/bin/kafka-topics.sh --bootstrap-server localhost:9092 --create --topic test --replication-factor 1 --partitions=2输出:
Created topic test. -
在其他节点获取
test这个topic的信息/opt/kafka-2.7.0/bin/kafka-topics.sh --bootstrap-server localhost:9092 --describe --topic test可以看到关于
test这个topic的信息是可以获取到的,说明集群之前信息是互通的,集群搭建完毕。Topic: test PartitionCount: 2 ReplicationFactor: 1 Configs: segment.bytes=1073741824Topic: test Partition: 0 Leader: 1 Replicas: 1 Isr: 1Topic: test Partition: 1 Leader: 2 Replicas: 2 Isr: 2
相关文章:
Kafka集群部署详细教程
版本说明 Ubuntu 18.04.6Zookeeper 3.5.9Kafka 2.7.0JDK8 集群配置 操作系统ip域名Zookeeper 端口Kafka 端口Ubuntu 18.04.6192.168.50.131kafka1.com21819092Ubuntu 18.04.6192.168.50.132kafka2.com21819092Ubuntu 18.04.6192.168.50.133kafka3.com21819092 安装 vim, cu…...
交叉编译
1. 交叉开发 交叉编译: 在电脑把程序编写 编译 调试好 再下载到嵌入式产品中运行 编译: gcc 之前编译环境和运行环境是一样的 交叉编译: 编译 把编译代码和运行分开 编译代码在虚拟机中 运行…...
数据结构与算法之递归: LeetCode 46. 全排列 (Typescript版)
全排列 https://leetcode.cn/problems/permutations/ 描述 给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。 示例 1 输入:nums [1,2,3] 输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,…...
SQL中 JOIN 的两种连接类型:内连接(自然连接、自连接、交叉连接)、外连接(左外连接、右外连接、全外连接)
SQL中 JOIN 的两种连接类型:内连接(自然连接、自连接、交叉连接)、外连接(左外连接、右外连接、全外连接) 1. 自然连接(natural join)(内连接) 学生表 mysql> sele…...
微信小程序记住密码,让登录解放双手
密码是用户最重要的数据,也是系统最需要保护的数据,我们在登录的时候需要用账号密码请求登录接口,如果用户勾选记住密码,那么下一次登录时,我们需要将账号密码回填到输入框,用户可以直接登录系统。我们分别…...
国内划片机行业四大企业之博捷芯:技术驱动,领跑未来
在国内划片机行业中,公司以其卓越的技术实力和持续的创新精神,迅速崭露头角。作为国内划片机行业的四大企业之一,公司以其专业、高品质的划片机设备和解决方案,引领着行业的发展。 公司自创立以来,一直专注于划片机设备…...
后端整合Swagger+Knife4j接口文档
后端整合SwaggerKnife4j接口文档 接口文档介绍 什么是接口文档:写接口信息的文档,条接口包括: 请求参数响应参数 错误码 接口地址接口名称请求类型请求格式备注 为什么需要接口文档 who用?后端提供,前后端都需要使用…...
k8s中批量处理Pod应用的Job和CronJob控制器介绍
目录 一.Job控制器 1.简介 2.Jobs较完整解释 3.示例演示 4.注意:如上例的话,执行“kubectl delete -f myJob.yaml”就可以将job删掉 二.CronJob(简写为cj) 1.简介 2.CronJob较完整解释 3.案例演示 4.如上例的话…...
UE5 范围内随机生成
打开插件 BP_Actor...
杂记 | 使用Docker安装并配置MongoDB以支持事务(单副本,并解决了证书文件错误的问题)
文章目录 00 安装前的准备01 创建Docker Compose文件02 设置证书文件03 启动MongoDB04 初始化副本集和创建用户05 验证安装 00 安装前的准备 在开始之前,确保已经安装了Docker,本文基于Docker Compose进行示范,没有装Docker Compose也可将其…...
css三角,鼠标样式,溢出文字
目录 css三角 鼠标样式 例子:页码模块 溢出文字表示方式 margin负值运用 css三角强化 css三角 css三角中:line-height:0和font-size:0是防止兼容性的问题 jd {position: relative;width: 120px;height: 249px;background-…...
远程桌面访问MATLAB 2018B,提示License Manger Error -103,终极解决方案
通过远程桌面方位Windows Server系统下的MATLAB2018B,报错License Manger Error -103,Crack文件夹下的dll文件已经替换,同时也已经输出了lic文件,但是仍然无法打开。但是在本地桌面安装就没有问题。初步怀疑MATLAB的License使用机…...
Jmeter基础和概念
JMeter 介绍: 一个非常优秀的开源的性能测试工具。 优点:你用着用着就会发现它的重多优点,当然不足点也会呈现出来。 从性能工具的原理划分: Jmeter工具和其他性能工具在原理上完全一致,工具包含4个部分: …...
【Linux 带宽限速】trickle,限制docker 上传速度
限制docker 上传速度 然而,你可以使用第三方工具来实现这个目的。一个常用的工具是 trickle,它可以模拟网络带宽。 首先,你需要安装 trickle。在 Ubuntu 上,可以使用以下命令安装: sudo apt-get install trickle然后…...
MindStudio学习记录三:推理应用开发 acl mindx sdk
1.推理应用流程 1.1.创建工程 1.2.模型转换 1.3代码开发 1.3.1ACL代码 1.3.2MindX SDK开发 可视化模块化设计 中间的图片与处理 是基于AIPP的可视化处理 1.5.编译 交叉编译 1.6.运行与调试 1.7 调优工具 profiling性能分析 2.开发举例 resnet-50 2.1 准备工程 2.2.准备模型…...
【RT-DETR改进】SIoU、GIoU、CIoU、DIoU、AlphaIoU等二十余种损失函数
一、本文介绍 这篇文章介绍了RT-DETR的重大改进,特别是在损失函数方面的创新。它不仅包括了多种IoU损失函数的改进和变体,如SIoU、WIoU、GIoU、DIoU、EIOU、CIoU,还融合了“Alpha”思想,创造了一系列新的损失函数。这些组合形式的…...
【Linux】EVIOCGBIT
EVIOCGBIT(ev, len) 该怎么理解? 我们可以推断出,它是一个宏,它的前两个参数已经确定了,具体的功能由后两个参数(ev,len)来决定。Linux-4.9.88\include\uapi\linux\input.h #define EVIOCGBIT(ev,len) _IOC(_IOC_READ, E, 0x20 …...
鸿蒙4.0开发笔记之ArkTS装饰器语法基础@Extend扩展组件样式与stateStyles多态样式(十一)
一、Extend扩展组件样式 1、作用 前文提到可以使用Styles用于样式的扩展,在Styles的基础上,ArkTS语法还提供了Extend,⽤于扩展原生组件样式,包括Text、Button等等。 2、定义语法 Extend(UIComponentName) function functionNam…...
5V摄像机镜头驱动IC GC6208,可用于摄像机,机器人等产品中可替代AN41908
GC6208是一个镜头电机驱动IC摄像机和安全摄像机。该设备集成了一个直流电机驱动器的Iris的PID控制系统,也有两个通道的STM电机驱动器的变焦和对焦控制。 芯片的特点: 内置用于Iris控制器的直流电机驱动器 内置2个STM驱动程序,用于缩放和…...
PHP echo和print 语句
PHP 是通过 print 和 echo 语句来动态输出 HTML 内容,虽然 print 和 echo 语句两者的功能几乎是完全一样,但是还是有一点差别的。 在 PHP 中有两个基本的输出方式: echo 和 print。 本章节中我们会详细讨论两个语句的用法,并在实…...
反向工程与模型迁移:打造未来商品详情API的可持续创新体系
在电商行业蓬勃发展的当下,商品详情API作为连接电商平台与开发者、商家及用户的关键纽带,其重要性日益凸显。传统商品详情API主要聚焦于商品基本信息(如名称、价格、库存等)的获取与展示,已难以满足市场对个性化、智能…...
MySQL 隔离级别:脏读、幻读及不可重复读的原理与示例
一、MySQL 隔离级别 MySQL 提供了四种隔离级别,用于控制事务之间的并发访问以及数据的可见性,不同隔离级别对脏读、幻读、不可重复读这几种并发数据问题有着不同的处理方式,具体如下: 隔离级别脏读不可重复读幻读性能特点及锁机制读未提交(READ UNCOMMITTED)允许出现允许…...
MMaDA: Multimodal Large Diffusion Language Models
CODE : https://github.com/Gen-Verse/MMaDA Abstract 我们介绍了一种新型的多模态扩散基础模型MMaDA,它被设计用于在文本推理、多模态理解和文本到图像生成等不同领域实现卓越的性能。该方法的特点是三个关键创新:(i) MMaDA采用统一的扩散架构…...
基础测试工具使用经验
背景 vtune,perf, nsight system等基础测试工具,都是用过的,但是没有记录,都逐渐忘了。所以写这篇博客总结记录一下,只要以后发现新的用法,就记得来编辑补充一下 perf 比较基础的用法: 先改这…...
(二)原型模式
原型的功能是将一个已经存在的对象作为源目标,其余对象都是通过这个源目标创建。发挥复制的作用就是原型模式的核心思想。 一、源型模式的定义 原型模式是指第二次创建对象可以通过复制已经存在的原型对象来实现,忽略对象创建过程中的其它细节。 📌 核心特点: 避免重复初…...
江苏艾立泰跨国资源接力:废料变黄金的绿色供应链革命
在华东塑料包装行业面临限塑令深度调整的背景下,江苏艾立泰以一场跨国资源接力的创新实践,重新定义了绿色供应链的边界。 跨国回收网络:废料变黄金的全球棋局 艾立泰在欧洲、东南亚建立再生塑料回收点,将海外废弃包装箱通过标准…...
GitHub 趋势日报 (2025年06月08日)
📊 由 TrendForge 系统生成 | 🌐 https://trendforge.devlive.org/ 🌐 本日报中的项目描述已自动翻译为中文 📈 今日获星趋势图 今日获星趋势图 884 cognee 566 dify 414 HumanSystemOptimization 414 omni-tools 321 note-gen …...
3403. 从盒子中找出字典序最大的字符串 I
3403. 从盒子中找出字典序最大的字符串 I 题目链接:3403. 从盒子中找出字典序最大的字符串 I 代码如下: class Solution { public:string answerString(string word, int numFriends) {if (numFriends 1) {return word;}string res;for (int i 0;i &…...
成都鼎讯硬核科技!雷达目标与干扰模拟器,以卓越性能制胜电磁频谱战
在现代战争中,电磁频谱已成为继陆、海、空、天之后的 “第五维战场”,雷达作为电磁频谱领域的关键装备,其干扰与抗干扰能力的较量,直接影响着战争的胜负走向。由成都鼎讯科技匠心打造的雷达目标与干扰模拟器,凭借数字射…...
Springboot社区养老保险系统小程序
一、前言 随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,社区养老保险系统小程序被用户普遍使用,为方…...
