摘要:
做一个系统,如果不做监控,是不完善的。 如果为做一个快速系统,花力气去做监控,是不值得的。(监控系统不是你想做,想做就能做的。) 因此,我们有必要具备一个能够快速建立监控体系的能力。即使你只是一个普通开发人员!(说不定明天就要叫你去领兵大操练呢) 个人觉得,做监控要有三个核心能力: 1. 持续收集数 阅读全文
摘要:
一般地,像kafka之类的消息中间件,作为一个可以保持历史消息的组件,其消费模型一般是主动拉取方式。这是为了给消费者足够的自由,回滚或者前进。 然而,也正是由于将消费消息的权力交给了消费者,所以,消费者往往需要承担更多的责任。比如:需要自行保存消费偏移量,以便后续可以知道从哪里继续。而当这一点处理不 阅读全文
摘要:
假设场景: 1. 针对一个高并发的应用,你是否会选择打印访问日志? 2. 针对分布式的应用,你是否会选择将所有日志打印到日志中心? 解决方案: 1. 如果如果你选择为了性能,不打印日志,那无可厚非。但是你得考虑清楚,出问题的时候是否能够做到快速排查? 2. 你觉得日志分布在各台机器上很方便,那不用日 阅读全文
摘要:
首先,咱们都有一共识,即可以使用缓存来提升系统的访问速度! 现如今,分布式缓存这么强大,所以,大部分时候,我们可能都不会去关注本地缓存了! 而在一起高并发的场景,如果我们一味使用nosql式的缓存,如 redis, 那么也是好的吧! 但是有个问题我们得考虑下: redis 这样的缓存是快,但是它总有 阅读全文
摘要:
开发某个项目过程中,就需求,搭建了一套测试环境。很快完成! 后来代码中加入了许多新功能,会涉及到反复重启,然后就发现了启动特别慢。这给原本功能就不多的应用增添了许多的负担。 我决定改变这一切!找到启动缓慢的根源,加快启动速度! 思路展开: 1. 启动慢,先看日志,有没有什么异常? 2. 看下是不是g 阅读全文
摘要:
监控和调试功能是应用必备的属性之一,其手段也是多种多样。 一般地,我们可以通过:线上日志, zabbix, grafana, cat 等待系统做一问题留底,有问题及时报警,从而达到监控效果。 而对于应用的调试,我之前的文章也提到了几个工具,当然,我对于 arthas 是调试赞扬的。请参考: 线上应用 阅读全文
摘要:
在之前的文章中,我介绍了使用 Btrace 工具进行线上代码的debug (https://www.cnblogs.com/yougewe/p/10180483.html),其大致原理就是通过字节码注入的方式进行辅助排查。 可以说,btrace 已经给我们的开发调试一带来了许多的方便,我们在上面做任 阅读全文
摘要:
给你一组json数据结构,你把它解析出来到项目中,你会怎么做? 首先,code,msg,data 肯定是固定结构,所以可以抽象出一层 data 的变化,可以使用泛型去适应变化; 其次,data下的数据是 key -> object 的结构,如果直接object表示的话,又不友好了。如果不以objec 阅读全文
摘要:
如果要求你进行一个表数据的导出,如果使用shell的话,很容易做到,即执行一下 select 语句就可以拿到返回结果了! 如下: 如上执行完成之后,数据就被导出到 export_data_full_path1 指定的文件位置去了。 如果想要使用 excel 格式来打开,有一个很简单的方法,即把后缀名 阅读全文
摘要:
zk用处如此之多,以至于每个地方都要你理解zk原理! 请按如下操作姿势打开: 1. 打开zk的git仓库地址: https://github.com/apache/zookeeper , 确认过眼神,它就是你要找有人! 2. 下载源码到本地,下载 ant 工具到本地,(如果还没下载的话: http: 阅读全文