游戏电视苹果数码历史美丽
投稿投诉
美丽时装
彩妆资讯
历史明星
乐活安卓
数码常识
驾车健康
苹果问答
网络发型
电视车载
室内电影
游戏科学
音乐整形

下一代MQ中间件,不来了解下?

  最近项目中准备使用消息中间件ApachePulsar,借着机会先做个简单了解吧。ApachePulsar
  ApachePulsar是Apache软件基金会顶级项目,是下一代云原生分布式消息流平台。
  Pulsar作为下一代云原生分布式消息流平台,支持多租户、持久化存储、多机房跨区域数据复制,具有强一致性、高吞吐以及低延时的高可扩展流数据存储特性,内置诸多其他系统商业版本才有的特性,是云原生时代解决实时消息流数据传输、存储和计算的最佳解决方案。
  Pulsar简介系统架构
  功能特色租户和命名空间(namespace)是Pulsar支持多租户的两个核心概念。在租户级别,Pulsar为特定的租户预留合适的存储空间、应用授权与认证机制。在命名空间级别,Pulsar有一系列的配置策略(policy),包括存储配额、流控、消息过期策略和命名空间之间的隔离策略。Pulsar做了队列模型和流模型的统一,在Topic级别只需保存一份数据,同一份数据可多次消费。以流式、队列等方式计算不同的订阅模型大大提升了灵活度。Pulsar使用计算与存储分离的云原生架构,数据从Broker搬离,存在共享存储内部。上层是无状态Broker,复制消息分发和服务;下层是持久化的存储层Bookie集群。Pulsar存储是分片的,这种构架可以避免扩容时受限制,实现数据的独立扩展和快速恢复。Pulsar原生支持跨地域复制,因此Pulsar可以跨不同地理位置的数据中心复制数据。当数据中心中断或网络分区时,在多个数据中心存有消息副本尤为重要,提高可用性。PulsarFunctions是基于Pulsar的轻量级流处理方式。PulsarFunctions直接部署在broker节点上(或作为Kubernetes集群中的容器)。通过PulsarFunctions,Pulsar可以直接解决许多流处理任务,简化操作。支持客户端Java客户端C客户端。NetC客户端Go客户端NodeJS客户端Ruby客户端Pulsar安装与部署
  目前Pulsar不支持Window,下面通过Docker进行安装,可以参考官网https:pulsar。apache。orgdocsnextgettingstarteddocker
  同时可以安装PulsarManager,具体操作可以参考官方文档https:pulsar。apache。orgdocsnextadministrationpulsarmanager
  其中PulsarManager是一个网页式可视化管理与监测工具,支持多环境下的动态配置。可用于管理和监测租户、命名空间、topic、订阅、broker、集群等。window环境使用docker推荐使用DockerDesktop,和linux一样可以通过docker命令管理镜像、部署容器等操作。打开并启动DockerDesktop后,在终端执行命令执行
  dockersearchpulsar
  可以查询到pulsar相关的镜像
  镜像下载这里我们选择分别下载红框的两个镜像,执行命令
  dockerpullapachepulsarpulsardockerpullapachepulsarpulsarmanager启动启动Pulsardockerrunitp6650:6650p8080:8080mountsourcepulsardata,targetpulsardatamountsourcepulsarconf,targetpulsarconfapachepulsarpulsarbinpulsarstandalone启动PulsarManagerdockerrunnamepulsarmanagerditp9527:9527p7750:7750eSPRINGCONFIGURATIONFILEpulsarmanagerpulsarmanagerapplication。propertiesapachepulsarpulsarmanager
  添加用户:forftokens1Ain(curlhttp:localhost:7750pulsarmanagercsrftoken)dosetCSRFTOKENAcurlXPUTXXSRFTOKEN:CSRFTOKENHCookie:XSRFTOKENCSRFTOKEN;HContentType:applicationjsond{name:admin,password:123456,description:superuseradmin,email:admintest。com}http:localhost:7750pulsarmanageruserssuperuser
  访问:http:localhost:9527用户名密码:admin123456
  配置environments:这里需要保证PulsarManager应用服务能够访问到Pulsar应用,由于都是通过Docker部署,配置ServiceURL需要使用网络IP,不要用localhost。
  管理界面:
  Pulsar与SpringBoot集成springbootversion:2。3。7。RELEASEpulsarclient:2。10。2通过Properties简单定义一些Broker相关的属性DataConfigurationProperties(prefixpulsar)publicclassPulsarProperties{privateStringcluster;privateStringnamespace;privateStringserverUrl;privateStringtoken;}通过配置定义了一些常用的组件,比如生产、消费工厂ConfigurationEnableConfigurationProperties({PulsarProperties。class})publicclassPulsarBootstrapConfiguration{privatefinalPulsarPropertiesproperties;publicPulsarBootstrapConfiguration(PulsarPropertiesproperties){this。propertiesproperties;}Bean(destroyMethodclose)publicPulsarClientpulsarClient()throwsPulsarClientException{ClientBuilderclientBuilderPulsarClient。builder()。serviceUrl(properties。getServerUrl());returnclientBuilder。build();}BeanpublicPulsarProducerFactorypulsarProducerFactory()throwsPulsarClientException{returnnewPulsarProducerFactory(pulsarClient(),properties);}BeanpublicPulsarConsumerFactorypulsarConsumerFactory()throwsPulsarClientException{returnnewPulsarConsumerFactory(pulsarClient(),properties);}}启动服务,在服务启动后,通过实现SmartInitializingSingleton接口,完成容器基本启动(不包含Lazy的Bean)后,开始对消费者Consumer监听Slf4jSpringBootApplicationpublicclassPulsarApplicationimplementsSmartInitializingSingleton{AutowiredprivatePulsarConsumerFactoryconsumerFactory;publicstaticvoidmain(String〔〕args){SpringApplication。run(PulsarApplication。class,args);}OverridepublicvoidafterSingletonsInstantiated(){startConsumerListener();}privatevoidstartConsumerListener(){ConsumerStringconsumercreateConsumer();if(consumer!null){while(!Thread。currentThread()。isInterrupted()){CompletableFuturelt;?extendsMessagelt;?completableFutureconsumer。receiveAsync();Messagelt;?messagenull;try{messagecompletableFuture。get();}catch(InterruptedExceptione){Thread。currentThread()。interrupt();log。error(错误,e);}catch(ExecutionExceptione){log。error(错误,e);}if(message!null){try{log。info(接收消息:{},message。getValue());consumer。acknowledge(message);}catch(PulsarClientExceptione){consumer。negativeAcknowledge(message);thrownewRuntimeException(e);}}}}}privateConsumerStringcreateConsumer(){try{returnconsumerFactory。getConsumer(Constants。TOPICDEMO);}catch(PulsarClientExceptione){log。error(创建consumer出错:{},e。getMessage(),e);}returnnull;}}消息发送测试Slf4jRunWith(SpringRunner。class)SpringBootTestpublicclassPulsarBootTests{AutowiredprivatePulsarProducerFactoryproducerFactory;TestpublicvoidsendMessage()throwsPulsarClientException{ProducerproducerproducerFactory。getProducer(Constants。TOPICDEMO);producer。send(测试消息:newDate());producer。close();}}检查消息接收情况2023020512:05:14。043INFO23472〔ulsartimer61〕o。a。p。c。impl。ConsumerStatsRecorderImpl:〔TOPICDEMO〕〔subTOPICDEMO〕〔7c2b2〕Prefetchedmessages:0Consumethroughputreceived:0。02msgss0。00MbitsAcksentrate:0。02acksFailedmessages:0batchmessages:0Failedacks:02023020512:06:16。425INFO23472〔main〕com。sucl。pulsar。PulsarApplication:接收消息:测试消息:SunFeb0512:06:16CST2023结束语
  该篇主要通过官网对ApachePulsar做了简单的了解与尝试,同时基于SpringBoot,以简单的示例代码实现了消息的发送与接收,其中各个组件仅仅使用了默认的配置,在生产环境需要根据Pulsar的特性以及官方API使其具有扩展性与易用性。

