摘要: 请求流程图 一、引言 前端不仅要让用户对网页有完美的体验,让用户尽快体验到完美的网页也是很重要的,这就要前端攻城狮掌握一些网络原理相关的知识了。这里就来聊一聊从用户输入 url 到页面加载完成的过程中都发生了什么事情? 二、正文 用户输入 url 之后大致发生了以下几件事: 浏览器查找域名的 IP  阅读全文
posted @ 2020-01-13 17:04 大浪不惊涛 阅读(436) 评论(0) 推荐(0)
摘要: 1.以前的误解 很久之前就听说过长连接的说法,而且还知道HTTP1.0协议不支持长连接,从HTTP1.1协议以后,连接默认都是长连接。但终究觉得对于长连接一直懵懵懂懂的,有种抓不到关键点的感觉。 今天通过一番研究,终于明白了这其中的奥秘。而之前,也看过长连接相关的内容,但一直都是云里雾里的。这次之所 阅读全文
posted @ 2020-01-13 16:48 大浪不惊涛 阅读(427) 评论(0) 推荐(0)
摘要: 正文 回到顶部 一、下载 下载地址: http://kafka.apache.org/downloads.html http://mirrors.hust.edu.cn/apache/ 回到顶部 二、安装前提(zookeeper安装) 参考http://www.cnblogs.com/qingyun 阅读全文
posted @ 2020-01-13 14:49 大浪不惊涛 阅读(196) 评论(0) 推荐(0)
摘要: 正文 回到顶部 一、高可用的由来 1.1 为何需要Replication 在Kafka在0.8以前的版本中,是没有Replication的,一旦某一个Broker宕机,则其上所有的Partition数据都不可被消费,这与Kafka数据持久性及Delivery Guarantee的设计目标相悖。同时P 阅读全文
posted @ 2020-01-13 14:47 大浪不惊涛 阅读(282) 评论(0) 推荐(0)
摘要: 正文 回到顶部 一、Kafka的架构 如上图所示,一个典型的Kafka集群中包含若干Producer(可以是web前端产生的Page View,或者是服务器日志,系统CPU、Memory等),若干broker(Kafka支持水平扩展,一般broker数量越多,集群吞吐率越高),若干Consumer 阅读全文
posted @ 2020-01-13 14:46 大浪不惊涛 阅读(179) 评论(0) 推荐(0)
摘要: 正文 回到顶部 一、简介 1.1 概述 Kafka是最初由Linkedin公司开发,是一个分布式、分区的、多副本的、多订阅者,基于zookeeper协调的分布式日志系统(也可以当做MQ系统),常见可以用于web/nginx日志、访问日志,消息服务等等,Linkedin于2010年贡献给了Apache 阅读全文
posted @ 2020-01-13 14:42 大浪不惊涛 阅读(168) 评论(0) 推荐(0)
摘要: 1. 前言 流式计算分为有状态和无状态两种情况,所谓状态就是计算过程中的中间值。对于无状态计算,会独立观察每个独立事件,并根据最后一个事件输出结果。什么意思?大白话举例:对于一个流式系统,接受到一系列的数字,当数字大于N则输出,这时候在此之前的数字的值、和等情况,压根不关心,只和最后这个大于N的数字 阅读全文
posted @ 2020-01-13 14:33 大浪不惊涛 阅读(260) 评论(0) 推荐(0)
摘要: 一、任务调度 Flink是通过task slot的来定义执行资源的,为优化资源的利用率,Flink通过slot共享,可以将多个连续的task任务组成的一个pipeline放在一个slot中运行。当任务并行度>1时,并行任务中的每个pipeline就会分配到一个slot去执行,这样就会有一个问题,若是 阅读全文
posted @ 2020-01-13 14:32 大浪不惊涛 阅读(734) 评论(0) 推荐(0)
摘要: 一、Task和Operator Chains Flink会在生成JobGraph阶段,将代码中可以优化的算子优化成一个算子链(Operator Chains)以放到一个task(一个线程)中执行,以减少线程之间的切换和缓冲的开销,提高整体的吞吐量和延迟。下面以官网中的例子进行说明,如下图1所示: 图 阅读全文
posted @ 2020-01-13 14:30 大浪不惊涛 阅读(1538) 评论(0) 推荐(0)
摘要: 一、集群部署阶段 集群部署这里指的是Flink standalone模式,因为在Yarn模式(包括session、single job模式也成Per-job模式)是可以仅通过Flink client提交任务到Yarn上,所以是否手动部署Flink集群对任务的执行是没有影响的。下图[1]是简单的Fli 阅读全文
posted @ 2020-01-13 14:28 大浪不惊涛 阅读(502) 评论(0) 推荐(0)
摘要: 1、前言 在讲Flink基本结构之前,我们的先知道Flink是什么?中文官网上的解释是:Apache Flink 是一个框架和分布式处理引擎,用于在无边界和有边界数据流上进行有状态的计算[1]。关于无边界和有边界数据流的定义可以参考官网上的解释,从其解释上可以了解到Flink是一个框架和计算引擎,是 阅读全文
posted @ 2020-01-13 14:27 大浪不惊涛 阅读(506) 评论(0) 推荐(0)
摘要: 一.IDEA开发环境 1.pom文件设置 <properties> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> <encoding>UTF- 阅读全文
posted @ 2020-01-13 14:22 大浪不惊涛 阅读(346) 评论(0) 推荐(0)
摘要: 一. Flink的下载 安装包下载地址:http://flink.apache.org/downloads.html ,选择对应Hadoop的Flink版本下载 [admin@node21 software]$ wget http://mirrors.tuna.tsinghua.edu.cn/apa 阅读全文
posted @ 2020-01-13 14:21 大浪不惊涛 阅读(624) 评论(0) 推荐(0)
摘要: 一. Flink的引入 这几年大数据的飞速发展,出现了很多热门的开源社区,其中著名的有 Hadoop、Storm,以及后来的 Spark,他们都有着各自专注的应用场景。Spark 掀开了内存计算的先河,也以内存为赌注,赢得了内存计算的飞速发展。Spark 的火热或多或少的掩盖了其他分布式计算的系统身 阅读全文
posted @ 2020-01-13 14:20 大浪不惊涛 阅读(239) 评论(0) 推荐(0)
摘要: 指定方法异步调用 前面我们讲解了通过设置ReferenceConfig的setAsync()方法来让整个接口里的所有方法变为异步调用,那么如何指定某些方法为异步调用呢?下面讲解下如何正确地设置默写方法为异步调用。 假如你只需要设置接口里的方法sayHello为异步调用,那么可以使用下面方式: fin 阅读全文
posted @ 2020-01-13 14:07 大浪不惊涛 阅读(980) 评论(0) 推荐(0)
摘要: 同理我们看下服务消费端启动流程时序图: 在《Dubbo整体架构分析》一文中,我们提到服务消费方需要使用ReferenceConfig API来消费服务,具体是调用代码(1)get()方法来生成远程调用代理类。get()方法最终会调用createProxy方法来具体创建代理类,其中createProx 阅读全文
posted @ 2020-01-13 14:05 大浪不惊涛 阅读(317) 评论(0) 推荐(0)
摘要: 首先我们通过一个时序图,直观看下Dubbo服务提供方启动的流程: 在《Dubbo整体框架分析》一文中我们提到,服务提供方需要使用ServiceConfig API发布服务,具体是调用代码(1)export()方法来激活发布服务。export的核心代码如下: public synchronized v 阅读全文
posted @ 2020-01-13 14:03 大浪不惊涛 阅读(386) 评论(0) 推荐(0)
摘要: Dubbo默认的底层网络通讯使用的是Netty,服务提供方NettyServer使用两级线程池,其中 EventLoopGroup(boss) 主要用来接受客户端的链接请求,并把接受的请求分发给 EventLoopGroup(worker) 来处理,boss和worker线程组我们称之为IO线程。 阅读全文
posted @ 2020-01-13 14:02 大浪不惊涛 阅读(633) 评论(0) 推荐(0)
摘要: Dubbo的集群容错策略 正常情况下,当我们进行系统设计时候,不仅要考虑正常逻辑下代码该如何走,还要考虑异常情况下代码逻辑应该怎么走。当服务消费方调用服务提供方的服务出现错误时候,Dubbo提供了多种容错方案,缺省模式为failover,也就是失败重试。 Dubbo提供的集群容错模式 下面看下Dub 阅读全文
posted @ 2020-01-13 14:00 大浪不惊涛 阅读(311) 评论(0) 推荐(0)
摘要: 在Dubbo整体架构分析中介绍了Dubbo中除了Service和Config层为API外,其他各层均为SPI,为SPI意味着下面各层都是组件化可以被替换的,也就是扩展性比较强,这也是Dubbo比较好的一点。 JDK中标准SPI原理 Dubbo增强的SPI功能是从JDK标准SPI演化而来的,所以有必要 阅读全文
posted @ 2020-01-13 13:58 大浪不惊涛 阅读(508) 评论(0) 推荐(0)