当前位置: 首页 > news >正文

Kafka集群部署详细教程

版本说明

  • Ubuntu 18.04.6
  • Zookeeper 3.5.9
  • Kafka 2.7.0
  • JDK8

集群配置

操作系统ip域名Zookeeper 端口Kafka 端口
Ubuntu 18.04.6192.168.50.131kafka1.com21819092
Ubuntu 18.04.6192.168.50.132kafka2.com21819092
Ubuntu 18.04.6192.168.50.133kafka3.com21819092

安装 vim, curl

sudo apt update
sudo apt install vim
sudo apt install curl

配置静态 ip 和 hosts

为了使用域名,更加方便的进行配置,这里将虚拟机的 DHCP 改成了静态分配 IP,所以需要手动设置一下每台机器 IP 地址,这里以 192.168.50.131 为例。

  1. 找到网络接口名称,运行以下命令:

    ip addr
    

    查找以 enseth 开头的接口名称。例如,ens33eth0

    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 配置在这个范围内。

  2. 获取网关地址

    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

  3. 编辑 /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
    
  4. 重启

    su reboot
    
  5. 再次查看 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
    
  6. 配置域名

    sudo vim /etc/hosts
    

    追加内容如下:

    192.168.50.131 kafka1.com
    192.168.50.132 kafka2.com
    192.168.50.133 kafka3.com
    
  7. 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
    
  8. ping 一下百度,看看能不能访问外网

    hedon@ubuntu:~$ ping baidu.com
    ping: baidu.com: Name or service not known
    

    如果这里可以访问,则直接跳过进入下一步,不可以的话,需要配置一下域名解析系统。

  9. 配置域名解析系统

    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 地址和相关的网络设置。下面是各行的解释:

  1. auto ens33: 这一行表示在系统启动时自动激活 ens33 网络接口。auto 关键字后面跟着接口名称。

  2. iface ens33 inet static: 这一行定义了 ens33 网络接口的配置。iface 关键字后面跟着接口名称,inet 表示我们正在配置 IPv4 地址,static 表示我们要为接口分配一个静态 IP 地址(而不是通过 DHCP 获得)。

  3. address 192.168.50.131: 这一行设置了网络接口的静态 IP 地址。在这个例子中,我们为 ens33 接口分配了 192.168.50.131 IP 地址。

    IP 地址是 Internet 协议(IP)用于在网络中唯一标识设备的数字标签。每个连接到网络的设备都需要一个唯一的 IP 地址,以便其他设备可以找到并与之通信。IP 地址通常分为两种版本:IPv4 和 IPv6。在此示例中,我们使用了一个 IPv4 地址。

  4. netmask 255.255.255.0: 这一行定义了子网掩码。在这个例子中,子网掩码是 255.255.255.0,表示前三个字节(24 位)是网络地址,最后一个字节(8 位)是主机地址。

    子网掩码用于划分 IP 地址的网络部分和主机部分。子网掩码与 IP 地址进行按位与操作,从而得到网络地址。这有助于确定哪些 IP 地址属于同一子网,以便正确地将数据包路由到目的地。子网划分有助于组织网络、提高安全性和管理性。

  5. gateway 192.168.50.2: 这一行设置了默认网关。在这个例子中,我们将默认网关设置为 192.168.50.2。默认网关是用于将数据包发送到其他网络的路由器或设备的 IP 地址。

    网关是一个充当网络中数据包传输的中继点的设备,通常是一个路由器。当一个设备需要将数据包发送到不同子网的另一个设备时,它会将数据包发送到网关。网关负责将数据包路由到正确的目的地。默认网关是设备用于将数据包发送到其他网络的首选网关。

  6. dns-nameservers 8.8.8.8 8.8.4.4: 这一行指定了 DNS 服务器的 IP 地址。在这个例子中,我们使用了谷歌的公共 DNS 服务器 8.8.8.88.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:

  1. 下载 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
  1. 将解压缩后的文件夹移动到 /opt 目录中:
sudo mv apache-zookeeper-3.5.9-bin /opt/zookeeper-3.5.9
  1. /opt/zookeeper-3.5.9 目录中创建一个名为 data 的文件夹,用于存储 Zookeeper 的数据:
