自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(34)
  • 收藏
  • 关注

原创 Kafka面试题总结

请说明什么是Apache Kafka?Apache Kafka是由Apache开发的一种发布订阅消息系统,它是一个分布式的、分区的和重复的日志服务。请说明什么是传统的消息传递方法?传统的消息传递方法包括两种: 排队:在队列中,一组用户可以从服务器中读取消息,每条消息都发送给其中一个人。 发布-订阅:在这个模型中,消息被广播给所有的用户。 请...

2019-02-28 19:11:17 20708 2

原创 Kafka总结

Kafka Kafka:Kafka是分布式消息系统,将消息持久化到磁盘,默认保存一周 概念: broker:broker是组成Kafka集群的节点,负责消息读写、存储,broker之间没有主从关系,一个broker可以管理多个partition producer:消息生产者,producer两种机制【自己决定写往哪个topic中的那个partition】:hash、轮询 c...

2019-02-28 13:39:17 1055

原创 Kafka集群的搭建

Kafka需要配置安装ZooKeeper下载安装JDK8:https://blog.csdn.net/Future_LL/article/details/84667634 下载安装ZooKeeper:https://blog.csdn.net/Future_LL/article/details/83934986 【Window和Linux一样】 ZooKeeper集群搭建:https:/...

2019-02-26 20:09:08 173

原创 kafka与其他消息队列对比

RabbitMQ:分布式,支持多种MQ协议,重量级 ActiveMQ:与RabbitMQ类似 ZeroMQ:以库的形式提供,使用复杂,无持久化 Redis:单机、纯内存性好,持久化较差 Kafka:分布式,消息不是使用完就丢失【较长时间持久化】,吞吐量高【高性能】,轻量灵活 --------------------------------------------------------...

2019-02-26 18:19:20 4000

原创 ZooKeeper的Paxos算法

 PaxosPaxos 这个算法是Leslie Lamport在1990年提出的一种基于消息传递的一致性算法 Paxos 算法解决的问题是一个分布式系统如何就某个值(决议)达成一致。 part-time parliament Paxos Made Simple里这样描述Paxos算法执行过程: prepare 阶段: proposer【申请人】 选择一个提案编号 n 并将 prepa...

2019-02-26 14:13:38 436

转载 zookeeper中的ZAB协议理解

ZAB协议ZAB协议是专门为zookeeper实现分布式协调功能而设计。zookeeper主要是根据ZAB协议是实现分布式系统数据一致性。 zookeeper根据ZAB协议建立了主备模型完成zookeeper集群中数据的同步。这里所说的主备系统架构模型是指,在zookeeper集群中,只有一台leader负责处理外部客户端的事物请求(或写操作),然后leader服务器将客户端的写操作数据同...

2019-02-26 13:48:35 296

原创 ZooKeeper面试题

ZooKeeper是什么ZooKeeper是一个开放源码的分布式协调服务,它是集群的管理者,监视着集群中各个节点的状态根据节点提交的反馈进行下一步合理操作。最终,将简单易用的接口和性能高效、功能稳定的系统提供给用户。 分布式应用程序可以基于Zookeeper实现诸如数据发布/订阅、负载均衡、命名服务、分布式协调/通知、集群管理、Master选举、分布式锁和分布式队列等功能。 Zookee...

2019-02-26 13:07:15 1042

原创 ZooKeeper的zkClientListener 讲解

问题: 我们发现在zkClient中并没有类似watcher,watch参数,这也就是说我们开发人员无需关心反复注册watcher的问题,zkClient给我们提供了一套监听方式,我们可以使用监听节点的方式进行操作,剔除了繁琐的反复watcher操作,简化了胆码的复杂程度 subscribeChildChanges方法: 参数1:path路径 参数2:实现了IZKChildList...

2019-02-25 16:01:30 2091

原创 ZooKeeper的zkClient API 讲解

