1. 数据接入
Last updated
Was this helpful?
Last updated
Was this helpful?
本用户手册供在大数据套件(以下简称TBDS)中使用数据接入(以下简称Hippo)中间件的用户使用,主要包括三个部分,第一部分主要介绍hippo中间件的一些基本概念;第二部分介绍hippo的数据接入操作;第三部分介绍数据消费操作。
Hippo是一个高可靠高可用的消息中间件,可以满足具有高可靠高可用应用场景的业务需求。
TBDS中Hippo Web页面地址为:
手册中涉及到了topic、queue、服务端、客户端等概念,topic即为JMS系统中的主题;queue是topic的队列,类似于kafka中的分区概念;服务端是指controller和broker,客户端指producer和consumer。
以下是其他常用概念:
Controller:
承担着整个系统节点数据的收集、状态的共享及事件的分发角色。
Broker:
以组的形势存在,三台broker一主两备组成一个组(可以根据具体情况配置),由主broker向controller定期汇报心跳以告知controller当前组的存活状态,主broker提供服务。
Producer:
发布topic并生产这个topic的数据。
Consumer:
订阅topic的信息,即消费topic的数据。
说明:
Broker可以停止读/写和恢复读/写,同组内的Broker可以实现主备切换
生产和消费都有组的概念,组内可以启动多个生产者或者消费者
同组内的消费者在消费时会进行负载均衡,均衡结果是每个消费者都占有topic的部分queue,但是不会有重复,因此在启动消费者消费时,不要让同组内的消费者数量大于queue的数量(否则会有消费者空跑,并且有异常日志的打印);另外,如果有同组消费者消费多个topic的需求,那么每个消费者都需要订阅所有的topic,否则可能会出现消费不到数据的情况(不推荐使用这种单个消费组消费多个topic的使用方法)。
接下来会以一个名为test的topic详细展示套件用户admin(为方便展示,admin是管理员)使用hippo数据接入和消费的过程。
主要包括了接入列表、队列信息列表和集群信息列表三个模块,对应于数据接入选项卡左侧的三个目录。
填写topic信息并提交。申请topic需要填写一些信息,前7项都是必填项,最后一下“业务描述”用来描述业务,是可选项。
必填项处已经给出了相应的提示和说明,以下是具体解释:
topic名称:全局唯一的,不能重复,要求包含数字、字母、下划线,并且下划线不做开头和结尾;
ip列表:用户生产topic的ip列表,多个ip之间使用分号分隔开,支持模糊匹配,申请时请添加所有有生产需求的ip;
队列模型:topic的队列模型,包括并发和顺序两种,并发可以提高数据消费的并发读,顺序则可以保证数据的有序,即消费的顺序和生产的顺序一致(必须是在单进程内生产数据,如果多个进程同时生产数据则无法保证数据的顺序 性);
数据量:估算值,每天的生产总量;
峰值速率:估算值,生产数据的最大速率;
负责人:topic的负责人,即有权限生产此topic数据的所有用户,此处会给出tbds的用户列表,从中选取即可;
业务描述:辅助信息,用来描述topic。
审批注意事项:
审批单详情中可以看到申请时填写的信息,管理员审批时应该注意集群的选择(示例中只有一个BrokerGroup,实际场景可能会有多组),管理员可以选择BrokerGroup、指定该BrokerGroup上的新增队列数量。管理员在审批时应该根据该BrokerGroup的topic和queue数量做好资源的分配,最后执行通过或者驳回操作。
管理员审批通过一个topic之后,就可以在接入列表查看这个topic的信息,如图2-5所示。需要注意的是对于一个topic可以执行扩容或者调试操作,扩容操作仅针对于并发模型的topic,扩容界面和审批中的集群选择类似,需要勾选BrokerGroup并指定扩容的队列数量,扩容操作可以提高并发度,提升消费的速率,一般在消费滞后时使用;调试功能仅针对于顺序模型的topic,在一个顺序模型的topic生产了数据之后,通过调试功能可以查看生产数据的内容。在接入列表页面点击topic名称,可以看到topic的详细信息。
审批通过,接入完成。审批通过后用户需在审批单详细信息中注意两点,首先是secretId和secretKey,secretId和secretKey在生产、消费时需要写到客户端配置中;其次为sdk下载是客户端sdk的下载链接,目前仅支持java的sdk。
Queue信息包括:
ID:唯一值,用来表示queue的编号;
Store名称:queue的存储单元名称;
开始编辑时间:第一条数据的写入时间;
最后编辑时间:最后一条数据的写入时间;
Store容量:存储单元的容量;
Offset区间:存储单元中数据的偏移量区间;
支持写:存储单元是否支持写入。
集群信息包括:
集群名称:BrokerGroup名称
Ip列表:BrokerGroup中各个Broker的Ip
Topic数量:BrokerGroup上Topic的数量
Queue数量:BrokerGroup上Queue的数量
上报状态:由BrokerGroup上报的BrokerGroup的读写状态
控制状态:由Controller设置的BrokerGroup的读写状态
操作:停止读/写,恢复读/写,主备切换。
关于集群的操作,读写控制包括停止或者恢复读/写,是通过改变控制状态来完成的,停止读/写之后,BrokerGroup对于客户端来讲是不可读/写的;恢复读/写之后,BrokerGroup恢复读/写功能。主备切换用来切换BrokerGroup集群中Broker主备状态,如非必要,也不推荐使用。
图2-8 集群信息
主要包括了数据消费、监控、消费进展三个模块,分别对应于数据消费选项卡左侧的三个目录。
申请消费。消费数据之前需要先提交消费申请。
填写消费信息并提交申请。
其中,前四项是必填项,“数据用途说明”是选填项。必填项包括:
Topic名称:要申请消费的topic名称,必须是已经存在的topic;
消费组:消费组的名称,唯一;
数据用途:数据用途描述;
IP列表:消费客户端Ip地址列表,申请时请填入所有有消费需求的ip。 3. 管理员审批消费申请。提交申请之后,topic的负责人可以在个人中心看到审批单(和接入申请的审批单类似),点击详情可以看到消费申请的详细信息。
Topic的负责人根据申请内容,决定是否通过审批。审批通过的消费申请,可以在数据消费页面看到其内容,可以看到对于审批通过的消费组有个“负载均衡查看”操作,此操作可以查看正在消费的客户端的队列分配情况。
数据进行消费。
用户需在择topic和对应的消费组之后,就可以看到其在每个queue上的生产、消费信息。
Topic名称:topic的名称
QueueId:队列queue的id
消费者业务ID:消费者编号
已提交offset:已经提交过的消费offset
已拉取至offset:已经从服务端拉取的offset
提交超时时间:提交的超时时间
已拉取未提交数:已经从服务端拉取但是还没有执行提交的数量
创建时间:消费的起始时间
修改时间:最后一次消费的时间
topic申请。数据接入之前需要先申请topic,topic审批通过之后,客户端才可以生产数据。通过图2-1右上角“接入申请”按钮可以进入topic的申请页面。
管理员审批接入申请。用户提交申请后,管理员可以在套件的“个人中心”看到这个接入申请并做审批。在审批页面管理员可以看到申请类型是HIPPO_PRODUCE,表明这是一个接入申请,相对应的申请类型还有HIPPO_CONSUME,表明是消费申请;还有申请人、申请时间、申请原因、申请状态等信息,最后管理员可以点击 “详情”来查看这个申请的详情,并执行审批操作。
队列信息按照 queueID展示了所有topic的queue信息,也可以用来查看数据的生产状况。
集群管理(仅管理员可见)展示了集群中的BrokerGroup信息。
用户进行数据消费后,可在监控页面查看消费是否跟上生产。
消费进展展示了每个消费组的消费情况。页面展示了个消费组下topic消费的详情。 具体各个项目含义如下: