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

Linux 部署 rocketmq centos7

mq部署方案

1、rocketmq 顺序消费记录
一个master ,一个 brocker ,多个group ,多个topic,采用集群消费模式。
注意 一个group 对应一个 topic。 生产者 和 消费者 可以有多个,但是 主题和分组 都是一对一的。这样保证了 消息在集群模式下 的 顺序存储 和消费。

Linux 部署rocketmq centos7

参考资料:
https://blog.csdn.net/YuanFudao/article/details/130307086
进入 opt目录
https://www.yisu.com/ask/32687639.html

1、设置rocketmq日志路径
1、先创建mq安装目录
1、上传压缩包
1、解压
1、配置环境变量
1、配置日志路径(日志配置文件)
1、配置数据存储文件路径(主要是store文件)
1、配置占用内存大小(那几个启动文件)
1、修改 broker.conf 内容 ip地址等
1、开放端口
开始

1、

Mq安装目录
/home/software/rocketmq-dev/
/home/software/rocketmq-dev/rocketmq5.1.4
Mq日志路径
/home/software/rocketmq-dev/logs/rocketmqlogs/

2、 配置环境变量

ls .bash_*
https://www.cnblogs.com/wucongzhou/p/12579468.html
我们现在的环境变量 。如java8 我们是配置在 用户变量这一级别的
配置在了 用户目录下 的 .bash_profile 文件里
cat .bash_profile
export JAVA_HOME=/usr/bin/java
export PATH= P A T H : PATH: PATH:JAVA_HOME
1、rocketmq 安装路径放到 linux /home目录下 在 .bash_profile文件里
rocketmq 安装目录
export ROCKETMQ_HOME=/home/software/rocketmq-dev/rocketmq5.1.4
将 rocketmq 环境变量加入到 PATH中
export PATH= R O C K E T M Q H O M E / b i n : ROCKETMQ_HOME/bin: ROCKETMQHOME/bin:PATH
客户端NameServer的地址
export NAMESRV_ADDR=10.xx.xx.xx:9876

应用更改
source .bash_profile

2、修改 mq配置文件
(1)修改 broker.conf文件
在 mq 安装目录的 conf文件夹里
在修改mq 安装目录的bin文件夹里 这个是复制 conf里的
(2)修改 启动时的内存大小
进入到 bin 的目录结构
runserver.sh runbroker.sh
参考 也可以参考自己的 Windows配置
修改runserver.sh
JAVA_OPT=“ J A V A O P T − s e r v e r − X m s 512 m − X m x 512 m − X m n 256 m − X X : M e t a s p a c e S i z e = 128 m − X X : M a x M e t a s p a c e S i z e = 320 m " J A V A O P T = " {JAVA_OPT} -server -Xms512m -Xmx512m -Xmn256m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m" JAVA_OPT=" JAVAOPTserverXms512mXmx512mXmn256mXX:MetaspaceSize=128mXX:MaxMetaspaceSize=320m"JAVAOPT="{JAVA_OPT} -XX:+UseConcMarkSweepGC -XX:+UseCMSCompactAtFullCollection -XX:CMSInitiatingOccupancyFraction=70
-XX:+CMSParallelRemarkEnabled -XX:SoftRefLRUPolicyMSPerMB=0 -XX:+CMSClassUnloadingEnabled -XX:SurvivorRatio=8 -XX:-UseParNewGC” JAVA_OPT=“ J A V A O P T − v e r b o s e : g c − X l o g g c : {JAVA_OPT} -verbose:gc -Xloggc: JAVAOPTverbose:gcXloggc:{GC_LOG_DIR}/rmq_srv_gc_%p_%t.log
-XX:+PrintGCDetails -XX:+PrintGCDateStamps” JAVA_OPT=“ J A V A O P T − X X : + U s e G C L o g F i l e R o t a t i o n − X X : N u m b e r O f G C L o g F i l e s = 5 − X X : G C L o g F i l e S i z e = 30 m " e l s e J A V A O P T = " {JAVA_OPT} -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=5 -XX:GCLogFileSize=30m" else JAVA_OPT=" JAVAOPTXX:+UseGCLogFileRotationXX:NumberOfGCLogFiles=5XX:GCLogFileSize=30m"elseJAVAOPT="{JAVA_OPT} -server -Xms512 -Xmx512m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m”

