当前位置: 首页 > news >正文

Pulsar IO实战

一、引言

今天跟着 官方文档 基于docker玩一把Pulsar IO吧

二、概要

  • 在用户能够轻松的将消息队列跟其他系统(数据库、其他消息系统)一起使用时,消息队列的作用才是最强大的。而Pulsar IO connectors可以让你很轻松的创建、部署以及管理这些跟外部系统的连接,例如mysql、kafka、cassandra等。

  • Pulsar connector分为Source和Sink两种,Source connector会将数据从外部系统喂给Pulsar,而Sink connector负责将数据从Pulsar喂给外部系统。

  • Pulsar connector是一种特殊的Function,只不过这个Function持有其他系统的客户端作为pulsar与其他系统的桥梁,它在处理保证上跟Function是一致的,分别是最多一次、至少一次、精准一次。处理保证不仅依靠Pulsar,还跟外部系统相关以及实现逻辑相关。

    • 最多一次:发给connector的消息最多处理一次或者不做处理
    • 至少一次:发给connector的消息处理一次或者多次
    • 精准一次:发给connector的消息只处理一次

三、实战

1.安装connector

  1. 在 这里 下载对应的connector,先选择对应的版本,在点进 connectors 目录选择对应的source或者sink
    在这里插入图片描述

  2. 将下载的nar文件放到pulsar安装地址的connectors 目录下(没有则需要创建)
    在这里插入图片描述

  3. 启动Pulsar

  4. 通过指令查看服务connector信息,先输出下面这样的信息就说明connector已经注册到Pulsar上面了

    curl -s http://localhost:8080/admin/v2/functions/connectors
    

    在这里插入图片描述

2. 安装Cassandra

  1. 基于 brew install --cask --appdir=/Applications docker 安装docker(仅针对mac环境)

  2. 基于docker运行 cassandra,成功运行后通过 docker ps可以看到Cassandra服务已经起来了

    docker run -d --rm --name=cassandra -p 9042:9042 cassandra:3.11
    

在这里插入图片描述

  1. 通过 docker exec -ti cassandra cqlsh localhost 进入Cassandra服务的容器,并通过以下指令进行库表的初始化

    CREATE KEYSPACE pulsar_test_keyspace WITH replication = {'class':'SimpleStrategy', 'replication_factor':1};USE pulsar_test_keyspace;CREATE TABLE pulsar_test_table (key text PRIMARY KEY, col text);
    
  2. 先查询该表确保没有数据 select * from pulsar_test_table;
    在这里插入图片描述

3. 功能验证

  1. 写配置文件cassandra-sink.yml

    configs:roots: "localhost:9042"keyspace: "pulsar_test_keyspace"columnFamily: "pulsar_test_table"keyname: "key"columnName: "col"
    
  2. 启动写Cassandra的sink,启动后通过指令查看显示sink已经正常启动

pulsar-admin sinks create \--tenant public \--namespace default \--name cassandra-test-sink \--sink-type cassandra \--sink-config-file examples/cassandra-sink.yml \--inputs test_cassandra

在这里插入图片描述

  1. 执行命令批量往pulsar中写入数据,看是否会正常输出到Cassandra中

    for i in {0..9}; do pulsar-client produce -m "key-$i" -n 1 test_cassandra; done
    
  2. 由于上面的操作是有延迟的,所以不断的查询Cassandra的表是可以看到数据在逐步的增加,并最终写满十条数据
    在这里插入图片描述
    在这里插入图片描述

四、总结

纸上得来终觉浅,绝知此事要躬行。 学习不能仅仅停留在纸面上或者理论,脱离使用去探讨设计或者源码都是不切实际的。因此今天一起体验了一把Pulsar IO,除此之外Pulsar还提供了非常丰富的跟其他系统交互的Connector,详细可以看上面发的下载地址并尝试使用自己感兴趣的Connector感受下实操的快乐~

相关文章:

Pulsar IO实战

一、引言 今天跟着 官方文档 基于docker玩一把Pulsar IO吧 二、概要 在用户能够轻松的将消息队列跟其他系统(数据库、其他消息系统)一起使用时,消息队列的作用才是最强大的。而Pulsar IO connectors可以让你很轻松的创建、部署以及管理这些跟外部系统的连接&#…...

Linux/Ubuntu/Debian基本命令:文本操作

Linux系统真的超级好用,免费,有很多开源且功能强大的软件。尤其是Ubuntu,真的可以拯救十年前的老电脑。 下面是用于在命令行界面(Terminal)中进行文本操作的键盘快捷键, 这些快捷方式对于高效的文本编辑非常…...

Self-supervised Contextual Keyword and Keyphrase Retrieval with Self-Labelling

文章目录 题目摘要方法数据集实验 题目 通过自我标记进行自我监督的上下文关键字和关键词短语检索 论文地址:https://www.preprints.org/manuscript/201908.0073/v1 项目地址:https://github.com/naister/Keyword-OpenSource-Data 摘要 在本文中&#x…...