zkClient使用zkClient是Datameer的工程师StefanGroschupf和Peter Voss一起开发的。在原生API的基础上进行了封装,简化了ZooKeeper的复杂性 创建客户端方法:ZKClient(Arguments) 参数1:zkServers ZooKeeper 服务器的地址,使用“,”分隔 参数2:sessionTimeout 超时会话,为毫秒,默认...

2019-02-25 14:11:34 422

原创 ZooKeeper实际应用讲解

在IDEA上安装ZooKeeper插件首先在IDEA中下载ZooKeeper插件 对ZooKeeper插件进行配置 之后会在界面的左上角找到ZooKeeper的操作界面 ZooKeeper实际场景我们希望ZooKeeper对分布式系统的配置进行管理,也就是说多个服务器进行watcher,ZooKeeper结点发送变化,则我们实时更新配置文件 我们要完成多个应用服务...

2019-02-25 11:49:14 303

原创 ZooKeeper安全认证

ZooKeeper的ACL(AUTH) 认证只是针对一个节点 ACL【Access Control List】,ZooKeeper作为一个分布式协调框架,其内部存储的都是一些关乎分布式系统运行时状态的元数据,尤其是涉及到一些分布式锁,Master选举和协调等应用场景。我们需要有效的保障ZooKeeper中的数据安全,ZooKeeper提供了三种模式。权限模式、授权对象、权限。 权限...

2019-02-22 22:51:11 6091 1

原创 ZooKeeper watch机制核心讲解

WatchZooKeeper有watch事件,是一次性触发的【每次数据要发生变化之前都要手动创建watch】,当watch监视的数据发生时,通知设置了该watch的client,客户端即watcher。同样,其watcher是监听数据发送了某些变化,那就一定会有对应的事件类型和状态类型,一个客户端可以监控多个节点,在代码中体现在new了几个就产生几个watcher,只要节点变化都要执行一边p...

2019-02-19 18:41:43 1659

原创 Java操作ZooKeeper

需要的jar包 <dependency> <groupId>org.apache.zookeeper</groupId> <artifactId>zookeeper</artifactId> <version>3.4.6</...

2019-02-18 21:21:57 320

原创 ZooKeeper配置文件zoo.cfg详解

tickTime:基本事件单元,以毫秒为单位。这个时间是作为 Zookeeper 服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每隔 tickTime时间就会发送一个心跳。 dataDir:存储内存中数据库快照的位置,顾名思义就是 Zookeeper 保存数据的目录,默认情况下,Zookeeper 将写数据的日志文件也保存在这个目录里。 clientPort:这个端口就是客户端...

2019-02-16 16:46:14 1760

原创 ZooKeeper集群环境搭建及客户端使用

ZooKeeper集群搭建(三台机器为例)上传并解压到/usr/local目录下:tar -zxvf zookeeper-3.4.13.tar.gz -C /usr/local 重命名:mv zookeeper-3.4.13/ zookeeper 修改环境变量:vim /etc/profile export ZOOKEEPER_HOME=/usr/local/zooke...

2019-02-16 16:19:43 260

原创 ZooKeeper简介说明

什么是ZooKeeperZooKeeper是一个高效的分布式协调服务,它暴露了一些共用服务,比如:命名、配置管理、同步控制、群组服务等。我们可以使用ZooKeeper来实现比如:达成共识、集群管理、Leader选举等 ZooKeeper是一个高可用的分布式管理与协调框架,基于ZAB【paxos算法】协议(原子消息广播协议)的实现。该框架能够很好地保证分布式环境中数据的一致性【奇数台服务器,...

2019-02-15 21:33:18 202

原创 Kafka Consumer

Pull vs PushProducer Producer通过主动Push的方式将消息发布到Broker Consumer Consumer通过Pull从Broker消费数据 Push 优势:延时低 劣势:可能造成Consumer来不及处理消息;网络拥塞 Pull 优势:Consumer按实际处理能力获取相应量的数据;Broker实现简单 劣势:如果处理不好...