修改 runbroker.sh
JAVA_OPT=“ J A V A O P T − s e r v e r − X m s 512 m − X m x 512 m " c h o o s e g c o p t i o n s J A V A O P T = " {JAVA_OPT} -server -Xms512m -Xmx512m" choose_gc_options JAVA_OPT=" JAVAOPTserverXms512mXmx512m"choosegcoptionsJAVAOPT="{JAVA_OPT} -XX:-OmitStackTraceInFastThrow”
JAVA_OPT=“ J A V A O P T − X X : + A l w a y s P r e T o u c h " J A V A O P T = " {JAVA_OPT} -XX:+AlwaysPreTouch" JAVA_OPT=" JAVAOPTXX:+AlwaysPreTouch"JAVAOPT="{JAVA_OPT} -XX:MaxDirectMemorySize=1g”
(3)
修改 mq存储文件和 日志输出位置
默认输出位置为
默认路径 /root/logs/rocketmqlogs。
Linux centos7 更改rocketmq存储文件地址
https://blog.csdn.net/m0_73570288/article/details/127275904

Windows 数据存储使用 默认路径,
Linux 使用指定路径
就是在 conf 文件夹下面 broker.conf 文件里填写 路径即
日志存储位置:
/home/software/rocketmq-dev/logs
数据文件存储位置:
/home/software/rocketmq-dev/store
在 store 里创建相应文件夹
commitlog 等文件夹
#存储路径
storePathRootDir=/home/software/rocketmq-dev/store
#commitLog存储路径
storePathCommitLog=/home/software/rocketmq-dev/store/commitlog
#消费队列存储路径
storePathConsumeQueue=/home/software/rocketmq-dev/store/consumequeue
#消息索引存储路径
storePathIndex=/home/software/rocketmq-dev/store/index
#checkpoint文件存储路径
storeCheckpoint=/home/software/rocketmq-dev/store/checkpoint
#abort文件存储路径
abortFile=/home/software/rocketmq-dev/store/abort

但是执行后 store文件和有这些文件
abort checkpoint compaction consumequeue lock
abort.bak commitlog config index timerwheel
abort.bak 、abort、lock、timerwheel、checkpoint 是文件,其余是文件夹

(3)修改日志文件输出路径,
修改 conf 目录下 6各日志的xml文件
rmq.broker.logback.xml
rmq.client.logback.xml
rmq.controller.logback.xml
rmq.namesrv.logback.xml
rmq.proxy.logback.xml
rmq.tools.logback.xml

${LOG_DIR}${file.separator}logs${file.separator}rocketmqlogs${brokerLogDir:-${file.separator}}${brokerContainerLogDir}${file.separator}broker_default.log 3、 安装 rocketmq_dashboard 目录 /home/software/rocketmq_dashboard 日志输出在此目录下 4、 测试启动 https://www.cnblogs.com/xl99/p/14294622.html?ivk_sa=1024320u 前提 bin文件夹下 复制了 conf文件夹下的broker.conf文件,因为要指定 broker的信息 也可以不放在同一目录下 不过就得写全路径 这是在同一个目录下的示例 都在bin目录 mqbroker.cmd -c your_config_file.properties