预制菜逐渐走进千家万户,食材不新鲜等问题受吐槽迅速蹿红的预制我家从来不买外卖饭菜!那是现在年轻人们的专利!食材和卫生没有任何保障!全是加入大量的味精白糖色素等添加剂!预制菜,指的是已经加工好的半成品或成品菜,通过速冻及真空包装或者……97年的这个剑南春是真的吗?真的又怎样?假的又如何?找几个好朋友,把它喝了就得了!97年剑南春是真实存在的,而且价格还便宜。老酒收藏会增值,平时除了茅台以外,还在有剑南春,五粮液等名酒。产品名称:9……安阳特产有哪些?哈哈,我就是河南这片的,我想我有回答这个问题的资格了吧,看来已经有人回答了,那我就补充补充吧。每个地方的特产都很多,当然安阳也不例外,道口烧鸡,扁粉菜,烧灌肠,皮渣,粉浆饭,上……内线软锋线弱外线差,中国男篮路在何方?从2012年伦敦奥运会开始到现在整整十年,中国男篮遇到强队一直都在溃败,先不说世界级强队,在亚洲都颜面尽失。输台北、输日本、输韩国、输伊朗,甚至二队连超级鱼楠印度队都输过。最近……蒸馒头也有大学问,如何蒸出好吃的馒头?我是北方人,餐桌上必不可少的就是馒头,如果一顿不吃半个馒头就像没吃东西一样,肚子挺受罪的,这也就像南方人你不让他们吃米饭只吃菜一样的道理。小时候家住农村的我,时常听村上的媳妇们……胆子小,容易受惊吓,气虚?三味中药振奋心肾,补胆气气虚有很多种情况,比如肺脾气虚会乏力,肾气虚会尿频,而心胆气虚的人容易受到惊吓,胆子小,什么是心胆气虚呢?说一下具体表现大家就知道了。有这么一类人,比较敏感,有点稍微异常……入侵我国的牛蛙导致国内哪些物种的灭绝,为啥最后成了餐桌美食?这个问题有些本末倒置了,因为牛蛙被引入我国起初的目的就是为了吃(餐桌美食),之后才造成了入侵,这一点与小龙虾如出一辙。而且与小龙虾一样的,它们看似都是物种入侵失败的典型。但是事……提示蒸螃蟹,用冷水还是热水?区别很大!秋风起,蟹脚痒!菊花开,闻蟹来!每年的中秋至国庆期间,就是螃蟹最肥美的时节,这个时候的母蟹,蟹黄最多,肉质也最鲜嫩!很多朋友吃蟹,只是觉得螃蟹鲜美!其实,蟹,自古便有四味……。NET7和C11的7大自定义扩展方法介绍自从我开始了解扩展方法以来,我不断地发现新的可能性,让我的编码生活更轻松。扩展方法是SOLID完美应用中的O开闭原则。一个类应该尽可能简单,并且只在其他组件真正需要时……高度重视统筹形成共促高质量发展合力央视网消息:中央经济工作会议于12月15日至16日在北京举行。这次会议总结了2022年经济工作,分析了当前经济形势,部署了2023年经济工作。其中释放了哪些值得期待的积极信号,……原来熬小米粥这么简单,记住3加1不加,熬出厚厚米油,香浓又黏各位读者朋友们大家好,感谢阅读我分享的美食文章,经验和大家一起共享,今天我要和大家分享的内容是:原来熬小米粥这么简单,记住3加1不加,熬出厚厚米油,香浓又黏稠!小米粥被称……就压着打!这是少帅谢晖给中国足球的一记耳光中甲班底的大连人又一次在亚冠级别的长春亚泰面前秀了一把肌肉,崇尚压着打的谢晖也再一次的告诉了所有人,中国足球的前路该怎么走!如今的大连人,这是临时拼凑临时背上行囊远征南下……
中国斯诺克再创佳绩!颜丙涛成争冠大热门,丁俊晖将上演复仇之战20222023英锦赛资格赛的对决已经全部结束,中国斯诺克军团发挥还算可圈可点,丁俊晖、吕昊天、徐思、周跃龙、肖国栋四人突出重围拿到了正赛阶段的入场券。加上以上五位本次英……夏至盛暑将至,快来清凉一夏六月过半,夏至已至天时渐短,光阴渐长早时沐浴晨光午时倦听蝉鸣夜里轻扑流萤万般美好,由此而生火热是盛夏时节的主旋律明晃晃的阳光穿过新织的……叠溪海子从四川都江堰去九寨沟的人,都会在途中经过一个叫叠溪海子的地方,在这里,游客们会下车与牦牛一块合影,也会站在崖畔望着岷江大峡谷中蔚蓝色的湖水遐思。随团导游说,眼前这个美丽的湖泊,……这13项健康指标,8种高发疾病,预防和管理方法,每个人都要知这13项健康指标,每个人都应该知道!身体是否健康,一些常见指标的值是最初步且直接的判断。指标异常也可能是某些特定疾病的信号。1、血压根据中华医学会心血管……今年火了一种穿法叫大衣西装,时尚保暖又高级,太有范了秋冬想要兼顾时尚与温暖,就需要在穿搭上多花心思,其中,叠穿不失为一个好方法,可以将衣柜里一切花里胡哨不好搭的衣服配在一起,使得穿搭更加高级大气。毛衣衬衫、马甲毛衣这类叠穿想必大……上热下寒体质如何调理?5招教你打通中焦,引火下行!上热下寒是一种常见的体质,一般是指上半身火气大,下半身较寒。上热表现:口干口臭、易出现口腔溃疡、咽痛、牙龈上火、烦躁焦虑、失眠多梦、易起痘、入睡困难。下寒表现:小腹……干细胞培育出完全合成小鼠胚胎据科技日报,胚胎发育过程中发生的事情是大自然最保守的秘密之一,藏在母亲的身体深处。现在,科学家首次在不使用精子或卵子的情况下创造了合成小鼠胚胎,使其成功地在子宫外生长。这……歌吹远,梦魂惊,醉倒不知诗酒换浮名歌吹远,梦魂惊,醉倒不知诗酒换浮名。烟雨楼,曼舞几时休,今宵有酒无人共,醉倒花间不知愁。醉倒不知年,诗酒逍遥自在天,一曲狂歌梦里会婵娟。离愁浩荡杯中酒,红尘几……可算找到宝宝肠胀气的原因了,难怪很多妈妈抱怨肠胀气反反复复文余明仁昨天又有很多妈妈说到宝宝肠胀气,其中一位妈妈说:宝宝的肠胀气总是反反复复的,到底是什么原因呢?其实说到宝宝肠胀气,在03个月这个阶段是一个高发期,宝宝在这个……微星B760MMORTARMAXWIFI装机大口径加持的迫击前言:年初的时候,我对微星B760MMORTARMAXWIFI进行了一个开箱展示,发现该主板延续了之前上一代产品的精髓可对12代非K处理器进行超频。于是,今天我开始对着这……冲突内讧!勇士76人打散了热门夺冠强队,库里恩比德哈登都没出NBA联盟现在东西部排名局势,太阳队战绩一骑绝尘,他们要突破60胜了,而西部第二灰熊队才50胜23负,勇士队西部第三48胜25负,爵士队西部第四45胜28负,独行侠也是45胜2……27寸2k显示器评测怎么样?高性价比的27寸2k显示器推荐哪27寸2k显示器评测怎么样?27寸2k显示器推荐哪款?高性价比的27寸2k显示器推荐哪款?还有多少人,家里还用起来旧款1080P乃至768P分辨率的TN显示器,但是也正常……
友情链接:易事利快生活快传网聚热点七猫云快好知快百科中准网快好找文好找中准网快软网