amazon-kinesis-producer, 亚马逊Kinesis制作库

分享于 

12分钟阅读

GitHub

  繁體 雙語
Amazon Kinesis Producer Library
  • 源代码名称:amazon-kinesis-producer
  • 源代码网址:http://www.github.com/awslabs/amazon-kinesis-producer
  • amazon-kinesis-producer源代码文档
  • amazon-kinesis-producer源代码下载
  • Git URL:
    git://www.github.com/awslabs/amazon-kinesis-producer.git
    Git Clone代码到本地:
    git clone http://www.github.com/awslabs/amazon-kinesis-producer
    Subversion代码到本地:
    $ svn co --depth empty http://www.github.com/awslabs/amazon-kinesis-producer
    Checked out revision 1.
    $ cd repo
    $ svn up trunk
    
    室Producer库

    简介

    在亚马逊 Kinesis Producer Producer Producer Producer Producer Producer Producer performs performs performs performs performs performs performs performs performs performs performs。 通过使用 KPL,客户不需要每次创建一个新的应用程序时都开发相同的逻辑。

    ,Amazon开发人员指南中的亚马逊Kinesis开发人员库see详细的信息和安装说明,见开发生产Producer亚马逊 Kinesis Applications。

    需要升级

    从February开始,数据流将开始过渡到由亚马逊信任服务( 自动测试) ( ) 所颁发的证书。 要继续使用 Kinesis Producer库,你必须将KPL升级到版本 或者 这里更改影响除 AWS GovCloud ( 我们)。中国( 北京市) 和中国( 宁夏) 以外的所有区域。

    中,请打开一个 GitHub,或者使用AWS支持中心( ) 创建一个事例。

    这是在亚马逊的Kinesis数据流开发者指南中发布的关于通知的restatement。

    发行说明

    0.12.8

    Java
    • 确保所有证书都注册为 FileAgeManager,以防止文件清理程序删除它们
    • 将aws-java-sdk-core升级到 1.11.245

    0.12.7

    C++ 内核
    • 删除了不必要的libidn,并正确地将libuuid设置为 static 链接。 这里问题仅影响Linux版本。
    • macOS 中的禁用clock_gettime支持。
      这修复了KPL无法在 macOS 版本超过 10.12的情况下运行的问题。
    • 在Linux上使用KPL的更新要求。
      Linux上的KPL现在需要glibc或者更高版本。

    0.12.6

    C++ 内核
    • 添加了 Windows 支持
      0.12. x 版本现在支持 Windows。
      当前 Windows 版本在分支 windows 上被掌握,后者将在以后合并。
      Windows的生成指令目前已经过时,将在以后的date._ _,中更新
    • 移除libc包装器
      libc包装降低了glibc所需的版本。 现在KPL使用旧版本的libc构建,它消除了对包装器的需求。
    • 将 macOS 所需的最低版本设置为 10.9.
      现在KPL是针对 macOS 10.9构建的。
    Java
    • 允许向守护进程的线程异常处理程序中冒泡到线程异常处理程序。
      在守护进程线程上发生的异常现在将被允许传播到线程异常处理程序。 这不提供任何额外的线程死亡监视或者处理。
    • 更新了 amazon-kinesis-producer-sample 以便在它的配置文件中使用正确的属性。
    • 更新了 AggregationMaxSize 到 MATCH 实际Kinesis的文档。
    • 添加了对设置 ThreadingModel 和使用属性文件的ThreadPoolSize的支持。
    • KinesisProducer 中提取 IKinesisProducer 以便于测试。

    0.12.5

    C++ 内核
    • 恢复到较老版本的glibc。
    • 更新 bootstrap.sh 以包含新版本的GCC的新编译器选项。

    0.12.4

    Java
    • 对aws-java-sdk-core的升级依赖到 1.11.128,并删除了版本范围。
    • 使用显式锁定文件来管理对本机KPL二进制文件的访问。
    • 当本地进程退出时,日志读取器线程应该关闭。
    C++ 内核
    • 添加对使用线程池的支持,而不是针对每个请求添加线程。 线程池模型保证了固定数量的线程,但如果KPL过载,则会遇到问题。
    • 添加日志消息,以及有关将数据发送到Kinesis的统计信息。
      • 添加了记录事件计数的刷新统计信息,这些事件触发了触发Kinesis的数据刷新

      • 添加了一个日志消息,指示PutRecords请求完成所需的平均时间。

        这里时间是从请求排队到完成请求时记录的。

      • 如果平均请求时间超过配置的刷新间隔的5 倍,则记录警告。

        如果你正常地看到这个警告,它表明KPL正在保持问题。 最可能的原因是生成许多请求,你应该调查刷新触发器以确定触发刷新的原因。

      • PR #102

    0.12.3

    Java
    • Java进程将定期重置本机组件的上次修改时间。 这将有助于确保不会通过自动清理脚本删除这些文件。

    0.12.2

    C++ 内核
    • 本地进程将不再报告SIGPIPE信号,因为它是堆栈跟踪的错误。
    • 允许使用SIGUSR1触发堆栈跟踪。 这个堆栈跟踪只会报告接收信号时发生的线程。

    0.12.1

    C++ 内核
    • 本机进程将不再尝试使用默认系统CA包

      • KPL现在应该在Linux版本中运行,不会将默认in包放置在/etc/pki 中
      • 这修复了 #66
    • 添加了自动BJS端点选择

      • 现在,KPL将在配置为BJS时选择BJS端点。
      • 这修复了 #36

    0.12.0

    • Maven 工件签名更改

      • 构件现在由标识签名 Amazon Kinesis Tools <amazon-kinesis-tools@amazon.com>
    • Windows 支持对这个版本是不可用的。

      这个版本的Kinesis Producer库目前不支持 Windows。 Windows 支持将在以后添加。

    Java
    • 现在,kinesis_producer的日志输出被捕获,并由LogInputStreamReader发出
    • 这个守护进程现在更积极地重新启动本机kinesis_producer进程。
    • 更新的AWS SDK依赖项。
    C++ 内核
    • 本机进程现在使用 AWS C++ SDK的版本 1.0.5.
      • 本机进程目前不支持任何 AWS C++ SDK凭据提供程序。 对这些提供程序的支持将在以后添加。
    • 本机进程现在尝试为各种致命信号生成堆栈跟踪。

    0.10.2

    杂项 Bug 修复和改进。

    英镑重要:因为在Java日志中,你现在需要在依赖关系中实现一个日志实现,这将在你的依赖关系中进行。 有关slf4j的详细信息,请参阅手册。 有关如何获取基本日志的快速演练,请参见

    常规
    • maxConnections设置的默认值已经从 4增加到 24.
    Java
    • slf4j-simple依赖项现在是可选的。
    • aws-java-sdk-core 版本增加到 1.10.34。 请确保你的AWS组件都具有相同的主版本。
    • 记录完成回调现在以线程线程而不是在IPC线程中执行。
    C++ 内核
    • 修正了在OSX最新版本上产生无效签名请求的Bug。

    0.10.1

    Java包装器中的Bug 修复和改进的临时文件管理。

    Java
    • 包装器不再为每个KinesisProducer实例在磁盘上创建本机二进制二进制文件的副本。 多个实例现在可以共享相同的文件。 通过向文件名中添加内容的哈希,可以防止在版本之间进行破坏。
    C++ 内核
    • 空闲CPU使用率已经减少( 问题 15 )
    • 当包装进程被终止( 问题 16 ) 时,本机进程现在应该终止。

    0.10.0

    Java包装器中显著的平台兼容性改进和更容易的凭证配置。

    常规
    • 现在KPL在 Windows 上工作( 服务器 2008和更高版本)
    • RecordMaxBufferedTime 配置上的下限已经被删除。 你现在可以将它的设置为 0,但不建议这样做
    Java
    • java包被重命名为与KCL的包名一致( 现在是 com.amazonaws )。 服务。kinesis。producer。
    • Configuration 类已经被重命名为 KinesisProducerConfiguration
    • KinesisProducerConfiguration 现在可以接受用于配置凭据的sdk实例的AWS Java AWSCredentialsProvider
    • 另外,现在可以提供一组不同的凭据来上传度量信息。
    C++ 内核
    • Glibc版本需求已经减少到 2.5个( 从 2.17 )。
    • 二进制文件现在大部分静态链接,因此不需要再配置 (DY)LD_LIBRARY_PATH
    • 不再使用 std::shared_timed_mutex,因此不再需要在 OS X 上更新 libc++
    • 删除了 glog,libunwind和gperftools上的依赖关系。
    Bug 修复
    • 关闭套接字相关的错误消息( 问题 3 )
    • 排队请求现在可以过期( 问题 4 )

    0.9.0

    • 第一个版本

    支持平台和语言

    KPL是用 C++ 编写的,并作为子进程运行到主用户进程。 预编译本机二进制文件与Java版本捆绑在一起,并由Java包装器管理。

    在不需要在以下操作系统上安装任何其他本机库的情况下,应该运行Java软件包:

    • 具有 glibc 2.9或者更高版本的Linux发行版
    • Apple OS X 10.9和更高版本
    • Windows Server 2008和更高版本

    注意该版本仅为 64位。

    示例代码

    java/amazon-kinesis-sample 中可以使用一个示例java项目。

    编译本机代码

    Java开发者鼓励使用 KPL发行版,而不是从源代码编译,它包括用于Linux的预先编译的原生二进制文件。macOS。Java。xml等。

    本机KPL组件的编译目前正在迁移到 CMake。 当前正在对构建指令的更新在问题 #67 中进行跟踪。

    使用Java包装器与编译后的本地二进制文件

    可以将二进制文件包装到正式发布的jar 中,也可以分别部署本机二进制文件。

    将本机二进制文件打包到 jar 中

    你将需要 JDK 1.7 +,Apache Maven 和 python 2.7安装。

    如果你在 Windows 上,请在我们用于构建的git bash shell 中执行下列操作。 你需要向 PATH 中添加 javapython,以及为 Maven 设置 JAVA_HOME

    运行 python pack.py

    然后

    
    pushd java/amazon-kinesis-producer
    
    
    mvn clean package source:jar javadoc:jar install
    
    
    popd
    
    
    
    

    这将把 jar 安装到本地 Maven repo。 jar 本身可用于 java/amazon-kinesis-producer/targets/

    java包装器包含在初始化期间提取和运行二进制文件的逻辑。

    将Java包装指向自定义二进制文件

    KinesisProducerConfiguration 类提供了一个选项 setNativeExecutable(String val)。 你可以使用它为你构建的kinesis_producer[.exe] 可执行文件提供一个路径。 如果给定字符串字面,则必须使用反斜线来分隔 Windows 上的路径。