RocketMQ源码本地搭建调试
1 GitHub源码
git clone https://github.com/apache/rocketmq.git
导入IDEA,可在命令行执行mvn compile一下,保证源码能够正确编译。本次我使用的master分支的版本-4.8.0。下面我们开始准备启动Namesrv。
2 启动Namesrv
到namesrv模块找到NamesrvStartup,启动main方法,报错如下:
Please set the ROCKETMQ_HOME variable in your environment to match the location of the RocketMQ installation
需设置环境变量ROCKETMQ_HOME
。怎么设置呢?看看报错位置:
// org.apache.rocketmq.namesrv.NamesrvStartup#createNamesrvController
if (null == namesrvConfig.getRocketmqHome()) {System.out.printf("Please set the %s variable in your environment to match the location of the RocketMQ installation%n", MixAll.ROCKETMQ_HOME_ENV);System.exit(-2);
}
从namesrvConfig.getRocketmqHome中获取的ROCKETMQ_HOME,进一步发现是NamesrvConfig里面的一个属性
// org.apache.rocketmq.common.namesrv.NamesrvConfig
// ROCKETMQ_HOME_PROPERTY = "rocketmq.home.dir";
// ROCKETMQ_HOME_ENV = "ROCKETMQ_HOME";
private String rocketmqHome = System.getProperty(MixAll.ROCKETMQ_HOME_PROPERTY, System.getenv(MixAll.ROCKETMQ_HOME_ENV));
- 为方便,可直接在源码NamesrvStartup的main方法第一行
- 也可设置环境变量ROCKETMQ_HOME
- 或启动时加入命令行参数 -Drocketmq.home.dir=/path
public static void main(String[] args) {System.setProperty(MixAll.ROCKETMQ_HOME_PROPERTY, "/Users/apple/doc/IDEAProjects/rocketmq");main0(args);
}
再次启动Namesrv,报错如下:
提示在我们配置的ROCKETMQ_HOME 目录下,没找到conf\logback_namesrv.xml 配置文件。
在项目中搜索logback_namesrv.xml 文件,找到在distribution\conf 目录下存在很多配置,可直接使用这些配置文件。直接把distribution\conf 目录copy到配置的ROCKETMQ_HOME 目录下即可。
然后在来启动一下,控制台打印:
说明NameSrv启动成功
3 启动Broker
找到BrokerStartup,直接启动:
Please set the ROCKETMQ_HOME variable in your environment to match the location of the RocketMQ installationDisconnected from the target VM, address: '127.0.0.1:51797', transport: 'socket'
知道咋办了吧。
broker需要连接namrsrv,所以在BrokerStartup 的main方法第一行添加如下两行代码:
public static void main(String[] args) {System.setProperty(MixAll.ROCKETMQ_HOME_PROPERTY, "/Users/apple/doc/IDEAProjects/rocketmq");System.setProperty(MixAll.NAMESRV_ADDR_PROPERTY, "127.0.0.1:9876");start(createBrokerController(args));
}
再启动:
虽然打印启动成功,再验证是否能成功发送和接收消息。
4 启动Producer
Producer的demo代码:
import org.apache.rocketmq.client.producer.DefaultMQProducer;
import org.apache.rocketmq.client.producer.SendResult;
import org.apache.rocketmq.common.message.Message;public class ProducerTest {public static void main(String[] args) throws Exception {String namesrvAddr = "127.0.0.1:9876";String group = "test_group";String topic = "test_hello_rocketmq";// 构建Producer实例DefaultMQProducer producer = new DefaultMQProducer();producer.setNamesrvAddr(namesrvAddr);producer.setProducerGroup(group);// 启动producerproducer.start();// 发送消息SendResult result = producer.send(new Message(topic, "hello rocketmq".getBytes()));System.out.println(result.getSendStatus());// 关闭producerproducer.shutdown();}
}
启动ProducerTest,控制台打印SEND_OK
,我们的producer发送消息也OK。
5 启动Consumer
上代码:
import org.apache.rocketmq.client.consumer.DefaultMQPushConsumer;
import org.apache.rocketmq.client.consumer.listener.ConsumeOrderlyContext;
import org.apache.rocketmq.client.consumer.listener.ConsumeOrderlyStatus;
import org.apache.rocketmq.client.consumer.listener.MessageListenerOrderly;
import org.apache.rocketmq.common.consumer.ConsumeFromWhere;
import org.apache.rocketmq.common.message.MessageExt;import java.util.List;
import java.util.concurrent.TimeUnit;public class ConsumerTest {public static void main(String[] args) throws Exception {String namesrvAddr = "127.0.0.1:9876";String group = "test_consumer_group";String topic = "test_hello_rocketmq";// 初始化consumerDefaultMQPushConsumer consumer = new DefaultMQPushConsumer();consumer.setNamesrvAddr(namesrvAddr);consumer.setConsumerGroup(group);// 订阅topicconsumer.subscribe(topic, (String) null);// 设置消费的位置,由于producer已经发送了消息,所以我们设置从第一个开始消费consumer.setConsumeFromWhere(ConsumeFromWhere.CONSUME_FROM_FIRST_OFFSET);// 添加消息监听器consumer.registerMessageListener(new MessageListenerOrderly() {@Overridepublic ConsumeOrderlyStatus consumeMessage(List<MessageExt> msgs, ConsumeOrderlyContext context) {msgs.forEach(msg -> {System.out.println(new String(msg.getBody()));});return ConsumeOrderlyStatus.SUCCESS;}});// 启动consumerconsumer.start();// 由于是异步消费,所以不能立即关闭,防止消息还未消费到TimeUnit.SECONDS.sleep(2);consumer.shutdown();}
}
启动消费者,能够成功消费到消息,控制台打印hello rocketmq
。
6 总结
中间出一些问题,都能根据提示信息在源码中找到相应解决方案,多看源码,是成长捷径。
相关文章:
代码随想录算法训练营第十一天 | 20.有效的括号 1047.删除字符串中的所有相邻 重复项 150.逆波兰表达式求值
20. 有效的括号 题目链接 文章讲解 视频讲解思路:遍历字符串,如果栈不为空,则进行匹配如果匹配则出栈,否则入栈如果栈为空,直接入栈遍历结束后栈为空则说明全部匹配,否则没有全部匹配class Solution { public:bool isValid(string s) {stack<char> st;for(char ch …...
分治初步
分治初步 归并排序求逆序对 Sol:在归并排序过程中,本身就是分治思想,递归的对左区间排序,右区间同理。对于已经有序两段进行合并只需要\(O(n)\)的时间,递归共\(log_{2}{n}\)层,时间复杂度为\(O(nlog_{2}{n})\) debug:1.对于没有到达边界的一段也需要放入临时数组,并且继…...
在Linux中,什么是操作系统?
操作系统(Operating System, OS)是管理和抽象计算机硬件资源,为用户和应用程序提供运行环境的系统软件。它是计算机系统中最关键的软件之一,充当硬件和用户、应用程序之间的中间层。以下是操作系统的一些核心概念和功能: 1. 核心功能:进程管理:操作系统负责创建、调度、…...
Celery专题
Celery专题 【一】Celery介绍 【二】Celery快速使用 【三】Celery包结构 【四】django中使用celery 【五】使用django_celery_beat在admin后台配置计划任务 【六】Celery admin监视任务 【七】Flower 监控celery任务 【八】任务异常自动告警...
UPF介绍
upf介绍很棒的文章链接如下: https://netflt.com/read/verilog/UPF************************************************************************************************ 作者:huakaimanlin 出处:https://www.cnblogs.com/huakaimanlin/ 版权所有,如需转载请声明出处...
P10409 「QFOI R2」水落溪流浅浅
P10409 「QFOI R2」水落溪流浅浅题目传送门一道简单字符串。 这道题最简单的方法是使用字符串,但是由于本人不太喜欢使用字符串,所以使用了模拟的方法。 首先,你可以根据题意写出如下的代码: // 「QFOI R2」水落溪流浅浅 // code by:cq_irritater // time:2024/05/04 #incl…...
RocketMQ源码本地搭建调试
1 GitHub源码 git clone https://github.com/apache/rocketmq.git导入IDEA,可在命令行执行mvn compile一下,保证源码能够正确编译。本次我使用的master分支的版本-4.8.0。下面我们开始准备启动Namesrv。 2 启动Namesrv 到namesrv模块找到NamesrvStart…...
Axios 二次封装并使用
index.js import axios from "axios";let token localStorage.getItem("token"); // let token "123213"; class Request {// 自定义变量instance;constructor(config) {// console.log(config)// 创建axios 实例,变量接收this.in…...
【SpringCloud】Nacos集群搭建
集群结构图官方给出的Nacos集群图如下:其中包含3个nacos节点,然后一个负载均衡器代理3个Nacos。这里负载均衡器可以使用nginx。我们接下来要尝试 Nacos集群搭建,效果图如下所示:三个nacos节点的地址:节点ipportnacos1l…...
【CSDN的2022与2023】普普通通的三年,从懵懂、焦虑到坚定、奋进,破除焦虑努力成为更好的自己
大家好,我是黄小黄!一名普通的软件工程在读学生。最近终于闲下来了一丢丢!借着休息之余,来写一篇年度总结散散心~与其说是年度总结,不如说是给大学生活与莽莽撞撞的自己一个交代叭! 这些都是小标题~碎碎念1…...
k8s单机版使用本地存储local-path-provisioner
在k8s单机环境中,我们经常使用本机路径作为持久化存储。在k8s官方文档中有两种方式使用本机存储,一种是hostPath,另一种是local volume,这两种都不支持动态扩容,并且程序移植改动比较大,而local-path-provi…...
MySQL优化(1)执行计划explain中type属性详解
系列文章目录1.初始化测试数据1.初始化表格(user表)2.初始化表格(product表)3.初始化表格(user表数据初始化)4.初始化表格(product表函数)5.初始化表格(product表数据初始…...
servlet过滤器Filter简要回顾-过滤请求字符编码,/和/*和/**的区别
servlet过滤器Filter简要回顾-过滤请求字符编码,/和/*和/**的区别servlet过滤器1.filter过滤器的含义2.filter过滤器的使用3.测试-过滤字符编码正确响应中文编码3.1 创建servlet用于显示中文字符3.2 自定义过滤器3.3 配置web.xml中的servlet映射以及过滤器请求拦截3.4 运行输出…...
Java链表OJ题
目录1. 删除链表中等于给定值val的所有结点2. 逆置单链表3. 链表的中间结点4. 链表中倒数第k个结点5. 将两个有序链表合并为一个新的有序链表6. 以给定值x为基准将链表分割成两部分7. 判断是否为回文链表8. 两个链表的第一个公共结点9. 判断链表中是否有环10. 链表开始入环的第…...
0、Spring工程构建Spring快速入门Spring配置文件详解注入Sprint相关API
1、Spring工程构建 创建工程项目目录文件夹 IDEA选择项目new一个module 配置案例 aop创建 创建并下载完毕后,点击file选择projert 选择按照的jdk版本 output选择当前目录, 点击右下方apply 选择facets,点击""号选择web 选择当前…...
网络原理之HTTP/HTTPS、TCP、IP四层协议栈
文章目录一、应用层(一)xml协议(二)json协议(三)protobuffer协议(四)HTTP协议1. 抓包工具,fiddler2. HTTP报文格式3. HTTP请求(Request)(1)URL基本…...
CS61B 2021spring HW0
HW 0: A Java Crash Course 文章目录HW 0: A Java Crash CourseA Basic ProgramCreative Exercise 1a: Drawing a TriangleCreative Exercise 1b: DrawTriangleExercise 2、3Optional: Exercise 4Java可视化orz表达积累参考资料这个hw是optional,然后主要是给至少学…...
自动驾驶环境感知——视觉传感器技术
文章目录1. 摄像头的成像原理1.1 单目视觉传感器的硬件结构1.2 单目视觉的成像原理 –小孔成像模型1.3 单目视觉的成像原理 – 像素坐标系1.4 单目视觉三维坐标系转换 – 外参1.5 单目视觉的坐标系转换 – 从世界坐标点到像素坐标1.6 单目视觉的特性2. 视觉传感器的标定2.1 视觉…...
分享148个ASP源码,总有一款适合您
ASP源码 分享148个ASP源码,总有一款适合您 下面是文件的名字,我放了一些图片,文章里不是所有的图主要是放不下..., 148个ASP源码下载链接:https://pan.baidu.com/s/1e2PvBmXxZA8C3IelkP8ZtQ?pwdj7lp 提取码&#x…...
Java线程的生命周期的五种状态
前面在《有关Java多线程的几个概念》(https://blog.csdn.net/helloworldchina/article/details/128753898)讲述了Java线程的生命周期的五种状态。在这里再详述一下线程的5种状态。 在java中,任何对象都要有生命周期,线程也一样&a…...
springboot自定义拦截器的简单使用和一个小例子
springboot自定义拦截器的使用1. 自定义拦截器2. 拦截器登录验证的小demo2.1 配置pom.xml2.2 创建User的bean组件2.3 创建需要的表单页面以及登录成功的页面2.4 编写controller映射关系2.5 自定义拦截器类,实现intercepetor接口2.6注册添加拦截器,自定义…...
APT之木马静态免杀
前言 这篇文章主要是记录手动编写代码进行木马免杀,使用工具也可以免杀,只不过太脚本小子了,而且工具的特征也容易被杀软抓到,指不定哪天就用不了了,所以要学一下手动去免杀木马,也方便以后开发一个只属于…...
设计模式 - 创建型模式_抽象工厂模式
文章目录创建型模式概述Case场景模拟工程模拟早期单机Redis的使用Bad ImplBetter Impl (抽象⼯⼚模式重构代码)定义适配接⼝实现集群适配器接口代理方式的抽象工厂类单元测试小结创建型模式 创建型模式提供创建对象的机制, 能够提升已有代码…...
9、断点调试
文章目录9、断点调试9.1 为什么需要Debug9.2 Debug的步骤1 添加断点2 启动调试3 单步调试工具介绍9.3 多种Debug情况介绍1 行断点2 方法断点3 字段断点4 条件断点5 异常断点6 线程断点7 强制结束9.4 自定义调试数据视图9.5 常见问题【尚硅谷】idea实战教程-讲师:宋红…...
yolo结构介绍
更新中 yolo结构: 这个是针对最早的v5版本1.0进行讲解,现在2022最新版本是V6.2。有一些细节的差别比如Backbone部分Focus倍替换成6*6的Conv,bottleneckCSP替换为C3,Neck部分SPP被替换成SPPF等 Release v1.0 ultralytics/yolov5 (github.com) # parameters nc: 80 # n…...
大数据技术架构(组件)7——Hive:Filter PushDown Cases And Outer Join Behavior
1.2、Filter PushDown Cases And Outer Join Behavior前提:关闭优化器set hive.auto.convertjoinfalse; set hive.cbo.enablefalse;Inner Join:1、Join On中的谓词: 左表下推、右表下推2、Where谓词:左表下推、右表下推-- 第一种情况: join on 谓词 selectt1.user_id,t2.user_i…...
【MySQL】第十二部分 子查询
【MySQL】第十二部分 子查询 文章目录【MySQL】第十二部分 子查询12. 子查询12.1 单行子查询12.2 多行子查询12.3 非相关子查询和相关子查询12.4 EXISTS 与 NOT EXISTS关键字总结12. 子查询 子查询 说白了就是嵌套查询,在一个查询语句中嵌套另外一个查询语句进行内部查询. 子…...
Day08 C++STL入门基础知识五——vector容器(下) 插入删除-数据存取-交换容器-预留空间【全面深度剖析+例题代码展示】
More haste, less speed. 欲速则不达 文章目录1. 承接上文2. 插入操作2.1 函数原型(总括)2.2 尾插尾删2.2.1 操作2.2.2 代码展示2.2.3 测试结果2.3 迭代器插入2.3.1 操作2.3.2 代码展示2.3.3 测试结果2.4 think小思考2.4.1 小疑问2.4.2 思路2.4.3 代码展示2.4.4 测试结果3. 删除…...
打工人必知必会(二)——劳动合同解除
目录 1、劳动合同的解除种类 2、协商解除劳动合同 3、用人单位解除劳动合同 1)过错性解除劳动合同 2)非过错性解除劳动合同 4、经济性裁员解除劳动合同 5、违法解除劳动合同 6、 劳动者解除劳动合同 提前30日以书面形式通知用人单位 员工即时解…...
量化选股——基于多因子模型的量化策略(第1部分—因子测算策略构建)
文章目录1.多因子模型概述2.因子挖掘3.多因子策略4.多因子策略构建基于多因子的策略通用流程Fama-French三因子因子效果测算方法因子测算结论&量化策略构建东西有点多,拆开成多个文章,边写边整合~,应该会分成2部分: 第1部分—…...
(Java高级教程)第四章必备前端基础知识-第三节1:JavaScript简介和基础语法
文章目录一:JavaScript简介(1)JavaScript概述(2)JavaScript特点(3)JavaScript运行过程(4)JavaScript组成(5)JavaScript的引入方式和基本使用&…...
好的质量+数量 = 健康的创作者生态
缘起 CSDN 每天都有近万名创作者发表各种内容, 其中博客就有一万篇左右。 这个数量是非常可喜的,这也是 CSDN 的产品、研发运营小伙伴、和各位博主持续工作的结果。 衡量一个 IT 内容平台,除了数量之外,还有另外一些因素…...
利用Golang可选参数实现可选模式
本文讨论Golang函数可选参数及函数类型,以及如何利用可选函数类型实现可选模式。同时通过构造函数作为示例,实现强大带可选参数的构造函数,让代码更直观、灵活、支持扩展。 从需求开始 可选参数给函数传递额外参数扩展或修改其行为…...
【Git】Git 的基本使用
Git的简介 Git是一个版本管理控制系统(缩写VCS),是一个工具,github或者gitee是git命令行工具的网站化。它可以在任何时间点,将文档的状态作为更新记录保存起来,也可以在任何时间点,将更新记录恢复回来。 git的诞生历…...
MyBatis(一)MyBatis概述
一、什么是框架 ● 在文献中看到的framework被翻译为框架 ● java常用的框架: SSM三大框架:SpingSpringMVCMyBatisSpringBootSpringCloud● 框架其实就是对通用代码的封装,提前写好了一堆接口和类,我们可以在做项目的时候直接引…...
吴恩达机器学习笔记(三)逻辑回归
机器学习(三) 学习机器学习过程中的心得体会以及知识点的整理,方便我自己查找,也希望可以和大家一起交流。 —— 吴恩达机器学习第五章 —— 四、逻辑回归 线性回归局限性 线性回归对于分类问题的局限性:由于离群点…...
[python入门㉞] - python错误和异常处理
目录 ❤ 语法错误 ❤ 异常 ❤ 异常的分类 ❤ 错误异常处理 错误就是Python中的语法错误或者异常(解析错误)。 ❤ 语法错误 语法错误也叫做解析错误,是指python无法正确的识别代码的造成的。根本原因在于人的行为。 解决方法:按照正确的语法进…...
用1行Python代码识别增值税发票,YYDS
大家好,这里是程序员晚枫。 录入发票是一件繁琐的工作,如果可以自动识别并且录入系统,那可真是太好了。 今天我们就来学习一下,如何自动识别增值税发票并且录入系统~ 识别发票 识别发票的代码最简单,只需要1行代码…...
Sharding-JDBC(五)PageHelper分页报错 Can‘t find index: AggregationSelectItem
目录1.详细报错信息:2.问题原因:3.解决方法:3.1)使用MyBatisPlus自带的分页功能3.2)PageHelper ShardingJDBC53.3)PageHelper ShardingJDBC41.详细报错信息: Caused by: org.apache.ibatis.e…...
十六进制转八进制+超大数据处理(蓝桥杯基础练习C/C++)
目录 1 题目要求 2 代码 2.1 以十进制为媒介(不可行) 2.2 以二进制为媒介 3 可能会遇到的难点 4 结论 5 延伸 5.1 超大数据阶乘 5.2 超大数据加法 5.3 以十进制为媒介的进制转换 1 题目要求 2 代码 2.1 以十进制为媒介ÿ…...
蓝桥杯2020省赛python
蓝桥杯2020省赛Python 第一题:门牌制作 用了一个时间复杂度是n的算法,反正是填空题也不会出现TLE的事,只要别太离谱就行了。 利用python 的count函数 res 0 for i in range(1,2021):i str(i)res i.count(2) print(res)答案是2 第二题&…...
kaggle竞赛 | 计算机视觉 | Doodle Recognition Challenge
目录赛题链接赛题背景数据集探索合并多个类别CSV数据集数据建模 (pytorch)赛题链接 https://www.kaggle.com/competitions/quickdraw-doodle-recognition/overview/evaluation 数据集从上述链接中找 赛题背景 Quick,Draw!作为实验性游戏发布ÿ…...
如何设计一个70W在线人数的弹幕系统文章分析
原文地址: 如何设计一个70W在线人数的弹幕系统 1:http包头 一个http数据包请求由4个部分组成:请求行、请求头标、空行、请求数据。 请求行分为了三个部分。请求方法,请求url与http版本。请求头行,由关键字值对组成&…...
基于Android的动漫之家系统的设计与实现
目录 1.课题研究立项依据 2.文献综述 3.课题研究的基本内容及预期目标或成果 4.课题的研究方案 5.研究进度安排 6.主要参考文献 1.课题研究立项依据 目前国家的动漫交流也正处在不断改革、创新的阶段,我国有关部门充分吸取国外优秀的动漫交流模式,…...
流批一体计算引擎-7-[Flink]的DataStream连接器
参考官方手册DataStream Connectors 1 DataStream连接器概述 一、预定义的Source和Sink 一些比较基本的Source和Sink已经内置在Flink里。 1、预定义data sources支持从文件、目录、socket,以及collections和iterators中读取数据。 2、预定义data sinks支持把数据写…...
测试篇(三):测试用例的万能公式、对水杯和登录页面设计测试用例、测试用例的设计方法
目录一、测试用例的万能公式二、对登录页面设计测试用例三、测试用例的设计方法3.1 基于需求的设计方法3.2 等价类3.3 边界值3.4 判定表3.5 正交排列3.6 场景设计法3.7 错误猜测法四、面试真题一、测试用例的万能公式 首先,为"水杯"设计一个测试用例&…...
【进击的算法】基础算法——怎么优雅地控制边界范围
学习范围 : ✔️数组 ✔️边界控制本文作者 : 蓝色学者i 边界控制的艺术前言一、为什么需要控制边界?二、怎么优雅地控制边界?三、令人抓狂的二分查找3.1 题目概述3.2解题思路3.3 解决方案方案一:边界都有效方案二&…...
linux基本功系列之-rpm命令实战
文章目录前言🚀🚀🚀一. rpm命令介绍1.1 RPM包介绍1.2 rpm包的优缺点1.3 rpm包获取方式二. 语法格式及常用选项2.1 RPM安装常用参数2.2 rpm格式介绍三. 应用案例3.1 从本地安装软件包3.2 查询lrzsz的包有没有安装3.3 查询命令是哪个包安装的3.…...
冯诺依曼体系结构及操作系统(OS)的简单认识
文章目录冯诺依曼体系结构操作系统(Operator System)冯诺依曼体系结构 冯诺依曼结构也称普林斯顿结构,是一种将程序指令存储器和数据存储器合并在一起的存储结构。数学家冯诺依曼提出了计算机制造的三个基本原则,即采用二进制逻辑…...
day4 24. 两两交换链表中的节点 ● 19.删除链表的倒数第N个节点 ●160 链表相交 ● 142.环形链表II
两两交换链表中的节点 链表的指针,要仔细画图,搞清楚cur和cur的next在哪里 这个题还是有点绕的,两两一组交换,还有奇偶数要考虑 class Solution { public:ListNode* swapPairs(ListNode* head) {ListNode* dummyhead new ListNo…...
【Linux】目录权限和默认权限
上期介绍了Linux的文件权限,这期我们仔细来说说Linux环境下目录权限和默认权限一、目录权限1.1 进入目录所需的权限我们在进入目录时需要什么样的权限呢?是r、w还是x呢?下面我们一起来验证一下:📋如下我门拥有全部目录…...
kaggle竞赛 | 计算机视觉 | 数字图像基础操作
目录cv2基本操作图片哈希图像数据扩展无监督数据扩展方法监督式数据扩展方法cv2基本操作 import numpy as np import matplotlib.pyplot as plt import cv2img cv2.imread(cat.jpeg) plt.imshow(img)img cv2.imread(cat.jpeg) img cv2.cvtColor(img, cv2.COLOR_BGR2RGB) pl…...
7. 好客租房-项目日常推进ing
7. 好客租房-项目日常推进ing 本章节不涉及大量内容,主要是为了推荐项目代码日常进度而设置, 包括添加mock接口, 添加更新房源接口, 为系统添加缓存. 7.1 为前端系统提供mock服务 往往在项目开发中, 为实现前后端并行开发,后端需要对前端所有的请求都都进行支持。…...
前同事居然因为 Pycharm 的这个功能,即使离职三年也依然经常被请去喝茶~
大家好,我是 哈士奇 ,一位工作了十年的"技术混子", 致力于为开发者赋能的UP主, 目前正在运营着 TFS_CLUB社区。 💬 人生格言:优于别人,并不高贵,真正的高贵应该是优于过去的自己。💬 ὎…...
python使用类装饰器生成函数的使用日志
1 什么是类装饰器 在了解类装饰器之前,建议大家先了解装饰器的概念。 装饰器知识快速入门链接 类装饰器是 Python 中的一种特殊类型的装饰器,它是一个类而不是一个函数。与函数装饰器不同,类装饰器可以在运行时接收参数并返回一个可调用的对…...
有关Android的TextView组件的几个问题
文章目录小结问题及解决参考小结 TextView组件与EditText类似,但有一些不同,理论上TextView是只读的。尝试了让TextView组件可以弹出SetError的提示信息,只读,并不能弹出Android软键盘。 问题及解决 如果需要将TextView组件不能…...
突破性能瓶颈: Java 22的性能提升之旅
Java 22带来的性能改进,特别是在垃圾回收(GC)方面的优化,对于实时系统有着显著的影响。实时系统要求在保证高响应性的同时,还需要保持较高的可靠性和稳定性。以下是一些关键点,展示了Java 22性能改进对于实…...
硬盘坏道如何检测和修复?
硬盘是我们储存数据的重要设备,然而在使用过程中,我们可能会遇到一些困扰,比如硬盘出现坏道的问题。那么,什么是坏道呢?硬盘出现坏道会对我们的性能和数据安全产生影响吗?如何去检测和修复这些坏道呢&#…...
VUE格式探究记录
1.背景 vue格式为鹰图Intergraph SP3D格式,是私有格式。博主对vue格式的直接解析可行性进行了初步的探究,记录如下。 2.探究 目前能够解析vue格式的软件有3类(其背后路线有可能有相同的), 鹰图Intergraph系列软件&…...
OBS插件--音频采集
音频采集 音频采集是一款 源 插件,类似于OBS的win-capture/game-capture,允许从特定应用程序捕获音频,而不是捕获整个系统的音频。避免了因为特定音频的采集而需要引入第三方软件,而且时延也非常低。 下面截图演示下操作步骤: …...
【C++】类和对象终章 --内部类和匿名对象,再识类和对象
欢迎来到CILMY23的博客 🏆本篇主题为: 类和对象终章 --内部类和匿名对象,再识类和对象 🏆个人主页:CILMY23-CSDN博客 🏆系列专栏:Python | C | C语言 | 数据结构与算法 | 贪心算法 | Linux …...
python读取excel数据写入mysql
概述 业务中有时会需要解析excel中的数据,按照要求处理后,写入到db中; 用python处理这个正好简便快捷 demo 没有依赖就 pip install pymysql一下 import pymysql from pymysql.converters import escape_string from openpyxl import loa…...
视频监控平台智能边缘分析一体机视频存储平台打手机检测算法
智能边缘分析一体机的打手机检测算法是一种集成了先进图像处理、计算机视觉和人工智能技术的解决方案,专门用于实时监测和识别监控场景中的打手机行为。 在提到“打手机检测算法”时,可能是指一种能够识别和检测使用手机行为的算法。这种算法可以应用于多…...
【亚马逊云】注册APN账号及报考AWS认证考试说明演示
文章目录 1. 登录AWS网站2. 注册APN账号3. 更改APN账号密码(选)4. 修改APN账号信息(选)5. 查看AWS认证情况(选)6. AWS认证考试报名流程7. 修改报名控制台语言版本(选)8. 开始报名AWS…...
抖店商品详情API接口(店铺|标题|主图|价格|SKU属性等)
抖店商品详情API接口(店铺|标题|主图|价格|SKU属性等) 抖店商品详情API接口是指通过调用抖音开放平台提供的接口,获取抖店上商品的详细信息的方法。 抖店开放平台提供了一系列的接口,可以用于获取商品的基本信息、价格、库存、销量、评价等各种信息。以…...
元类结合__new__
__new__:用来生成骨架 __init__:骨架添加血肉 【一】类中的__new__ class MyClass(object):def __init__(self,name,age):print(f"给当前MyClass类的对象初始化属性的时候会触发__init__")self.name nameself.age age def __call__(self,*args,**kwargs):pri…...
ubuntu中如何删除常规匹配不到的乱码目录文件
原因是之前误操作创建了多个带空格的gerrit仓库的时候导致的服务器乱码,进入geriit服务器可以查看到如下的一个异常目录,常规rm -rf 操作的时候是匹配不到这个目录的。 这时候我们应该考虑使用inode的性质来匹配删除。 注:在Linux文件系统中…...
串,数组和广义表
2.1.求next和nextval的实现 代码: int next_one(char *str, int len) {int result 1;if(len 1 || len 0) return len;for (size_t i 1; i < len; i){ if(compare(str, strlen-i, i)) {result i1;//break;}}return result; }int next(char *str, int *…...