新 树莓派4B 温湿度监测 基于debian12的树莓派OS

前言 本文旨在完成通过外接温湿度传感器至树莓派使得树莓派不断记录并存储温湿度数据 这个领域有很多文章,但是部分文章已经缺乏了时效性,在最新系统不适用,本文目前适用 硬件 硬件连接 温湿度传感器常选用DHT11和DHT22,淘宝…...

人工智能入门之旅:从基础知识到实战应用(一)

一、引言 人工智能(Artificial Intelligence,AI)是指利用计算机科学和技术模拟、延伸和扩展人类智能的理论、方法、技术和应用系统的学科。它的目标是使计算机系统具有类似于人类的智能,能够感知环境、学习、推理、规划、解决问题和交流。 在当今社会中,人工智能具有极其…...

GNN/GCN自己学习

一、图的基本组成 V:点(特征) E:边 U:图(全局特征) 二、用途 整合特征(embedding),做重构 三、邻接矩阵 以图像为例,每个像素点周围都有邻居,…...

honle电源维修UV电源控制器维修EVG EPS60

好乐UV电源控制器维修;honle控制器维修;UV电源维修MUC-Steuermodul 2 LΛmpen D-82166 主要维修型号: EVG EPS 60/120、EVG EPS 100、EVG EPS200、EVG EPS 220、EVG EPS 340、EVG EPS40C-HMI、EVG EPS60 HONLE好乐uv电源维修故障包括&#…...

【学习心得】Python好库推荐——websocket-client

websocket-client 是一个在 Python 中广泛使用的库,用于创建 WebSocket 客户端并实现与 WebSocket 服务器的双向通信。更多的关于websocket协议介绍,可以看看我之前写的文章哦! 【学习心得】websocket协议简介并与http协议对比http://t.csdn…...

3.1_8 两级页表

文章目录 3.1_8 两级页表(一)单级页表存在的问题(二)如何解决单级页表的问题?(三)两级页表的原理、地址结构(四)如何实现地址变换(五)需要注意的几…...

【SysBench】sysbench-1.20 命令速查表

1、通用语法 The general command line syntax for sysbench is: sysbench [options]... [testname] [command] testname is an optional name of a built-in test (e.g. fileio, memory, cpu, etc.), or a name of one of the bundled Lua scripts (e.g. oltp_read_only), or…...

neo4j网页无法打开,启动一会儿后自动关闭,查看neo4j status显示Neo4j is not running.

目录 前情提要User limit of inotify watches reached无法访问此网站 前情提要 公司停电,服务器未能幸免,发现无法访问此网站,http://0.0.0.0:7474 在此之前都还好着 User limit of inotify watches reached (base) [rootlocalhost ~]# n…...

一键卸载和安装 nvidia、cuda、cudnn、tensorrt

1. 卸载 nvidia、cuda、cudnn、tensorrt sudo apt purge \"cuda*" \"libcudnn*" \"libnvinfer*" \"libnvonnxparsers*" \"libnvparsers*" \"tensorrt*" \"nvidia*&…...

LeetCode 389. 找不同

文章目录 一、题目二、C 题解 一、题目 给定两个字符串 s 和 t ,它们只包含小写字母。 字符串 t 由字符串 s 随机重排,然后在随机位置添加一个字母。 请找出在 t 中被添加的字母。 示例 1: 输入:s “abcd”, t “abcde” 输出&…...

科技云报道:两会热议的数据要素,如何拥抱新技术?

科技云报道原创。 今年全国两会上,“数字经济”再次成为的热点话题。 2024年政府工作报告提到:要健全数据基础制度,大力推动数据开发开放和流通使用;适度超前建设数字基础设施,加快形成全国一体化算力体系&#xff1…...

【linux】进程管理:进程控制块、进程号、fork创建进程、特殊进程及exec函数族解析

一、进程的概述 可执行程序运行起来后(没有结束之前),它就成为了一个进程。程序是存放在存储介质上的一个可执行文件,而进程是程序执行的过程。进程的状态是变化的,其包括进程的创建、调度和消亡。程序是静态的,进程是…...

【DL经典回顾】激活函数大汇总(八)(Maxout Softmin附代码和详细公式)

激活函数大汇总(八)(Maxout & Softmin附代码和详细公式) 更多激活函数见激活函数大汇总列表 一、引言 欢迎来到我们深入探索神经网络核心组成部分——激活函数的系列博客。在人工智能的世界里,激活函数扮演着不…...

Docker进阶:深入了解 Dockerfile

Docker进阶:深入了解 Dockerfile 一、Dockerfile 概述二、Dockerfile 优点三、Dockerfile 编写规则四、Dockerfile 中常用的指令1、FROM2、LABEL3、RUN4、CMD5、ENTRYPOINT6、COPY7、ADD8、WORKDIR9、 ENV10、EXPOSE11、VOLUME12、USER13、注释14、ONBUILD 命令15、…...

