• 问题引出

新产品的体系架构包含多个模块,模块集特点是数量多、模块间交互复杂。那么统一接口是一个很好的解决方案,为了实现统一接口打算采用微服务的核心思想,设计了采用restful service的数据交互方式技术架构。这里记录一下kafka资源访问的服务化搭建,后续记录api和实战。

  • 解决方案

restful api的出现在很大程度上降低了模块/系统数据交互的难度(开发和使用),特别是对前后端数据访问上。于是基于此,找到了confluent。confluent是kafka的创始团队离开Linkin后研发出来的产品,所以是一个很强大的产品级工具平台。confluent开源版本中包含了kafka rest proxy,具体如下:

  1. 下载confluent:

    https://www.confluent.io/download/
    

    备注:下载包过程中需要填写email信息,尽管填就行。

  2. zk集群、kafka集群启动,这里就不介绍,具体请参考kafka集群搭建
  3. 由于confluent中包含了zk和kafka,这里就不用去处理。直接配置kafka rest proxy, 配置文件位置:
    /Users/xnchall/Software/confluent/confluent-4.1./etc/kafka-rest/kafka-rest.properties

    配置如下:

  4. id=kafka-rest-test-server

    schema.registry.url=http://192.168.X.100:8081

    zookeeper.connect=192.168.X.100:2181,192.168.X.100:2182

    bootstrap.servers=PLAINTEXT://192.168.X.100:9092

    schema.registry.url这个参数是为数据序列化avor服务的,建议配置上,说不定将来就用上了呢。其余两个分别是zookeeper和kafka集群配置。

  5. 配置schema-registry:
    路径:/Users/xnchall/Software/confluent/confluent-4.1./etc/schema-registry
    配置如下:
    # The address the socket server listens on.
    # FORMAT:
    # listeners = listener_name://host_name:port
    # EXAMPLE:
    # listeners = PLAINTEXT://your.host.name:9092
    listeners=http://0.0.0.0:8088 # Zookeeper connection string for the Zookeeper cluster used by your Kafka cluster
    # (see zookeeper docs for details).
    # This is a comma separated host:port pairs, each corresponding to a zk
    # server. e.g. "127.0.0.1:3000,127.0.0.1:3001,127.0.0.1:3002".
    kafkastore.connection.url=192.168.x.100:,192.168.x.100: # Alternatively, Schema Registry can now operate without Zookeeper, handling all coordination via
    # Kafka brokers. Use this setting to specify the bootstrap servers for your Kafka cluster and it
    # will be used both for selecting the master schema registry instance and for storing the data for
    # registered schemas.
    # (Note that you cannot mix the two modes; use this mode only on new deployments or by shutting down
    # all instances, switching to the new configuration, and then starting the schema registry
    # instances again.)
    #kafkastore.bootstrap.servers=PLAINTEXT://localhost:9092 # The name of the topic to store schemas in
    kafkastore.topic=_schemas # If true, API requests that fail will include extra debugging information, including stack traces
    debug=True
  6. 启动kafka rest服务
    路径:/Users/xnchall/Software/confluent/confluent-4.1./bin
    启动命令:
    ./kafka-rest-start ../etc/kafka-rest/kafka-rest.properties 注意:前提是kafka和zk已经全部正常启动
  7. 启动schema-registry(可以不启动)
    路径:同kafka-rest
    启动命令:
    ./schema-registry-start ../etc/schema-registry/schema-registry.properties
  8. 检查kafka-rest否正常启动
    方式一:jps
    方式二:http://192.168.X.100:8082/topics
    建议使用方式二直观明了
  • 后续

至此,kafka-restful service算是搭建和启动完成,接下来就是具体通过kafka rest proxy访问kafka资源了,核心包括生产消息、各类消费消息、资源释放与本身负载均衡、以及存在问题等,请见待更新 kafka rest api介绍与实战

参考:https://www.confluent.io