sudo mkdir /opt/zookeeper-3.5.9/data
  1. /opt/zookeeper-3.5.9/data 下创建 myid 文件并设置内容为 1,其他两台机器则为 23
echo 1 | sudo tee /opt/zookeeper-3.5.9/data/myid
  1. 复制 Zookeeper 配置文件样本,并将其命名为 zoo.cfg
sudo cp /opt/zookeeper-3.5.9/conf/zoo_sample.cfg /opt/zookeeper-3.5.9/conf/zoo.cfg
  1. 使用文本编辑器(例如 vim)编辑 zoo.cfg 文件:
sudo vim /opt/zookeeper-3.5.9/conf/zoo.cfg
  1. 修改 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 地址,port1port2 是用于集群间通信的端口。

具体来说:

  • port1(2888):这是服务器之间用于相互通信的端口。Zookeeper 服务器使用这个端口进行 leader 选举以及同步 follower 和 leader 之间的状态。

  • port2(3888):这个端口用于服务器之间的 leader 选举。在 Zookeeper 集群启动或者在 leader 服务器崩溃后,follower 服务器会通过这个端口进行新一轮的 leader 选举。

这两个端口可以根据你的网络配置进行修改,但必须在所有的 Zookeeper 服务器上保持一致。

  1. 三个节点都启动 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.
  1. 要停止 Zookeeper 服务器,可以使用以下命令:
/opt/zookeeper/bin/zkServer.sh stop

安装 Kafka

  1. 下载并解压 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
    
  2. 将解压缩后的文件夹移动到 /opt 目录中:

    sudo mv kafka_2.13-2.7.0 /opt/kafka-2.7.0
    
  3. 创建日志目录

    sudo mkdir /opt/kafka-2.7.0/kafka-logs
    
  4. 备份 Kafka 默认配置

    sudo cp /opt/kafka-2.7.0/config/server.properties /opt/kafka-2.7.0/config/server.properties.bak
    
  5. 修改 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
    
  6. 三个节点都启动 Kafka

    /opt/kafka-2.7.0/bin/kafka-server-start.sh -daemon /opt/kafka-2.7.0/config/server.properties
    
  7. 选择任意一个节点创建一个新 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.
    
  8. 在其他节点获取 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. 交叉开发 交叉编译&#xff1a; 在电脑把程序编写 编译 调试好 再下载到嵌入式产品中运行 编译&#xff1a; gcc 之前编译环境和运行环境是一样的 交叉编译&#xff1a; 编译 把编译代码和运行分开 编译代码在虚拟机中 运行…...

数据结构与算法之递归: LeetCode 46. 全排列 (Typescript版)

全排列 https://leetcode.cn/problems/permutations/ 描述 给定一个不含重复数字的数组 nums &#xff0c;返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。 示例 1 输入&#xff1a;nums [1,2,3] 输出&#xff1a;[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,…...

SQL中 JOIN 的两种连接类型:内连接(自然连接、自连接、交叉连接)、外连接(左外连接、右外连接、全外连接)

SQL中 JOIN 的两种连接类型&#xff1a;内连接&#xff08;自然连接、自连接、交叉连接&#xff09;、外连接&#xff08;左外连接、右外连接、全外连接&#xff09; 1. 自然连接&#xff08;natural join&#xff09;&#xff08;内连接&#xff09; 学生表 mysql> sele…...

微信小程序记住密码,让登录解放双手

密码是用户最重要的数据&#xff0c;也是系统最需要保护的数据&#xff0c;我们在登录的时候需要用账号密码请求登录接口&#xff0c;如果用户勾选记住密码&#xff0c;那么下一次登录时&#xff0c;我们需要将账号密码回填到输入框&#xff0c;用户可以直接登录系统。我们分别…...

国内划片机行业四大企业之博捷芯:技术驱动,领跑未来

在国内划片机行业中&#xff0c;公司以其卓越的技术实力和持续的创新精神&#xff0c;迅速崭露头角。作为国内划片机行业的四大企业之一&#xff0c;公司以其专业、高品质的划片机设备和解决方案&#xff0c;引领着行业的发展。 公司自创立以来&#xff0c;一直专注于划片机设备…...

后端整合Swagger+Knife4j接口文档

