随笔分类 -  工具类

记录一些工具使用心得,如phpstorm,notepad++,sublime,vim,emacs
摘要:关于文件跟踪,我们有很多的实际场景,比如查看某个系统日志的输出,当有变化时立即体现,以便进行问题排查;比如查看文件结尾的内容是啥,总之是刚需了。 1. 自己实现的文件跟踪 我们平时做功能开发时,也会遇到类似的需求,比如当有人传输文件到某个位置后,我们需要触发后续处理操作。 那么,我们自己实现的话,也 阅读全文
posted @ 2022-08-14 20:13 阿牛20 阅读(2381) 评论(1) 推荐(0) 编辑
摘要:在网络请求时,总会有各种异常情况出现,我们需要提前处理这种情况。在完善的rpc组件dubbo中,自然是不会少了这一层东西的。我们只需要通过一些简单的配置就可以达到超时限制的作用了。 dubbo的设计理念是,客户端控制优先,服务端控制兜底。 1. 超时机制的实现思路 要想实现超时,一般有两个思路。一个 阅读全文
posted @ 2022-07-09 13:53 阿牛20 阅读(5948) 评论(2) 推荐(1) 编辑
摘要:如题:请求出两个字符串的差异部分,并以不同的颜色区分显示到浏览器上。 1. 解题思路 1. 找出两字符串中相同的部分,标记; 2. 找出两字符串中不同的部分,标记; 3. 尽可能长的匹配相同部分; 4. 尽可能少的使用复杂度(所有算法的重要目标); 2. 算法实现 算法实现如下:(js实现) <!D 阅读全文
posted @ 2022-04-06 22:01 阿牛20 阅读(439) 评论(0) 推荐(0) 编辑
摘要:是一个动态数据管理框架。 它包含许多组成典型数据库管理系统的部分,但省略了存储原语。它提供了行业标准的SQL解析器和验证器,具有可插入规则和成本函数的可自定义优化器,逻辑和物理代数运算符,从SQL到代数(以及相反)的各种转换。 以上是官方描述,用大白话描述就是,calcite实现了一套标准的sql解 阅读全文
posted @ 2021-08-08 17:21 阿牛20 阅读(2112) 评论(0) 推荐(0) 编辑
摘要:说到json,相信没有人会陌生,我们天天都在用。那么,我们来讨论个问题,json有序吗?是谁来决定的呢?如何保持? 说到底,json是框架还是啥?实际上它只是一个数据格式,一个规范标准,它永远不会限制实现方的任何操作,即不会自行去保证什么顺序性之类的。json的格式仅由写入数据的一方决定其长像如何。 阅读全文
posted @ 2021-01-10 15:37 阿牛20 阅读(12148) 评论(1) 推荐(0) 编辑
摘要:有时候我们需要调用系统命令执行一些东西,可能是为了方便,也可能是没有办法必须要调用。涉及执行系统命令的东西,则就不能做跨平台了,这和java语言的初衷是相背的。 废话不多说,java如何执行shell命令?自然是调用java语言类库提供的接口API了。 1. java执行shell的api 执行sh 阅读全文
posted @ 2020-11-08 14:27 阿牛20 阅读(8015) 评论(0) 推荐(3) 编辑
摘要:用hive来做数仓类操作,或者大数据的运算,是没有疑问的,至少在你没有更多选择之前。 当我们要hive来做类似于大批量数据的select时,也许问题就会发生了变化。 1. 通用解决方案:分页拉取 首先,我们要基于一个事实,就是没有哪个数据库可以无限制的提供我们select任意数据量的数据。比如常用的 阅读全文
posted @ 2020-11-01 15:17 阿牛20 阅读(3594) 评论(1) 推荐(2) 编辑
摘要:上一篇nginx的文章中,我们理解了整个http正向代理的运行流程原理,主要就是事件机制接入,header解析,body解析,然后遍历各种checker,直到处理成功为止。 我们以访问一个普通文件为例,nginx到底是如何找到这个文件并返回信息的呢?它会不会有些什么限制呢? 按我们自己的理解,它应该 阅读全文
posted @ 2020-10-07 17:25 阿牛20 阅读(1446) 评论(0) 推荐(0) 编辑
摘要:有时候,我们为了屏蔽一些底层的差异,我们会要求上游系统按照某种约定进行传参。而在我们自己的系统层则会按照具体的底层协议进行适配,这是通用的做法。但当我们要求上游系统传入的参数非常复杂时,也许我们会有一套自己的语法定义,用以减轻所有参数的不停变化。比如sql协议,就是一个一级棒的语法,同样是调用底层功 阅读全文
posted @ 2020-10-06 19:28 阿牛20 阅读(1858) 评论(0) 推荐(3) 编辑
摘要:无疑,在nginx的核心服务中,http服务占据了相当大的份量。那么,要想多了解nginx多一点,则必须要了解其http模块的工作机制。 而在上一篇文章中,我们已完全了解了nginx的worker工作机制,以及它是如何接入http服务的,但很明显那很粗,我们需要更深入点理解http模块的工作原理。 阅读全文
posted @ 2020-09-27 22:27 阿牛20 阅读(1126) 评论(0) 推荐(0) 编辑
摘要:prometheus 是一个非常好的监控组件,尤其是其与grafana配合之后,更是如虎添翼。而prometheus的监控有两种实现方式。1. server端主动拉取应用监控数据;2. 主动推送监控数据到prometheus网关。这两种方式各有优劣,server端主动拉取实现可以让应用专心做自己的事 阅读全文
posted @ 2020-09-20 09:50 阿牛20 阅读(3392) 评论(0) 推荐(0) 编辑
摘要:在实际工作中,很进行列表查询的场景,我们往往都需要做两个步骤:1. 查询所需页数对应数据;2. 统计符合条件的数据总数;而这,又会导致我们必然至少要写2个sql进行操作。这无形中增加了我们的工作量,另外,当发生需要变动时,我们又需要同时改动这两个sql,否则必然导致结果的不一致。 因此,我们需要一个 阅读全文
posted @ 2020-08-22 16:06 阿牛20 阅读(17479) 评论(0) 推荐(1) 编辑
摘要:nginx作为高效的http服务器和反向代理服务器,值得我们深入了解。 我们带着几个问题,深入了解下nginx的工作原理。首先是开篇:nginx是如何启动的? nginx是用c写的软件,github地址: https://github.com/nginx/nginx 其目录结构如下,我们主要关注 s 阅读全文
posted @ 2020-04-06 16:26 阿牛20 阅读(2000) 评论(0) 推荐(0) 编辑
摘要:请求转发一般的原因为: 1. 该请求自身无法处理,需要转发给对应的服务器处理; 2. 为实现负载均衡,使用路由服务,选择目标实例进行转发; 在集群模式下,请求可以打到任何一台redis服务器上。然而并不是所有的服务器都会处理真正的请求,而是只有符合redis slot规则的实例才会处理真正的请求; 阅读全文
posted @ 2020-03-22 16:38 阿牛20 阅读(3100) 评论(0) 推荐(0) 编辑
摘要:使用 grafana+prometheus+jmx 作为普通的监控手段,是比较有用的。我之前的文章介绍了相应的实现办法。https://www.cnblogs.com/yougewe/p/11140129.html 但是,按照之前的实现,我们更多的只能是监控 单值型的数据,如请求量,tps 等等,对 阅读全文
posted @ 2019-11-19 18:34 阿牛20 阅读(4109) 评论(0) 推荐(1) 编辑
摘要:java 语言有个神奇的地方,那就是你时不时会去关注下内存。(当然了,任何牛逼的同学都应该关注内存) 今天我们就来这么个问题现场吧:某应用运行了一段时间后,ecs监控报警了,内存比较高了,怎么办?随着时间的推移,发现内存越来越高缓缓增长,怎么办? 凡事讲究证据,报警系统说内存紧张就紧张吗,还得自己去 阅读全文
posted @ 2019-08-11 14:02 阿牛20 阅读(11894) 评论(0) 推荐(4) 编辑
摘要:做一个系统,如果不做监控,是不完善的。 如果为做一个快速系统,花力气去做监控,是不值得的。(监控系统不是你想做,想做就能做的。) 因此,我们有必要具备一个能够快速建立监控体系的能力。即使你只是一个普通开发人员!(说不定明天就要叫你去领兵大操练呢) 个人觉得,做监控要有三个核心能力: 1. 持续收集数 阅读全文
posted @ 2019-07-05 19:05 阿牛20 阅读(3823) 评论(0) 推荐(2) 编辑
摘要:监控和调试功能是应用必备的属性之一,其手段也是多种多样。 一般地,我们可以通过:线上日志, zabbix, grafana, cat 等待系统做一问题留底,有问题及时报警,从而达到监控效果。 而对于应用的调试,我之前的文章也提到了几个工具,当然,我对于 arthas 是调试赞扬的。请参考: 线上应用 阅读全文
posted @ 2019-05-06 21:05 阿牛20 阅读(5794) 评论(0) 推荐(0) 编辑
摘要:在之前的文章中,我介绍了使用 Btrace 工具进行线上代码的debug (https://www.cnblogs.com/yougewe/p/10180483.html),其大致原理就是通过字节码注入的方式进行辅助排查。 可以说,btrace 已经给我们的开发调试一带来了许多的方便,我们在上面做任 阅读全文
posted @ 2019-04-28 11:56 阿牛20 阅读(11508) 评论(0) 推荐(3) 编辑
摘要:如果要求你进行一个表数据的导出,如果使用shell的话,很容易做到,即执行一下 select 语句就可以拿到返回结果了! 如下: 如上执行完成之后,数据就被导出到 export_data_full_path1 指定的文件位置去了。 如果想要使用 excel 格式来打开,有一个很简单的方法,即把后缀名 阅读全文
posted @ 2019-03-29 22:41 阿牛20 阅读(1719) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示