基于kafka rest实现资源访问服务化(实战)的更多相关文章

  1. aliCloud基于RAMService实现跨账户资源访问

    1,aliCloud基于RAM service实现跨账户ECS资源访问Example 主要的资源为Instance,Image,Snapshot,disk,SecurityGroup Action太多 ...

  2. Knative 实战:基于 Kafka 实现消息推送

    作者 | 元毅 阿里云智能事业群高级开发工程师 导读:当前在 Knative 中已经提供了对 Kafka 事件源的支持,那么如何基于 Kafka 实现消息推送呢?本文作者将以阿里云 Kafka 产品为 ...

  3. 基于Kafka Connect框架DataPipeline在实时数据集成上做了哪些提升?

    在不断满足当前企业客户数据集成需求的同时,DataPipeline也基于Kafka Connect 框架做了很多非常重要的提升. 1. 系统架构层面. DataPipeline引入DataPipeli ...

  4. 打造实时数据集成平台——DataPipeline基于Kafka Connect的应用实践

    导读:传统ETL方案让企业难以承受数据集成之重,基于Kafka Connect构建的新型实时数据集成平台被寄予厚望. 在4月21日的Kafka Beijing Meetup第四场活动上,DataPip ...

  5. Spring源码分析——资源访问利器Resource之实现类分析

    今天来分析Spring的资源接口Resource的各个实现类.关于它的接口和抽象类,参见上一篇博文——Spring源码分析——资源访问利器Resource之接口和抽象类分析 一.文件系统资源 File ...

  6. ABP从入门到精通(5):使用基于JWT标准的Token访问WebApi

    项目:asp.net zero 4.2.0 .net core(1.1) 版本 我们做项目的时候可能会遇到需要提供api给app调用,ABP动态生成的WebApi提供了方便的基于JWT标准的Token ...

  7. restful架构风格设计准则(四)资源表示和资源访问

    读书笔记,原文链接:http://www.cnblogs.com/loveis715/p/4669091.html,感谢作者! 一.资源表示 1.资源表示:使用 单数 vs. 复数 如果一个URL所对 ...

  8. 基于Kafka Connect框架DataPipeline可以更好地解决哪些企业数据集成难题?

    DataPipeline已经完成了很多优化和提升工作,可以很好地解决当前企业数据集成面临的很多核心难题. 1. 任务的独立性与全局性. 从Kafka设计之初,就遵从从源端到目的的解耦性.下游可以有很多 ...

  9. DataPipeline丨瓜子二手车基于Kafka的结构化数据流

    文 |彭超 瓜子大数据架构师 交流微信 | datapipeline2018 一.为什么选择Kafka   为什么选Kafka?鉴于庞大的数据量,需要将其做成分布式,这时需要将Q里面的数据分到许多机器 ...

随机推荐

  1. Jmail发送邮件工具类

    好久没更新博客了,实在是拖延症严重啊,好可怕,先更新个工具类吧,之前写的发送邮件的小工具,话不多说上代码 import lombok.extern.slf4j.Slf4j; import java.u ...

  2. 模仿jquery的data

    jquery中,有这个方法 var obj = {}; $.data(obj,'name','jake'); console.info($.data(obj,'name')); console.inf ...

  3. wamp配置步骤

    对于初做PHP网站的朋友来说,第一步肯定是希望在自己电脑是搭建PHP环境,省去空间和上传的麻烦!但搭建环境也不是件容易的事情,特别是对于新手同学来说!因此在这里跟大家介绍我作为一名新手在使用的方便好用 ...

  4. IIS 网站发布——遇到的问题,以及解决方案

    在 解决方案——Web 右键  发布  如图:   之后,在其他文件夹或盘  放入发布之后 生成的文件 如图所示,之所以这样是为了好整理查找发布的项目.   之后,在IIS 上发布出去     首先 ...

  5. web前端开发需要具备的技能

    web前端开发需要具备以下7种技能: 1.页面标记(HTML) HTML页面固定,标签不多,相对来说学起来比较容易.编写HTML代码需遵循HTML代码规范(http://www.cnblogs.com ...

  6. Django—middleware

    一.Django中间件的请求周期 我们从浏览器发出一个请求 Request,得到一个响应后的内容 HttpResponse ,这个请求传递到 Django的过程如下: 也就是说,每一个请求都是先通过中 ...

  7. html+css中常见的浏览器兼容性处理

    1.居中问题 div里的内容,IE默认为居中,而FF默认为左对齐,可以尝试增加代码margin: 0 auto; 2.高度问题 两上下排列或嵌套的div,上面的div设置高度(height),如果di ...

  8. 微信小程序开发5-WXML

    1.HTML元素是构建网页的一种单位,是由HTML标签和HTML属性组成的,HTML元素也是网页中的一种基本单位.HTML与其他标记语言一样,HTML的关键,是标签(tag).HTML标签是HTML语 ...

  9. Android 高速录像(1)

    package com.kirin.voltage.activity; import java.io.File;import java.io.IOException;import java.util. ...

  10. 关于YARN的基本结构