![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
python
文章平均质量分 90
qq_43479892
这个作者很懒,什么都没留下…
展开
-
使用jmx exporter采集kafka指标
并在prometheus的配置文件中添加consumer target,reload prometheus 配置即可发现consumer的指标,producer的指标采集与consumer类似。注:由于不同的配置Jmx exporter生成的kafka指标名称是不一样的,因此并没有统一的kafka grafana dashboard,最好还是自己绘制。Jmx exporter中包含了kafka各个组件的。的格式不同,因此需要特定的重命名配置,可以将其追加到。启用的方式比较简单,只需要在。原创 2022-11-03 01:10:54 · 720 阅读 · 0 评论 -
我的 React 最佳实践
以上的相关实践,是本人在日积月累中总结和摸索出来的。如有雷同,说明你和我有一样的感受。原创 2022-11-02 12:37:52 · 362 阅读 · 1 评论 -
Java Timer使用介绍
由于Timer内部仅维护一个线程来执行所有任务,所以当前一个任务耗时过长,可能会导致后一个任务的执行被延误。出现任务延误的情况下,固定延时 schedule和 固定速率 scheduleAtFixedRate 的区别就在于,schedule会顺延,而scheduleAtFixedRate会把延误任务立马补上。在网上看到几个非常恰当的例子,贴上来加深理解。例1:暑假到了老师给schedule和scheduleAtFixedRate两个同学布置作业。老师要求学生暑假每天写2页,30天后完成作业。原创 2022-11-02 01:10:40 · 655 阅读 · 0 评论 -
测试开发工程师到底是做什么的?
所以对于测试人员来说,并不一定要对测试开发这个职位的技能有一定的界限或一个明确的范围,只要知道自己是做技术,而且在自己所擅长的领域不断的专研,你就是一个测试开发工程师。当然测试开发的待遇要比普通测试要高很多,同等年龄段的测试开发和开发人员的工资基本一样。在阿里,一个测试开发的P7要和开发人员的P7工资一样。工作这么多年,见过很多测试同事,有的同事只做自动化测试,年薪也能达到50多万。有的同事只做性能测试,一样可以拿到50多万。原创 2022-11-01 12:35:15 · 578 阅读 · 0 评论 -
mysql InnoDB事务
上一篇关于buffer pool的学习中,我们学习Buffer pool相关知识,innodb再对某个页面进行读写访问时,会将这个页面读到buffer pool 中,之后如果修改了某个页面,也不会立即刷新到磁盘,而只是将缓冲页面的控制块添加到flush 链表中,之后某个时间点(后台定时任务线程每隔一定时间将flush 链表中的脏页刷新到磁盘,或者新的页面需要缓冲,将LRU链表中一些脏页刷盘)。来控制是否自动提交事务,如果不显示的使用开启事务的命令,那么每一条语句就视为一个独立的事务。原创 2022-11-01 01:06:42 · 201 阅读 · 0 评论 -
Windows下自动云备份思源笔记到Gitee
思源笔记是一款本地笔记为主的软件,其目前提供了148元/year的付费同步功能,但对于21世纪中国难民而言还是太贵啦。条件允许的同学还是使用官方的同步,支持下作者。所以,就在思考有没有白嫖的一种方法,能同步且不要付费呢。网上有些使用云盘自动同步,但可能导致数据丢失。这里提供方法:笔记通过小软件的方式进行自动同步到git。这个[siyuansyntogit]小软件基于python开发,我只在win10上进行过测试,下方有源码及exe提供,诸君自取。原创 2022-10-31 01:05:38 · 560 阅读 · 0 评论 -
vulnhub靶场之THALES: 1
在.ssh下发现密匙:id_rsa文件,将密匙文件复制保存到本地文件upfine,然后命令:python2 /usr/share/john/ssh2john.py /home/kali/Desktop/upfine > passwd生成密码本,然后命令:john --wordlist=/usr/share/wordlists/rockyou.txt passwd进行破解,成功获取密码:vodka06。切换thales账户:su thales,读取下user.txt文件,成功获取到flag信息。原创 2022-10-30 12:35:10 · 738 阅读 · 0 评论 -
GCC 指令详解及动态库、静态库的使用
GCC 是 Linux 下的编译工具集,是「GNU Compiler Collection」的缩写,包含 gcc、g++ 等编译器。这个工具集不仅包含编译器,还包含其他工具集,例如 ar、nm 等。GCC 工具集不仅能编译 C/C++ 语言,其他例如 Objective-C、Pascal、Fortran、Java、Ada 等语言均能进行编译。原创 2022-10-30 01:05:09 · 4610 阅读 · 0 评论 -
pta第二次博客
蛟龙号”载人深潜器是我国首台自主设计、自主集成研制的作业型深海载人潜水器,设计最大下潜深度为7000米级,也是目前世界上下潜能力最强的作业型载人潜水器。“蛟龙号”可在占世界海洋面积99.8%的广阔海域中使用,对于我国开发利用深海的资源有着重要的意义。中国是继美、法、俄、日之后世界上第五个掌握大深度载人深潜技术的国家。在全球载人潜水器中,“蛟龙号”属于第一梯队。原创 2022-10-29 12:35:01 · 109 阅读 · 0 评论 -
JS中数值类型的本质
Number.toPrecision()用于保留并四舍五入到指定的数字位数,默认全部保留,参数为0,则保留1位有效数字。众所JS爱好友周知,JS中只有一个总的数值类型——number,它包含了整型、浮点型等数值类型。符号位在最高位中,该位为1表示该数是负数,为0则表示正数;有效位数在64位的最低几位中,通常表示一个范围内的小数。因此,该位实际上并不需要被存放于number 当中,于是就多出了能用的1位,称作彩蛋位。那么我们将0.1传入函数呢,会产生怎样的结果,接着来看。那么,我们怎么在业务中,使得。原创 2022-10-29 01:06:01 · 692 阅读 · 0 评论 -
京东云开发者|探寻软件架构的本质,到底什么是架构?
定义 ”架构是什么“ 是件非常困难的事情,不同的组织对于软件架构有不同的定义,每个人心中也有自身对于系统架构定义的认知。就好比我们无法百分之百表述模型而只能产出模型不同维度的视图,对架构进行完备的定义是不可能的。“道可道,非常道。名可名,非常名”。行业内不同的组织和个人从不同的视角对 “什么是架构” 进行了定义或阐述。IEEE 关于架构的定义将系统架构定义为:架构是系统组织结构 + 组件及联系(组件间以及组件和环境之间) + 原则的组合。原创 2022-10-28 01:05:01 · 151 阅读 · 0 评论 -
【一】ERNIE:飞桨开源开发套件,入门学习,看看行业顶尖持续学习语义理解框架,如何取得世界多个实战的SOTA效果?
近年来,语义表示(language representation)技术的发展,使得 “预训练-微调” 作为解决NLP任务的一种新的范式开始出现。一个通用的表示能力强的模型被选择为语义表示模型,在预训练阶段,用大量的语料和特定的任务训练该模型,使其编码海量的语义知识;在微调阶段,该模型会被加上不同的简单输出层用以解决下游的 NLP 任务。早期较为著名的语义表示模型包括ELMo和GPT,分别基于双层双向LSTM和Transformer Decoder框架,而真正让语义表示技术大放异彩的是的提出。原创 2022-10-27 12:34:48 · 154 阅读 · 0 评论 -
进制转换以及位运算
本文代码演示采用的是golang语言。原创 2022-10-26 12:36:14 · 791 阅读 · 0 评论 -
JUC中的AQS底层详细超详解
}// cas方法如果state上限只有1,那么就是独占模式Exclusive,例如 ReentrantLock如果state上限大于1,那就是共享模式Share,例如 Semaphore、CountDownLatch、ReadWriteLock,CyclicBarrier对外暴露的getter/setter方法,是走不了CAS的。而且setter/getter没有被synchronized修饰。所以必须要volatile,保证可见性。原创 2022-10-26 01:04:09 · 256 阅读 · 0 评论 -
5大负载均衡算法 (原理图解)
陈睿 |mikechen, 10年+大厂架构经验,「mikechen 的互联网架构」系列文章作者,专注互联网架构技术。👇「mikechen 的互联网架构」的更多技术文章合集👇Java并发|JVM|MySQL|Spring|Redis|分布式|高并发。原创 2022-10-25 12:35:37 · 623 阅读 · 0 评论 -
前端无法渲染CSS文件
启动前端后,发现前端的页面渲染不符合预期,看情况应该是css文件没有生效。排查到这里,基本就确定了原因——浏览器只会渲染。在 Nginx 配置文件中添加这两行代码即可。因此,在使用Nginx作为代理服务器时,需要在。引入MIME配置文件。原创 2022-10-25 01:07:57 · 1260 阅读 · 0 评论 -
如何实现一个SQL解析器
在选择SQL解析器应用到我们实际的业务场景之前,我们先来了解一下SQL解析器的核心知识点。如何理解语法解析呢?语法解析我们可以这么来进行理解,在启动语法解析任务时,语法分析的任务会在词法分析的结果上将词条序列组合成不同语法短句,组成的语法短句将与相应的语法规则进行适配,若适配成功则生成对应的抽象语法树,否则报会抛出语法错误异常。原创 2022-10-24 12:34:36 · 260 阅读 · 0 评论 -
sql语法巧用之not取反
以上,仍然停留在比较简单的场景,即只有1个条件或者2个条件的情况下,而更多的是,可能3个、4个、10个甚至更多个,甚至还有’()‘括号的场景,多层嵌套,这样的求反,其实就相当复杂了。理论上可行的,实际上不管条件有多少个,在sql的表达中,都是一个个的bool表达式,然后使用’and’/‘or’ 连接,而且更重要的,不管有多少个’and’/‘or’, 最终总要一个个计算,所以我们只需要一直拆解条件表达式,直到它是一个原子表达式,然后再套用字典转换,就可以做到求反的效果了。是了,没问题,语法支持,结果正确。原创 2022-10-24 01:07:09 · 3120 阅读 · 0 评论 -
RabbitMQ延迟消息指南【.NET6+EasyNetQ】
自此,利用队列的死信交换机策略和利用插件实现RabbitMQ消息延迟已经介绍完毕,下面是.NET6 demo完整的项目结构其实除了这两种,EasyNetQ也有一个调度器(Scheduler)可以实现延迟消息,但似乎需要依赖数据库,不是主流的做法不推荐使用。如有任何问题或者意见,欢迎评论。原创 2022-10-23 12:35:09 · 230 阅读 · 0 评论 -
2流高手速成记(之四):SpringBoot整合redis及mongodb
最近很忙,好不容易才抽出了时间,咱们接上回上次我们主要讲了如何通过SpringBoot快速集成mybatis/mybatis-plus,以实现业务交互中的数据持久化,而这一切都是基于关系型数据库(SQL)实现的本节我们来把关注点转向NoSQLNoSQL,泛指非关系型的数据库。随着互联网web2.0网站的兴起,传统的关系数据库在处理web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得力不从心,出现了很多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展。N原创 2022-10-23 01:06:06 · 421 阅读 · 0 评论 -
驱动开发:内核枚举进程与线程ObCall回调
首先我们需要定义好结构体,结构体是微软公开的,如果有其它需要请自行去微软官方去查。线程回调,之所以放在一起来讲解是因为这两中回调在枚举是都需要使用通用结构体。中我们通过特征码定位实现了对注册表回调的枚举,本篇文章。的枚举,如果是想要输出线程句柄,则只需要替换代码中的。就可以拿到链表头结构,得到后将其解析为。代码部分的实现很容易,由于进程与。所以放在一起来讲解最好不过。运行这段驱动程序,即可得到。运行这段驱动程序,即可得到。将教大家如何枚举系统中的。即可,修改后的代码如下。的枚举很容易,直接通过。原创 2022-10-22 12:34:26 · 180 阅读 · 0 评论 -
自己动手写线程池——向JDK线程池进发
在前面的文章自己动手写乞丐版线程池中,我们写了一个非常简单的线程池实现,这个只是一个非常简单的实现,在本篇文章当中我们将要实现一个和JDK内部实现的线程池非常相似的线程池。// 当前在执行任务的线程个数 |||||||| | ||| | |||| | |ct:表示当前线程池当中线程的个数。corePoolSize:线程池当中核心线程的个数,意义和上面谈到的JDK的线程池意义一致。maximumPoolSize:线程池当中最大的线程个数,意义和上面谈到的JDK的线程池意义一致。原创 2022-10-22 01:04:10 · 421 阅读 · 0 评论 -
服务器之Apollo单机部署(快速安装)
需要对应起来,新增配置key:service,value:hello world,并且是已发布。账号:apollo,密码:admin;官网单机部署的方式分为两种:普通部署和docker部署。使用的),把数据库、表的创建和样例数据都分别准备了。然后建立数据库连接,进入到快速包下面(将对应的数据库名和地址修改成自己的。会有问题,客户端请求的时候地址会出现。文件,只需要导入数据库即可。基于上述环境,我们暂停。这一步就是个坑😂,创建。,那肯定是访问不到的。在服务启动设置上配置。原创 2022-10-21 12:35:24 · 125 阅读 · 0 评论 -
.NET Core C#系列之XiaoFeng.Threading.JobScheduler作业调度
开源地址:https://github.com/zhuovi/XiaoFeng/tree/master/Threading。比如:每分钟执行一次,每小时执行一次,每天执行一次,第二周几执行,每月几号几点执行,间隔多少个小时执行一次等。语雀地址:https://www.yuque.com/fayelf/xiaofeng/yl8tkh。当前作业为5 分钟后执行一次,然后就是销毁,作业从调度中移除。当前作业为,5分钟后运行,然后每周的周一,四的2点执行一 次。当前作业为,5分钟后运行,然后每天2点执行一次。原创 2022-10-21 01:07:13 · 425 阅读 · 0 评论 -
VS Code For Web 深入浅出 -- 进程间通信篇
从 enum type 可以看出,VSCode 的 IPC 模块同时支持两种调用方式,一种是基于 Promise 的调用实现, 另一种是通过 Event Emitter/Listener 的那一套事件监听机制来实现。在上一篇中,我们一起分析了 VS Code 整体的代码架构,了解了 VS Code 是由前后端分离的方式开发的。综上,我们就梳理清楚了 VSCode 中 IPC 模块的基本架构,了解了进程间的通信细节。通信的,都可以被认为是进程间通信,都可以复用相同的代码编写。原创 2022-10-20 12:34:55 · 75 阅读 · 0 评论 -
Tomcat 调优之从 Linux 内核源码层面看 Tcp backlog
这篇文章以 Tomcat 性能调优为切入点,首先简单讲了下 Tomcat 线程池调优。然后借 Tomcat 配置参数 accept-count 引出了 Tcp backlog,从 linux 内核源码层面详细讲解了下 TCP backlog 参数以及半连接、全连接队列的相关知识,包括连接队列大小设置,以及队列溢出怎么排查,这些东西也是我们服务端开发需要掌握的,在性能调优,问题排查时会有一定的帮助。原创 2022-10-19 12:36:47 · 99 阅读 · 0 评论 -
Selenium+Python系列 - 开发环境搭建
我从未想过自己会写python系列的自动化文章,有些同学会问,那你现在为什么又开始写了?不止一个人找过我,问我可以写一些Python自动化的文章吗,答案是肯定的。笔者Java党,整Python其实也是能整的,哈哈。那么,以后我将给大家带来接口和UI自动化两个方面的分享,还请大家持续关注我!到此,整个web自动化的开发环境就搭建完毕了,不得不说,真的比Java开发环境简单容易多了,虽然然容易,但是我还是喜欢写Java!😂觉得文章对您有帮助,请移步关注我的系列文章。原创 2022-10-19 01:05:11 · 154 阅读 · 0 评论 -
规则引擎深度对比,LiteFlow vs Drools!
Drools是一款老牌的java规则引擎框架,早在十几年前,我刚工作的时候,曾在一家第三方支付企业工作。在核心的支付路由层面我记得就是用Drools来做的。难能可贵的是,Drools这个项目在十几年后还依旧保持着开源和更新。而LiteFlow也是一款java规则引擎,于2020年开源。经过2年的迭代,现在功能和特性也非常棒,很适合用在高复杂度的核心业务上,同时又能保持业务的灵活性。这篇文章我们就来深入比较下这两款框架,都适合用在什么样的场景,有什么异同点,以及在相同的场景下表现力如何。原创 2022-10-18 12:36:31 · 1972 阅读 · 0 评论 -
如何实现通过Leaflet加载dwg格式的CAD图
在前面介绍了通过openlayers加载dwg格式的CAD图并与互联网地图叠加,openlayers功能很全面,但同时也很庞大,入门比较难,适合于大中型项目中。而在中小型项目中,一般用开源的leaflet比较多,leaflet小而美,插件很多。本文介绍如何用Leaflet来加载DWG格式的CAD图,并在上面做应用开发,如与互联网地图叠加显示等。Leaflet是领先的用于移动友好交互式地图的开源 JavaScript 库。仅仅重约 39KB 的 JS,它拥有大多数开发者所需要的所有地图功能。原创 2022-10-18 01:04:10 · 892 阅读 · 1 评论 -
从0到1设计通用数据大屏搭建平台
一直以来,许多产品平台都在尝试通过可视化搭建的手段来降低 GUI 应用的研发门槛,提高生产效率。随着我们业务的发展,数据建设的完善,用户对于数据可视化的诉求也日益增多,而数据大屏是数据可视化的其中一种展示方式,它作为大数据展示媒介的一种,被广泛运用于各种会展、公司展厅、发布会等。原创 2022-10-17 12:35:19 · 356 阅读 · 0 评论 -
MybatisPlus生成主键策略方法
因为一般数据库主键为String类型,所以接收类型为String,生成的uuid数据包含-,所以要去掉-,也可以用当前时间戳+随机id的形式生成唯一的,下面是以String类型为例子,有知道其他方法的小伙伴们欢迎在底下留言,本人小白一枚轻喷!SpringBoot集成Mybatis-Plus。(当并发创建时有可能会重复所以建议使用雪花算法)当然这些只是我的建议,大家可以去找找其他的方法。中的生成方法,下面是以int类型为例子。使用hutool需要导入依赖。原创 2022-10-17 01:05:03 · 801 阅读 · 0 评论 -
Linux Block模块之deadline调度算法代码解析
Deadline调度器对一个请求的多方面特性进行权衡来进行调度,以期望既能满足块设备扇区的顺序访问又能兼顾到一个请求不会在队列中等待太久导致饿死。Deadline调度器为了兼顾这两个方面,通过红黑树来对请求按起始扇区序号进行排序,称为。对请求进行合并,elevator会自己做后向合并,并且后向合并优先于前向合并。进行处理,因为前向合并使得请求的起始扇区发生变化,所以相应的处理就是从。对请求按它们的生成时间进行排序,称为。的请求队列里,具体的数目由。如果做了前向合并,调用。原创 2022-10-16 12:35:47 · 627 阅读 · 0 评论 -
(数据科学学习手札144)使用管道操作符高效书写Python代码
大家好我是费老师,一些比较熟悉pandas的读者朋友应该经常会使用query()、eval()、pipe()、assign()等pandas的常用方法(相关知识详见我的pandas专题教程),书写可读性很高的链式数据分析处理代码,从而更加丝滑流畅地组织代码逻辑。但在原生Python中并没有提供类似shell中的管道操作符|、R中的管道操作符%>%等语法,也没有针对列表等数组结构的可进行链式书写的快捷方法,譬如javascript中数组的map()、filter()、some()、every()等。原创 2022-10-16 01:06:44 · 745 阅读 · 0 评论 -
什么是Scrum?Scrum的核心要点和精髓
Scrum 的定义Scrum是一个用于开发和维护复杂产品的框架,是一个增量的、迭代的开发过程,目的是让开发人员像打橄榄球一样迅猛并充满激情,通过团队合作,提高工作效率。通过团队间的有效交互,为企业创造价值。原创 2022-10-15 12:35:43 · 575 阅读 · 0 评论 -
vite vue3 规范化与Git Hooks
hooks意思是“钩子”,也就是在执行某个操作之前或之后要做的事。git hooks 就是 git 操作的钩子,在 git 执行某个操作之前或之后要做的事,如 git 提交后、提交后、合并前、合并后、rebase前、rebase后等。pre-commitpre-commit是git commit执行前的钩子,会在获取提交描述信息且提交前被调用,根据该钩子决定是否拒绝提交。可以在这个钩子中对代码进行 eslint 检查。commit-msgcommit-msg也是git commit。原创 2022-10-15 01:08:47 · 196 阅读 · 0 评论 -
初识设计模式 - 迭代器模式
迭代器设计模式(Iterator Design Pattern),也叫作游标设计模式(Cursor Design Pattern)。迭代器模式将集合对象的遍历操作从集合类中拆分出来,放到迭代器类中,让两者的职责更加单一。其定义是,提供一种方法来访问聚合对象,而不暴露这个对象的内部实现。封装性良好,访问一个聚合对象的内容而无需暴露它的内部实现将遍历操作交给迭代器,简化了复杂聚合类的设计支持以不同的方式遍历聚合对象,在同一个聚合对象上可以定义多种遍历方式。原创 2022-10-14 12:36:25 · 528 阅读 · 0 评论 -
Docker | 使用dockerfile生成镜像,清理docker空间
dockerfile。原创 2022-10-14 01:05:32 · 206 阅读 · 0 评论 -
MySQL用户也可以是个角色
角色(Role),可以认为是一些权限的集合,一直是存在各个数据库中,比如Oracle、SQL Server、OceanBase等,MySQL 自从 8.0 release 才引入角色这个概念。为用户赋予统一的角色,即把一个带有某些权限集合的角色分配给一个用户,那该用户就拥有了该角色所包含的所有权限,权限的修改直接通过角色来进行,无需为每个用户单独授权,大大的方便了权限管理。原创 2022-10-08 01:04:01 · 591 阅读 · 0 评论 -
从 C# 崩溃异常 中研究页堆布局
这就是对页堆的一个研究,总的来说页堆优点:因为 栅栏页 紧邻 用户页,一旦代码越界进入了 栅栏页,会立即报 访问违例 异常,这样我们就可以获取第一现场错误。缺点:对空间造成了巨大浪费,即使 1byte 的内存分配,也需要至少 2 个内存页 的内存占用 (8k)。哈哈,对调试程序崩溃类问题,非常值得一试!原创 2022-10-07 12:35:36 · 364 阅读 · 0 评论 -
二叉树两个节点的最近公共祖先问题
分析了 base case,接下来是普遍情况,如果 head 不为 null,则去左树收集信息,去右树也收集信息,然后把左右两树的信息整合成 head 的信息返回。首先是 base case,如果 head 为 null,则 findA = false,findB = false,a 和 b 的公共祖先也是 null。接下来看两个节点的最低公共祖先,首先,如果左树上找到 a 和 b,那么 leftInfo.ancestor 就是 a 和 b 的最低公共祖先;如果 a 和 b 在树上都找不到,即。原创 2022-10-07 01:05:03 · 508 阅读 · 0 评论