2019-02-14 18:27:07 334

原创 Kafka Leader Election

Zookeeper的基本操作四种节点类型  PERSIST【永久节点,会被永久化到磁盘当中,ZooKeeper重启之后这些节点还会继续存在】 PERSIST_SEQUENTIAL【顺序节点,例如:如果有一个节点,我们将它设置成该类型,那么多个客户端可以同时重建相同的节点,但是他会根据先后顺序会在后边加一个序列号,比如第一个创建的是/a/b-00001,第二个就是/a/b-00002】...

2019-02-13 17:23:42 291 1

原创 Kafka如何使用Zookeep

Zookeeper是什么Zookeeper是一个高性能分布式应用协调服务 Naming Service【命名服务】 配置管理【分布式配置管理,或者集中式配置管理】 Leader Election 【领导选举】 服务发现 同步 Group Service Barrier【栅栏】 分布式队列【使用ZooKeeper不太好】 两阶段提交 ZooKee...

2019-02-12 17:52:36 731 2

原创 Kafka数据复制与Failover

CAP理论 Consistency【一致性】 通过某个节点的写操作结果对后面通过其它节点的读操作可见 如果更新数据后,并发访问情况下可立即感知该更新,称为强一致性 如果允许之后部分或者全部感知不到该更新,称为弱一致性 若在之后的一段时间(通常该时间不固定)后,一定可以感知该更新,称为最终一致性 造成数据不一致:并发读写,或者通过不同节点去读写的时候 Avail...

2019-02-11 20:57:46 359

原创 Kafka架构介绍

整体架构Kafka:分布式消息系统,将消息直接存入磁盘,默认保存一周 Broker:接收Producer发过来的数据,并且将它持久化,同时提供给Consumer去订阅 组成Kafka集群节点,之间没有主从关系,依赖ZooKeeper来协调,broker负责消息的读取和存储,一个broker可以管理多个partition Producer:发布者,自己决定向那个partition中去...

2019-02-10 18:27:56 704

原创 Kafka背景介绍、安装及简单使用

消息系统分类Peer-to-Peer 一般基于Pull或者Polling接收消息 发送到队列中的消息被一个而且仅仅一个接收者所接收,即使有多个接收者在同一个队列中侦听同一消息 即支持异步“即发即弃”的消息传送方式,也支持同步请求/应答传送方式 发布/订阅 发布到一个主题的消息,可被多个订阅者所接收 发布/订阅即可基于Push消费数据,也可基于Pull或者Poll...

2019-02-10 11:56:19 233

原创 ActiveMQ面试题总结

是什么消息中间件。可以在分布式系统的不同服务之间进行消息的发送和接收它的出现解决了什么问题可以让系统解耦 比如:使用消息中间件,某一个服务,可能依赖了其他好几个服务。比如课程里面的运营商后台依赖了4个服务,那不用mq就和4个服务耦合,用了mq,就只和1个mq耦合。参考下图: 实际项目应用场景监听商品添加消息,接收消息,将对应的商品信息同步到索引库 每次添加完商品...

2019-02-06 15:13:27 33363 1

原创 ActiveMQ整合Spring配置

 ActiveMQ整合Spring<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context" xmln...

2019-02-06 13:39:15 348

原创 ActiveMQ的消息存储持久化

概述ActiveMQ不仅支持persistent和non_persistent两种方式,还支持消息的恢复(recovery)方式PTPQueue的存储是很简单的,就是一个先进先出(FIFO)的Queue PUB/SUB对于持久化订阅的主题,每一个消费者将获得一个消息的复制 有效的消息存储ActiveMQ提供了一个插件式的消息存储,类似于消息的多点传播,...

2019-02-05 17:30:37 218

原创 ActiveMQ支持的传输协议