后端整合SwaggerKnife4j接口文档 接口文档介绍 什么是接口文档&#xff1a;写接口信息的文档&#xff0c;条接口包括&#xff1a; 请求参数响应参数 错误码 接口地址接口名称请求类型请求格式备注 为什么需要接口文档 who用&#xff1f;后端提供&#xff0c;前后端都需要使用…...

k8s中批量处理Pod应用的Job和CronJob控制器介绍

目录 一.Job控制器 1.简介 2.Jobs较完整解释 3.示例演示 4.注意&#xff1a;如上例的话&#xff0c;执行“kubectl delete -f myJob.yaml”就可以将job删掉 二.CronJob&#xff08;简写为cj&#xff09; 1.简介 2.CronJob较完整解释 3.案例演示 4.如上例的话&#xf…...

UE5 范围内随机生成

打开插件 BP_Actor...

杂记 | 使用Docker安装并配置MongoDB以支持事务(单副本,并解决了证书文件错误的问题)

文章目录 00 安装前的准备01 创建Docker Compose文件02 设置证书文件03 启动MongoDB04 初始化副本集和创建用户05 验证安装 00 安装前的准备 在开始之前&#xff0c;确保已经安装了Docker&#xff0c;本文基于Docker Compose进行示范&#xff0c;没有装Docker Compose也可将其…...

css三角,鼠标样式,溢出文字

目录 css三角 鼠标样式 例子&#xff1a;页码模块 溢出文字表示方式 margin负值运用 css三角强化 css三角 css三角中&#xff1a;line-height&#xff1a;0和font-size&#xff1a;0是防止兼容性的问题 jd {position: relative;width: 120px;height: 249px;background-…...

远程桌面访问MATLAB 2018B,提示License Manger Error -103,终极解决方案

通过远程桌面方位Windows Server系统下的MATLAB2018B&#xff0c;报错License Manger Error -103&#xff0c;Crack文件夹下的dll文件已经替换&#xff0c;同时也已经输出了lic文件&#xff0c;但是仍然无法打开。但是在本地桌面安装就没有问题。初步怀疑MATLAB的License使用机…...

Jmeter基础和概念

JMeter 介绍&#xff1a; 一个非常优秀的开源的性能测试工具。 优点&#xff1a;你用着用着就会发现它的重多优点&#xff0c;当然不足点也会呈现出来。 从性能工具的原理划分&#xff1a; Jmeter工具和其他性能工具在原理上完全一致&#xff0c;工具包含4个部分&#xff1a; …...

【Linux 带宽限速】trickle,限制docker 上传速度

限制docker 上传速度 然而&#xff0c;你可以使用第三方工具来实现这个目的。一个常用的工具是 trickle&#xff0c;它可以模拟网络带宽。 首先&#xff0c;你需要安装 trickle。在 Ubuntu 上&#xff0c;可以使用以下命令安装&#xff1a; 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的重大改进&#xff0c;特别是在损失函数方面的创新。它不仅包括了多种IoU损失函数的改进和变体&#xff0c;如SIoU、WIoU、GIoU、DIoU、EIOU、CIoU&#xff0c;还融合了“Alpha”思想&#xff0c;创造了一系列新的损失函数。这些组合形式的…...

【Linux】EVIOCGBIT

EVIOCGBIT(ev, len) 该怎么理解&#xff1f; 我们可以推断出&#xff0c;它是一个宏&#xff0c;它的前两个参数已经确定了&#xff0c;具体的功能由后两个参数(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用于样式的扩展&#xff0c;在Styles的基础上&#xff0c;ArkTS语法还提供了Extend&#xff0c;⽤于扩展原生组件样式&#xff0c;包括Text、Button等等。 2、定义语法 Extend(UIComponentName) function functionNam…...

5V摄像机镜头驱动IC GC6208,可用于摄像机,机器人等产品中可替代AN41908

GC6208是一个镜头电机驱动IC摄像机和安全摄像机。该设备集成了一个直流电机驱动器的Iris的PID控制系统&#xff0c;也有两个通道的STM电机驱动器的变焦和对焦控制。 芯片的特点: 内置用于Iris控制器的直流电机驱动器 内置2个STM驱动程序&#xff0c;用于缩放和…...

