白面系列 kafka】的更多相关文章

kafka是一个分布式发布订阅消息系统,也可叫做MQ系统,MQ是Message Queue,消息队列. 通俗点,生产者往队列里写消息,消费者从队列里读.专业点,Producer通过TCP协议发送消息到Kafka集群,Kafka集群再将这些消息提供给Consumer. 消息是由key.value.时间戳构成,按topic分类.工作中经常听到的topic,就是这个topic,用来给消息分类. 整体流程如官网画的图所示. kafka有个Broker的概念,指的就是集群中的服务器,每一个服务器就是一个代…
前言: kafka是linkedin开源的消息队列, 淘宝的metaq就是基于kafka而研发. 而消息队列作为一个分布式组件, 在服务解耦/异步化, 扮演非常重要的角色. 本系列主要研究kafka的思想和使用, 本文主要讲解kafka的一些基本概念和api的使用. *) 准备工作1) 配置maven依赖 <dependency> <groupId>org.apache.kafka</groupId> <artifactId>kafka_2.9.2</…
*) 安装和测试 cd /path/to/server#) 下载kafka二进制包wget http://apache.fayea.com/apache-mirror/kafka/0.8.1.1/kafka_2.9.2-0.8.1.1.tgz#) 解压缩kafka包tar -zxvf kafka_2.9.2-0.8.1.1.tgz#) 构建软连接到目录kafkaln -s kafka_2.9.2-0.8.1.1 kafka #) 开启zookeeper-server服务bin/zookeeper…
事务,对于大家来说可能并不陌生,比如数据库事务.分布式事务,那么Kafka中的事务是什么样子的呢? 在说Kafka的事务之前,先要说一下Kafka中幂等的实现.幂等和事务是Kafka 0.11.0.0版本引入的两个特性,以此来实现EOS(exactly once semantics,精确一次处理语义). 幂等,简单地说就是对接口的多次调用所产生的结果和调用一次是一致的.生产者在进行重试的时候有可能会重复写入消息,而使用Kafka的幂等性功能之后就可以避免这种情况. 开启幂等性功能的方式很简单,只…
在讲docker之前,首先区分2个概念,容器和虚拟机. 容器: 虚拟机: 简单来说,容器虚拟化操作系统:虚拟机虚拟化硬件. 容器粒度更小更灵活:虚拟机包含资源更多更大. docker就是用来做容器化的. 接着需要搞清楚3个东西: Image(镜像) Container(容器) Repository(仓库) 镜像是为了创建容器的只读模板. 容器是镜像的一个可运行实例. 仓库是用来存储镜像的. 从面向对象来理解,仓库==工程,镜像==类,容器==实例. docker的架构是C/S. Docker d…
mongoDB和redis一样,都是noSQL技术之一. redis是Key-Value存储,mongoDB是文档存储. 文档存储一般用类似json的格式存储,存储的内容是文档型的.文档是一组键值(key-value)对(即 BSON). Mongo中的一些概念: shell连接mongo命令: mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]…
redis是Key-Value数据库,和Memcached类似.value可以是多种类型,如Strings, Lists, Hashes, Sets 及 Ordered Sets等. redis一个牛逼的地方在于,它的性能极高!读的速度是110000次/s,写的速度是81000次/s !高性能意味着支持高并发. redis数据是存在内存中的,不过会周期性的把数据存到磁盘中,并在此基础上实现主从同步.这样就支持了数据的持久化. 高性能+数据持久化,这就是要使用redis的原因.这种基于内存的数据库…
Nginx == engine x. nginx就是一个服务器.主要提供web服务.负载均衡(反向代理).web缓存等服务. nginx ≈ apache,但nginx是轻量级的高性能高并发的服务器. 日常工作中听到关于nginx最多的就是"代理转发". 客户端+代理 -> 服务器,正向代理,代理的是客户端. 客户端 -> 代理+服务器,反向代理,代理的是服务器. 实际项目很可能是正向代理+反向代理:客户端+代理 -> 代理+服务器 转发接口配置示例: locatio…
转http://www.jianshu.com/p/048e954dab40 概念: 分布式消息队列 ‘分布式消息队列’包含两个概念 一是‘消息队列’,二是‘分布式’ 那么就先看下消息队列的概念,和为什么需要分布式 消息队列的定义 “消息”指进程间传送的数据 “队列”是在消息的传输过程中保存消息的容器 消息被发送到队列中,消息队列充当中间人,将消息从源发送给目标 当系统中出现“生产“和“消费“的速度或稳定性等因素不一致时,就需要消息队列,作为抽象层,弥合双方的差异 例如 (1)服务员点菜快,厨师…
缘起 之前一直有很多小伙伴们找我,让我聊一聊如何学习 Java ,我都直接回复了一个思维导图,后来想一想觉得回答不是很认真,我的初衷是想让小伙伴们根据思维导图中的知识点,采取各个击破 的原则,哪里不会查哪里,后来想想这种回答方式没有多少人能够直接接受.大家更想要的是从我这里获得点什么. 确实是,让小伙伴们自己上网找一些资料和博客,优劣性暂且不谈,主要是很多不全面而又浪费时间去看,所以后面想想确实是,所以,我直接自己硬上来为你们总结资料了. 励志搞个 Java 蓝图 所以针对上面这种情况,我打算自…