连接到ActiveMQConnector:ActiveMQ提供的,用来实现连接通讯的功能。包括:client-to-broker、broker-to-broker。ActiveMQ允许客户端使用多种协议来连接 配置Transport Connector,在conf/activemq.xml里面,大致如下: ActiveMQ支持的client-broker通讯协议如下: TCP:...

2019-02-05 14:03:40 360

原创 ActiveMQ结合Spring开发

Spring提供了对JMS的支持,需要添加Spring支持的jms包,如下: 添加ActiveMQ的pool包 然后需要在Spring的配置文件中,配置jmsTemplate,示例如下: queue消息的发送【消息的生产者】 queue消息的接收 如果是Topic的话,首先需要修改Spring配置 先添加topic配置文件,当然,如果需要配置jmsTemplate...

2019-02-04 16:16:53 166

原创 使用ActiveMQ构建应用

Broker:相当于一个ActiveMQ服务器实例 命令行启动参数实例如下: ./activemq start:使用默认的activemq.xml来启东 ./activemq start xbean:file:../conf/activemq-2.xml:使用指定的配置文件来启动 如果不指定file,也就是xbean:activemq-2.xml,那么xml必须在classpath小...

2019-02-04 14:53:30 266

原创 JMS的API结构

一个JMS应用的基本步骤JMS开发的基本步骤: 创建一个JMS Connection Factory 通过Connection Factory来创建JMS Connection 启动JMS Connection 通过Connection创建JMS Session 创建JMS Destination 创建JMS Producer,或者创建爱你JMS Messa...

2019-02-04 13:56:07 435

原创 JMS的可靠性机制

消息接收确认 JMS消息只有在被确认之后,才认为已经被成功的消费了。消息的成功消费通常包含三个阶段:客户接收消息、客户处理消息和消息被确认 在事务性会话中,当一个事务被提交的时候,确认自动发生。在非事务会话中,消息何时被确认取决于创建会话时的应答模式(acknowledgement mode)。该参数有以下三个可选值: Session.AUTO_ACKNOWLEDGE:...

2019-02-03 21:34:34 264

原创 JMS基本概念

JMS是什么JMS(Java Message Service),Java消息服务,是Java EE中的技术JMS规范JMS定义了Java中访问消息中间件接口,并没有给予实现,实现JMS接口的消息中间件称为JMS Provider,例如:ActiveMQ JMS Provider:实现JMS接口和规范的消息中间件 JMS Message:JMS的消息,JMS消息由以下三部分组成...

2019-02-03 16:54:32 328

原创 ActiveMQ简介

ActiveMQ是什么ActiveMQ是Apache推出的,一款开源的,完全支持JMS 1.1和J2EE 1.4规范的JMS Provider实现的消息中间件(Message Oriented Middleware,MOM)ActiveMQ能干什么最主要的功能是:实现JMS Provider,用来帮助实现高可用、高性能、可伸缩、易用和安全的企业级面向消息服务的系统Activ...

2019-02-03 13:28:28 260

转载 消息中间件相关知识以及各种消息中间件的比较

一、消息中间件相关知识1、概述消息队列已经逐渐成为企业IT系统内部通信的核心手段。它具有低耦合、可靠投递、广播、流量控制、最终一致性等一系列功能,成为异步RPC的主要手段之一。当今市面上有很多主流的消息中间件,如老牌的ActiveMQ、RabbitMQ,炙手可热的Kafka,阿里巴巴自主开发RocketMQ等。 2、消息中间件的组成      2.1 Broker消息服务器...

2019-02-02 20:46:50 615 3

原创 Dubbo原理以及服务的暴露、引用、调用、BIO、NIO

一、RPC原理 一次完整的RPC调用流程(同步调用,异步另说)如下: 1)服务消费方(client)调用以本地调用方式调用服务; 2)client stub【客户端代理】接收到调用后负责将方法、参数等组装成能够进行网络传输的消息体; 3)client stub找到服务地址,并将消息发送到服务端; 4)server stub【服务端...

2019-02-02 19:31:12 1162

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除