【LeetCode热题100】206. 反转链表(链表)

一.题目要求 给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。 二.题目难度 简单 三.输入样例 示例 1: 输入:head [1,2,3,4,5] 输出:[5,4,3,2,1] 示例 2: 输入:head [1,2…...

电玩城游戏大厅计时软件怎么用,佳易王计时计费管理系统软件定时语音提醒操作教程

电玩城游戏大厅计时软件怎么用,佳易王计时计费管理系统软件定时语音提醒操作教程 一、前言 以下软件操作教程以 佳易王电玩计时计费软件V18.0为例 说明 软件文件下载可以点击最下方官网卡片——软件下载——试用版软件下载 1、软件计时计费,只需点击开…...

selenium也能过某数、5s盾..

文章转载于:selenium也能过某数、5s盾… 直接安装: pip install undetected_chromedriver运行代码: import undetected_chromedriver as uc import timedriver uc.Chrome(executable_pathrC:\Users\chromedriver.exe,version_main111) driver.get(网…...

不变性假设下的PAC学习:从VC维到不变性VC维的样本效率提升

1. 项目概述:不变性假设下的PAC学习理论在机器学习领域,我们经常希望模型不仅能拟合训练数据,更能捕捉数据背后的本质规律,从而对未见过的数据做出可靠预测。PAC(Probably Approximately Correct)学习理论为…...

Win11蓝屏修复了?实测UHUB V5.15到V5.16版本升级,虚拟摄像头设置避坑指南

Win11蓝屏修复实测:UHUB V5.15到V5.16版本升级全攻略与虚拟摄像头深度优化最近在调试一套无人直播系统时,发现不少同行还在被Win11蓝屏问题困扰。作为从XCMS时代就开始使用这套工具的老用户,我完整经历了从音视频不同步到驱动框架彻底重构的技…...

为你的AI应用配置Taotoken实现自动故障转移与路由

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 为你的AI应用配置Taotoken实现自动故障转移与路由 在构建依赖大模型API的应用时,服务的稳定性直接关系到终端用户的体验…...

RuoYi登录接口自动化:验证码、AES加密与JWT全链路验证

1. 为什么登录接口自动化不是“点几下就完事”,而是RuoYi项目落地的第一道生死线在接手第7个基于RuoYi-Vue的政企内部系统交付时,我遇到过最尴尬的一幕:客户现场验收当天,测试同事用Postman手工执行登录接口,输入账号密…...

在C#中根据控件名称获取控件实例的方法

在C#中,如果你想要根据控件名称(控件的Name属性)遍历并获取窗口或容器中的控件实例,通常有以下几种方法,这取决于你使用的是WinForms还是WPF。WinForms在WinForms中,你可以使用Control.Find方法或者通过递归…...

破解行业共性管控难题,推动矿山安全体系迭代升级 ——基于视频孪生无感定位的矿山安全体系革新技术方案

破解行业共性管控难题,推动矿山安全体系迭代升级——基于视频孪生无感定位的矿山安全体系革新技术方案一、方案引言国内煤炭矿山长期在人员监管、灾害应急、隐患溯源、空间管控层面沉淀诸多共性难题,佩戴管控流于形式、监测数据失真失实、灾变监测体系快…...

AI-7D-SATS 平台的施工蓝图:为什么企业级 Agent(智能任务角色)应用不能边试边搭?

企业级 Agent(智能任务角色)应用不是把模型接进系统就结束。它更像一项工程建设:先画清蓝图,再决定哪里用智能,哪里靠流程,哪里必须留给人确认。一、为什么企业级 Agent 不能边试边搭 很多团队第一次做 Age…...

毫米波雷达8.6米非接触生命体征监测:mmVital-Signs开源项目完整指南

毫米波雷达8.6米非接触生命体征监测:mmVital-Signs开源项目完整指南 【免费下载链接】mmVital-Signs mmVital-Signs project aims at vital signs detection and provide standard python API from Texas Instrument (TI) mmWave hardware, such as xWR14xx, xWR16x…...

机器遗忘:从合规需求到技术实现,ROEL-TID框架如何平衡效率与精度

1. 项目概述:当机器学习模型需要“忘记”时在过去的十年里,我亲眼见证了机器学习如何从一个学术概念,演变为驱动商业决策、优化用户体验乃至重塑行业格局的核心引擎。从电商平台的“猜你喜欢”,到金融系统的欺诈交易拦截&#xff…...

惠普OMEN游戏本性能控制终极指南:5分钟解锁风扇调速与功耗限制

惠普OMEN游戏本性能控制终极指南:5分钟解锁风扇调速与功耗限制 【免费下载链接】OmenSuperHub Control Omen laptop performance, fan speeds, and keyboard lighting, and unlock power limits. 项目地址: https://gitcode.com/gh_mirrors/om/OmenSuperHub …...