(1)启动namesrv
cd /home/software/rocketmq-dev/rocketmq5.1.4/bin 执行
nohup sh mqnamesrv &
出现忽略输入并把输出追加到"nohup.out" 直接回车即可
查看是否启动成功
tail nohup.out
看到 The Name Server boot success… 则为启动成功
Pid = 3819411
(2)启动broker
nohup sh mqbroker -n xx.xx.xx.xx:9876 autoCreateTopicEnable=true -c broker.conf &
查看是否成功 输出如下成功了
tail nohup.out
The broker[localhost.localdomain, xx.xx.xx.xx:9876 boot success. serializeType=JSON and name server is xx.xx.xx.xx:9876

5、查看是否启动成功
使用jps查看 服务是否启动

6、
启动 rocketmq_dashboard
jar包所在目录
cd /home/software/rocketmq_dashboard
执行 ./startup.sh
执行成功输出 Application started with PID: 3859794
可能会提示权限不够 就执行下面命令
chmod +x startup.sh

脚本内容startup.sh
#!/bin/bash
#定义jar文件的名称
JAR_FILE=rocketmq-dashboard-1.0.0.jar
# 启动jar文件
nohup java -Dfile.encoding=utf-8 -jar $JAR_FILE --rocketmq.config.namesrvAddr=xx.xx.xx.xx:9876 > dashboard-consol.log 2>&1 &
echo “Application started with PID: $!”

7、
关闭 rocketmq
./mqshutdown broker
./mqshutdown namesrv

https://www.cnblogs.com/jifeng/p/10175124.html

六、遇到问题
1、使用控制面板 查询 消息 无返回值
面板日志显示
DESC: The stats <TOPIC_PUT_NUMS> not exist
就是因为 你还没有像broker创建数据 ,有数据后 就不会报错了

后续完善:
在 broker conf 文件里 添加 listenPort = 10911
面板启动时 指定

另一个问题
发送消息到 rocketmq 服务端失败
Caused by: org.apache.rocketmq.client.exception.MQBrokerException: CODE:service not available now. It may be caused by one of the following reasons: the broker’s disk is full [CL: 0.92 CQ: 0.92 INDEX: 0.92], messages are put to the slave, message store has been shut down, etc. BROKER: xx.xx.xx.xx:10911
解决办法:
https://github.com/apache/rocketmq/issues/3750
https://blog.csdn.net/muriyue6/article/details/130607492
在 conf 文件夹下 broker.conf文件最后面添加如下属性
diskMaxUsedSpaceRatio=99
在 runserver.sh 、runbroker.sh 中 扩大内存

7、
目前 mq的 broker.conf文件的内容为
broker.conf
brokerClusterName = DefaultCluster
brokerName = broker-a
brokerId = 0
deleteWhen = 04
fileReservedTime = 48
brokerRole = ASYNC_MASTER
flushDiskType = ASYNC_FLUSH
listenPort = 10911
namesrvAddr = xx.xx.xx.xx:9876
brokerIP1 = xx.xx.xx.xx
diskMaxUsedSpaceRatio=99
#存储路径
storePathRootDir=/home/software/rocketmq-dev/store
#commitLog存储路径
storePathCommitLog=/home/software/rocketmq-dev/store/commitlog
#消费队列存储路径
storePathConsumeQueue=/home/software/rocketmq-dev/store/consumequeue
#消息索引存储路径
storePathIndex=/home/software/rocketmq-dev/store/index
#checkpoint文件存储路径
storeCheckpoint=/home/software/rocketmq-dev/store/checkpoint
#abort文件存储路径
abortFile=/home/software/rocketmq-dev/store/abort

1
2024.7.14遇到问题记录
因为linux的盘符使用 占满 只剩 430k了 ,已经超过 99%了。
所以线上向mq 服务端发消息失败。
后来是因为 我们的文件服务器 有人一次性上传了 5各G左右的文件导致。

2
记录异常 rocketmq的 异常事故
生产服务器上 有一个 rocketmq的 server 和 brocker ip= 10.82.xxx.1
测试服务器 也部署了一套rocketmq的 server 和brocker ip=10.82.xxx.2
我在测试服务器上 启动 server 然后 要启动 brocker
执行命令
nohup sh mqbroker -n 10.82.xxx.2:9876 autoCreateTopicEnable=true -c broker.conf &
但是不小心 将 这里的 ip指向了 生产服务器的ip
nohup sh mqbroker -n 10.82.xxx.1:9876 autoCreateTopicEnable=true -c broker.conf &
导致 生产上 通过控制台 查看 发现 集群那里显示的 brocker 竟然是 测试环境的 ip地址。
然后 就发生了 生产环境的 consumer 在不断地消费 测试环境上的 历史的 消息。导致数据库 入库了很多 错误的数据库。
最后 解决方式 就是 将 生产的 rocketmq 的 store文件夹都删除,然后重新创建了 一个空的 store 文件夹 ,重新启动 rocketmq 服务 server 和 brocker 。这下就好了。
因为目前并没有 恢复历史数据。 好在我们每天凌晨12点会备份 昨天的 store文件。

只删除 store文件中 如下文件即可
abort abort.bak checkpoint commitlog compaction config consumequeue index lock timerwheel

里面的完全删除 commitlog 、完全删除 consumequeue 、完全删除index
部分删除 config中的 四个文件
consumerOffset.json delayOffset.json
consumerOffset.json.bak delayOffset.json.bak
2、由于我们的mq 目前是 单线程处理任务消息的,处理不及时 也会导致 后面的消息 堆积。

RocketMQ 客户端突然不消费了,部分不消费,部分队列不消费
3、另一个可能的原因 由于某个任务业务处理时间过长 导致线程一直没有返回 block,线程一直处于 runnable状态.
可以看下消费进度,看看哪里的问题。看topic消费时间、看Brocker
看 死信队列中的 任务有哪些。

4、当一个消息 消费失败,会被放到死信队列中

6、
解耦合 消息处理 和 业务处理 拆成两个线程分别处理

相关文章:

Linux 部署 rocketmq centos7

mq部署方案 1、rocketmq 顺序消费记录 一个master &#xff0c;一个 brocker &#xff0c;多个group &#xff0c;多个topic&#xff0c;采用集群消费模式。 注意 一个group 对应一个 topic。 生产者 和 消费者 可以有多个&#xff0c;但是 主题和分组 都是一对一的。这样保证…...

LeetCode 438. 找到字符串中所有字母的异位词

438. 找到字符串中所有字母的异位词 题目描述 给定两个字符串 s 和 p&#xff0c;找到 s 中所有 p 的 异位词 的子串&#xff0c;返回这些子串的起始索引。不考虑答案输出的顺序。 输入输出示例及数据范围 思路 这道题的思路其实很简单&#xff0c;就是一个滑动窗口的裸题&a…...

C++STL---<functional>

C标准库中的 <functional> 库是一个强大的工具集&#xff0c;它提供了用于处理函数对象、函数绑定、函数包装等功能的设施&#xff0c;极大地增强了代码的灵活性和可复用性。 1. 函数对象&#xff08;Functors&#xff09; 函数对象&#xff0c;也被称作仿函数&#xf…...

java详细笔记总结持续完善

一.Java开发环境的搭建 1. 单位换算 1TB 1024GB 1GB 1024MB 1MB 1024KB 1KB 1024Byte (字节) 1Byte 8 bit(位) 注意&#xff1a;一个字节占8位 2. DOS命令 DOS : Disk Operation System 磁盘操作系统 即用于操作本地磁盘的系统 命令操作符号盘符切换命令盘符名:查看当前文…...

图解AUTOSAR_SWS_CANInterface

AUTOSAR CAN接口详解文档 基于AUTOSAR标准的CAN通信接口模块架构与工作原理 目录 1. AUTOSAR CAN接口概述2. CAN接口架构 2.1 模块定位与组成2.2 内部组件结构2.3 接口关系3. CAN消息传输流程 3.1 消息发送流程3.2 消息接收流程4. CAN控制器模式管理 4.1 状态定义4.2 状态转换4…...

wsl2的centos7安装jdk17、maven

JDK安装 查询系统中的jdk rpm -qa | grep java按照查询的结果&#xff0c;删除对应版本 yum -y remove java-1.7.0-openjdk*检查是否删除 java -version 下载JDK17 JDK17&#xff0c;下载之后存到wsl目录下&#xff08;看你自己&#xff09;然后一键安装 sudo rpm -ivh jd…...

乐鑫ESP-Mesh-Lite方案,启明云端乐鑫代理商,创新组网拓展智能应用边界

在当今智能化浪潮的背景下&#xff0c;智能家居、智能农业、能源管理等领域对设备组网的需求日益增长。然而&#xff0c;传统的Wi-Fi组网方式常常受限于设备数量、路由器位置以及网络覆盖范围等因素&#xff0c;难以满足复杂场景下的多样化需求。 一方面&#xff0c;需要支持更…...

ISIS【路由协议讲解】-通俗易懂!

IS-IS的背景 IS-IS最初是国际标准化组织ISO为它的无连接网络协议CLNP&#xff08;ConnectionLess Network Protocol&#xff09;设计的一种动态路由协议。随着TCP/IP协议的流行&#xff0c;为了提供对IP路由的支持&#xff0c;IETF在相关标准中对IS-IS进行了扩充和修改&#xf…...

FastPillars:一种易于部署的基于支柱的 3D 探测器

FastPillars&#xff1a;一种易于部署的基于支柱的 3D 探测器Report issue for preceding element Sifan Zhou 1 , Zhi Tian 2 , Xiangxiang Chu 2 , Xinyu Zhang 2 , Bo Zhang 2 , Xiaobo Lu11{}^{1}start_FLOATSUPERSCRIPT 1 end_FLOATSUPERSCRIPT11footnotemark: 1 Chengji…...

Vitis HLS 学习笔记--块级控制(IDE 2024.1 + 执行模式 + 默认接口实现)

目录 1. 简介 2. 默认接口实现 2.1 执行模式 2.2 接口范式 2.2.1 存储器 2.2.2 串流 2.3.3 寄存器 2.3 Vitis Kernel Flow 2.3.1 默认的协议 2.3.2 vadd 代码 2.3.3 查看报告 2.4 Vivado IP Flow 2.4.1 默认的协议 2.4.2 vadd 代码 2.4.3 查看报告 3. 测试与波…...

红宝书第二十一讲:详解JavaScript的模块化(CommonJS与ES Modules)

红宝书第二十一讲&#xff1a;详解JavaScript的模块化&#xff08;CommonJS与ES Modules&#xff09; 资料取自《JavaScript高级程序设计&#xff08;第5版&#xff09;》。 查看总目录&#xff1a;红宝书学习大纲 一、模块化的意义&#xff1a;分而治之 模块化解决代码依赖混…...

github 页面超时解决方法

github 页面超时解决方法 每次好不容易找到github项目代码之后&#xff0c;满心欢喜打开却是个无法访问&#xff0c;心顿时又凉了半截&#xff0c;现在有方法可以访问github啦 快来学习 打开浏览器插件&#xff08;Edge浏览器&#xff09; 搜索iLink插件 并安装 打开插件 填…...

前端 vue 项目上线前操作

目录 一、打包分析 二、CDN加速 三、项目部署 1. 打包部署 2. nginx 解决 history 刷新 404 问题 3. nginx配置代理解决生产环境跨域问题 一、打包分析 项目编写完成后&#xff0c;就需要部署到服务器上供他人访问。但是在此之前&#xff0c;我们可以先预览项目的体积大…...

矩阵对角化→实对称矩阵的对角化→实对称半正定矩阵的对角化

上篇&#xff1a;特征值→相似矩阵→矩阵对角化&#xff08;特征值分解&#xff09; 实对称矩阵正交对角化 实对称矩阵是指满足 A A T \bm A \bm A^{\mathsf {T}} AAT的矩阵&#xff0c;其中 A T \bm A^{\mathsf T} AT是 A \bm A A的转置矩阵。对称矩阵的特征值均为实数。实…...

vue: easy-cron扩展-更友好地显示表达式

我们一个批处理调度系统里要用到cron表达式&#xff0c;于是就在网上找到一个现成的组件easy-cron&#xff0c;采用后发现&#xff0c;它的配置界面还是很直观的&#xff0c;但显示时直接显示cron表达式&#xff0c;这对业务人员很不友好&#xff0c;所以&#xff0c;我们就扩展…...

移动零+复写零+快乐数+盛最多水的容器+有效三角形的个数

前言 2025.3.31&#xff0c;今天开始每日五道算法题&#xff0c;今天的算法题如标题&#xff01; 双指针算法 在做今天的算法题之前&#xff0c;先来介绍一下今天会用到的算法&#xff01; 双指针算法分为了两种常见的形式&#xff1a;对撞指针和快慢指针&#xff01; 对撞…...

Linux中常用的文件管理命令

一、文件和目录的建立 文件 touch命令 单一文件的创建 当按下回车后我们就可以在桌面获得一个名字叫file的文件 [rootlocalhost Desktop]# touch file 同步文件访问时间和文件修改时间 由上两图可知touch file这个命令还可以把文件访问时间和文件修改时间变成touch file命…...

Root Cause Analysis in Microservice Using Neural Granger Causal Discovery

Root Cause Analysis in Microservice Using Neural Granger Causal Discovery 出处:AAAI 24 摘要 近年来,微服务因其可扩展性、可维护性和灵活性而在 IT 运营中得到广泛采用。然而,由于微服务中的复杂关系,当面临系统故障时,站点可靠性工程师 (SRE) 很难查明根本原…...

学习笔记—数据结构—二叉树(链式)

目录 二叉树&#xff08;链式&#xff09; 概念 结构 初始化 遍历 前序遍历 中序遍历 后序遍历 层序遍历 结点个数 叶子结点个数 第k层结点个数 深度/高度 查找值为x的结点 销毁 判断是否为完整二叉树 总结 头文件Tree.h Tree.c 测试文件test.c 补充文件Qu…...

微前端 - 以无界为例

一、微前端核心概念 微前端是一种将单体前端应用拆分为多个独立子应用的架构模式&#xff0c;每个子应用可独立开发、部署和运行&#xff0c;具备以下特点&#xff1a; 技术栈无关性&#xff1a;允许主应用和子应用使用不同框架&#xff08;如 React Vue&#xff09;。独立部…...

DIskgenius使用说明

文章目录 一、概述1. 软件简介2. 系统要求 二、核心功能1. 分区管理(1) 查看磁盘分区(2) 创建与删除分区(3) 调整分区大小(4) 格式化分区 2. 数据恢复(1) 恢复已删除文件(2) 恢复丢失分区(3) 恢复误格式化分区 3. 磁盘复制(1) 克隆磁盘(2) 磁盘镜像 4. 文件操作(1) 文件复制与移…...

深入理解指针5

sizeof和strlen的对比 sizeof的功能 **sizeof是**** 操作符****&#xff0c;用来**** 计算****变量或类型或数组所占**** 内存空间大小****&#xff0c;**** 单位是字节&#xff0c;****他不管内存里是什么数据** int main() {printf("%zd\n", sizeof(char));p…...

一文详解QT环境搭建:Windows使用CLion配置QT开发环境

在当今的软件开发领域&#xff0c;跨平台应用的需求日益增长&#xff0c;Qt作为一款流行的C图形用户界面库&#xff0c;因其强大的功能和易用性而备受开发者青睐。与此同时&#xff0c;CLion作为一款专为C/C打造的强大IDE&#xff0c;提供了丰富的特性和高效的编码体验。本文将…...

NE 综合实验3:基于 IP 配置、链路聚合、VLAN 管理、路由协议及安全认证的企业网络互联与外网访问技术实现(H3C)

综合实验3 实验拓扑 设备名称接口IP地址R1Ser_1/0与Ser_2/0做捆绑MP202.100.1.1/24G0/0202.100.2.1/24R2Ser_1/0与Ser_2/0做捆绑MP202.100.1.2/24G0/0172.16.2.1/24G0/1172.16.1.1/24G0/2172.16.5.1/24R3G5/0202.100.2.2/24G0/0172.16.2.2/24G0/1172.16.3.1/24G0/2172.16.7.1/…...

Ground Truth(真实标注数据):机器学习中的“真相”基准

Ground Truth&#xff1a;机器学习中的“真相”基准 文章目录 Ground Truth&#xff1a;机器学习中的“真相”基准引言什么是Ground Truth&#xff1f;Ground Truth的重要性1. 模型训练的基础2. 模型评估的标准3. 模型改进的指导 获取Ground Truth的方法1. 人工标注2. 众包标注…...

双重token自动续期解决方案

Token自动续期实现方案详解 Token自动续期是提升用户体验和保障系统安全的关键机制&#xff0c;其核心在于无感刷新和安全可控。以下从原理、实现方案、安全措施和最佳实践四个维度展开说明&#xff1a; 一、核心原理&#xff1a;双Token机制 Token自动续期通常采用 Access …...

我与数学建模之启程

下面的时间线就是从我的大二上开始 9月开学就迎来了本科阶段最重要的数学建模竞赛——国赛&#xff0c;这个比赛一般是在9月的第二周开始。 2021年国赛是我第一次参加国赛&#xff0c;在报名前我还在纠结队友&#xff0c;后来经学长推荐找了另外两个学长。其实第一次国赛没啥…...

多段圆弧拟合离散点实现切线连续

使用多段圆弧来拟合一个由离散点组成的曲线,并且保证切线连续。也就是说&#xff0c;生成的每一段圆弧之间在连接点处必须有一阶导数连续&#xff0c;也就是切线方向相同。 点集分割 确保每个段的终点是下一段的起点&#xff0c;相邻段共享连接点&#xff0c;避免连接点位于数…...

烧结银:解锁金刚石超强散热潜力​

烧结银&#xff1a;解锁金刚石超强散热潜力​ 在材料科学与热管理领域&#xff0c;金刚石凭借超高的热导率&#xff0c;被誉为 “散热之王”&#xff0c;然而&#xff0c;受限于其特殊的性质&#xff0c;金刚石在实际应用中难以充分发挥散热优势。而烧结银AS9335的出现&#x…...

【蓝桥杯】第十四届C++B组省赛

⭐️个人主页&#xff1a;小羊 ⭐️所属专栏&#xff1a;蓝桥杯 很荣幸您能阅读我的文章&#xff0c;诚请评论指点&#xff0c;欢迎欢迎 ~ 目录 试题A&#xff1a;日期统计试题B&#xff1a;01串的熵试题C&#xff1a;冶炼金属试题D&#xff1a;飞机降落试题E&#xff1a;接…...