摘要:
有时候,我们为了屏蔽一些底层的差异,我们会要求上游系统按照某种约定进行传参。而在我们自己的系统层则会按照具体的底层协议进行适配,这是通用的做法。但当我们要求上游系统传入的参数非常复杂时,也许我们会有一套自己的语法定义,用以减轻所有参数的不停变化。比如sql协议,就是一个一级棒的语法,同样是调用底层功 阅读全文
摘要:
大数据技术在当下时代,已经不算是什么新鲜东西了。但绝大部分同学往往又是没机会接触大数据相关底层技术的,包括我自己。 不过,俗话说没吃过猪肉还没见过猪跑吗?哈哈,今天就来说说我对大数据技术的思考吧,希望会给部分同学解开一些迷惑! 1.什么是大数据? 我们不搞虚的:大数据就是数据量比较大的场景,比如上T 阅读全文
摘要:
无疑,在nginx的核心服务中,http服务占据了相当大的份量。那么,要想多了解nginx多一点,则必须要了解其http模块的工作机制。 而在上一篇文章中,我们已完全了解了nginx的worker工作机制,以及它是如何接入http服务的,但很明显那很粗,我们需要更深入点理解http模块的工作原理。 阅读全文
摘要:
prometheus 是一个非常好的监控组件,尤其是其与grafana配合之后,更是如虎添翼。而prometheus的监控有两种实现方式。1. server端主动拉取应用监控数据;2. 主动推送监控数据到prometheus网关。这两种方式各有优劣,server端主动拉取实现可以让应用专心做自己的事 阅读全文
摘要:
之前一直使用mysql作为存储数据库,虽然中间偶尔使用sqlite作为本地数据库存储,hive作为简单查询工具,maxcompute作为大数据查询服务等等,但没有感觉多少差别。事实上,我们往往听说SQL-92标准之类的云云! 后来遇上了oracle,且以其作为主要存储,这下就不得不好好了解其东西了。 阅读全文
摘要:
Nginx 启动起来之后,会有几个进程运行:1. master 进程接收用户命令并做出响应; 2. worker 进程负责处理各网络事件,并同时接收来自master的处理协调命令; master 主要是一控制命令,我们后面再说,而worker则是处理的nginx的核心任务,请求转发、反向代理、负载均 阅读全文
摘要:
针对有些耗时比较长的任务,我们一般会想到使用异步化的方式来进行优化逻辑。即客户端先发起一次任务请求并携带回调地址callbackUrl,然后服务端收到请求后立即返回成功,然后在后台处理具体事务,等任务完成后再回调客户端,通知完成。 首先这个方案是值得肯定的,但是我们得注意几点:1. 客户端回调是否可 阅读全文
摘要:
如果我们使用文件来存储数据,那么如何考虑它们的性能呢?假设我们只会按照行来读取数据,该如何分布文件,才能达到一个比较好的性能呢? 需求: 1. 需要支持通过行号定位数据;2. 需要支持任意多行连续数据的读取;(类似于sql中的 limit offset, size;) 功能实际很简单,只要把数据按照 阅读全文
摘要:
在实际工作中,很进行列表查询的场景,我们往往都需要做两个步骤:1. 查询所需页数对应数据;2. 统计符合条件的数据总数;而这,又会导致我们必然至少要写2个sql进行操作。这无形中增加了我们的工作量,另外,当发生需要变动时,我们又需要同时改动这两个sql,否则必然导致结果的不一致。 因此,我们需要一个 阅读全文
摘要:
文接上一篇。上篇讲到netty暴露一个端口出来,acceptor, handler, pipeline, eventloop 都已准备好。但是并没体现其如何处理接入新的网络请求,今天我们就一起来看看吧。 1. eventloop主循环 上篇讲到,netty启动起来之后,就会有很多个eventloop 阅读全文