PHP echo和print 语句

PHP 是通过 print 和 echo 语句来动态输出 HTML 内容&#xff0c;虽然 print 和 echo 语句两者的功能几乎是完全一样&#xff0c;但是还是有一点差别的。 在 PHP 中有两个基本的输出方式&#xff1a; echo 和 print。 本章节中我们会详细讨论两个语句的用法&#xff0c;并在实…...

多模态2025:技术路线“神仙打架”,视频生成冲上云霄

文&#xff5c;魏琳华 编&#xff5c;王一粟 一场大会&#xff0c;聚集了中国多模态大模型的“半壁江山”。 智源大会2025为期两天的论坛中&#xff0c;汇集了学界、创业公司和大厂等三方的热门选手&#xff0c;关于多模态的集中讨论达到了前所未有的热度。其中&#xff0c;…...

uni-app学习笔记二十二---使用vite.config.js全局导入常用依赖

在前面的练习中&#xff0c;每个页面需要使用ref&#xff0c;onShow等生命周期钩子函数时都需要像下面这样导入 import {onMounted, ref} from "vue" 如果不想每个页面都导入&#xff0c;需要使用node.js命令npm安装unplugin-auto-import npm install unplugin-au…...

【机器视觉】单目测距——运动结构恢复

ps&#xff1a;图是随便找的&#xff0c;为了凑个封面 前言 在前面对光流法进行进一步改进&#xff0c;希望将2D光流推广至3D场景流时&#xff0c;发现2D转3D过程中存在尺度歧义问题&#xff0c;需要补全摄像头拍摄图像中缺失的深度信息&#xff0c;否则解空间不收敛&#xf…...

PostgreSQL——环境搭建

一、Linux # 安装 PostgreSQL 15 仓库 sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-$(rpm -E %{rhel})-x86_64/pgdg-redhat-repo-latest.noarch.rpm# 安装之前先确认是否已经存在PostgreSQL rpm -qa | grep postgres# 如果存在&#xff0…...

git: early EOF

macOS报错&#xff1a; Initialized empty Git repository in /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/.git/ remote: Enumerating objects: 2691797, done. remote: Counting objects: 100% (1760/1760), done. remote: Compressing objects: 100% (636/636…...

Android写一个捕获全局异常的工具类

项目开发和实际运行过程中难免会遇到异常发生&#xff0c;系统提供了一个可以捕获全局异常的工具Uncaughtexceptionhandler&#xff0c;它是Thread的子类&#xff08;就是package java.lang;里线程的Thread&#xff09;。本文将利用它将设备信息、报错信息以及错误的发生时间都…...

一些实用的chrome扩展0x01

简介 浏览器扩展程序有助于自动化任务、查找隐藏的漏洞、隐藏自身痕迹。以下列出了一些必备扩展程序&#xff0c;无论是测试应用程序、搜寻漏洞还是收集情报&#xff0c;它们都能提升工作流程。 FoxyProxy 代理管理工具&#xff0c;此扩展简化了使用代理&#xff08;如 Burp…...

Java后端检查空条件查询

通过抛出运行异常&#xff1a;throw new RuntimeException("请输入查询条件&#xff01;");BranchWarehouseServiceImpl.java // 查询试剂交易&#xff08;入库/出库&#xff09;记录Overridepublic List<BranchWarehouseTransactions> queryForReagent(Branch…...

游戏开发中常见的战斗数值英文缩写对照表

游戏开发中常见的战斗数值英文缩写对照表 基础属性&#xff08;Basic Attributes&#xff09; 缩写英文全称中文释义常见使用场景HPHit Points / Health Points生命值角色生存状态MPMana Points / Magic Points魔法值技能释放资源SPStamina Points体力值动作消耗资源APAction…...

Qwen系列之Qwen3解读:最强开源模型的细节拆解

文章目录 1.1分钟快览2.模型架构2.1.Dense模型2.2.MoE模型 3.预训练阶段3.1.数据3.2.训练3.3.评估 4.后训练阶段S1: 长链思维冷启动S2: 推理强化学习S3: 思考模式融合S4: 通用强化学习 5.全家桶中的小模型训练评估评估数据集评估细节评估效果弱智评估和民间Arena 分析展望 如果…...