自研 Pulsar Starter:Winfun-Pulsar-Spring-Boot-Starter
里程碑 版本 功能点 作者 完成 1.0.0 支持PulsarTemplate发送消息&支持自定义注解实例化Consumer监听消息 howinfun 1.1.0 支持动态开启/关闭Consumer消费线程池、支持自定义配置Consuemr消费线程池参数 howinfun 1.2.0 支持Spring容器停止时,释放Pulsar所有相关资源 howinfun TODO 1.3.0 支持多Pulsar数据源 howinfun TODO
一、背景
Pulsar 作为新生代云原生消息队列,越来越受到开发者的热爱;而我们现在基本上的项目都是基于 SpringBoot 上开发的,但是我们可以发现,至今都没有比较大众和成熟的关于 Pulsar 的 Starter,所以我们需要自己整一个,从而避免常规使用 Pulsar API 时产生大量的重复代码。
二、设计思路
由于是第一版的设计,所以我们是从简单开始,不会一开始就设计得很复杂,尽量保留 P自研ulsar API 原生的功能。
2.1、PulsarClient
我们都知道,不管是 Producer 还是 Consumer,都是由 PulsarClient 创建的。
当然了,PulsarClient 可以根据业务需要自定义很多参数,但是第一版的设计只会支持比较常用的参数。
我们这个组件支持下面功能点:
支持 PulsarClient 参数配置外部化,参数可配置在 applicatin.properties 中。 支持 applicatin.properties 提供配置提示信息。 读取外部配置文件,根据参数实例化 PulsarClient,并注入到 IOC 容器中。 2.2、Producer
Producer是发送消息的组件。
这里我们提供一个模版类,可以根据需求创建对应的 Producer 实例。 支持将 TopicProducer 关系缓存起来,避免重复创建 Producer 实例。 支持同步/异步发送消息。 2.3、Consumer
Consumer是消费消 P息的组件。
这里我们提供一个抽象类,开发者只需要集成此实现类并实现 doReceive 方法即可,即消费消息的逻辑方法。 接着还提供一个自定义注解,自定义注解支持自定义 Consmuer 配置,例如Topic、Tenant、Namespace等。 实现类加入上述自定义注解后,组件将会自动识别并且生成对应的 Consumer 实例。 支持同步/线程池异步消费。 三、使用例子 3.1、引入依赖 io.github.howinfun winfun-pulsar-spring-boot-starter 1.1.0 3.2、加入配置 pulsar.service-url=pulsar://127.0.0.1:6650 pulsar.tenulant=winfun pulsar.namespace=study pulsar.operation-timeout=30 pulsar.io-threads=10 pulsar.listener-threads=10 3.3、发送消息 /** * 发送消息 * @author: winfun **/ @RestController @RequestMapping("msg") public class MessageController { @Autowired prsaivate PulsarTemplate pulsarTemplate; @Autowired private PulsarProperties pulsarProperties; /*** * 往指定topic发送消息 * @author winfun * @param topic topic &r nbsp; * @param msg msg * @return {@link String } **/ @GetMapping("/{topic}/{msg}") public String send(@PathVariable("topic") String topic,@PathVariable("msg") String msg) throStws Exception { this.pulsarTemplate.createBuilder().persistent(Boolean.TRUE) .tenant(this.pulsarProperties.getTenant()) .namespace(this.pulsararProperties.getNamespace()) .topic(topic) .send(msg); return "success"; } } 3.4、消费消息 /** * @auttehor: winfun * @date: 2021/8/20 8:13 下午 **/ @Slf4j @PulsarListener(topics = {"test-topic2"}, threadPool = @ThreadPool( r: coreThreads = 2,  Wi;maxCoreThreads = 3, threadPoolName = "test-thread-pool")) public class ConsumerListener extends BaseMessageListnfener { /** * 消费消息 * @param consumer 消费者 * @param msg 消息 */ @Override protected void doReceived(Consumer consumer,un Message msg) { log.info("成功消费消息:{}",msg.getValue()); try { consumer.acknowledge(msg); } catch (PulsarClientException e)-P { e.printStackTrace(); } } /*** * 是否开启异步消费 * @return {@link Boolean }  ul;**/ @Override public Boolean enableAsync() { return Boolean.TRUE; } } 四、源码
源码就不放在这里分析了,大家可到Github上看看,如果有什么代码上面的建议或意见,欢迎大家提MR。
(责任编辑:安装指导)
-
消息称软银批准对 OpenAI 追加 225 亿美元投资,助力未来上市
据报道,软银集团已正式批准向 OpenAI 追加225亿美元的投资,旨在完成其对这家人工智能公司的总投资计划,金额高达300亿美元。这一决策得到了软银董事会的支持,前提是 OpenAI 需完成企业重组...[详细]
-
云梦级6月25日云梦级消息,据媒体报道,今日,欧派家居发布全员信,称市场大幅萎缩,价格战和行业内卷导致公司营业额与利润率双双下跌,公司已经到了生死存亡的危机关头。并且集团机构臃肿,为了穿越周期,公司决...[详细]
-
标签: Hark Abidur Chowdhury Figure AI iPhone Air
云梦级1月7日云梦级消息,据彭博社报道,参与 iPhone Air 设计的前苹果设计师 Abidur Chowdhury 已加盟 AI 初创公司 Hark。 Hark 创始人兼首席执行官 Brett...[详细]
-
查看最新行情 新浪科技讯 7月29日下午消息,Facebook盘前大跌超3%。截至发稿,Facebook盘前跌3.56%。 Facebook今天发布了截至6月30日的2021财年第二季度未经审计财报。...[详细]
-
云梦级4月4日云梦级消息,据上海交大官方公众号透露,4月4日,上海交通大学徐汇校区总办公厅,米哈游联合创始人、总裁、董事长、上海交通大学2005级信息工程专业本科、2009级通信与信息系统专业硕士校友...[详细]
-
法院正式判决,小米移出军事清单:正式撤销了对小米公司的全部限制
小米终于在2021年5月26日凌晨等到了美国法院的最终判决(final order),5月26日小米公司正式发布公告,小米被移出了制裁清单,至此终于尘埃落定。 WechatIMG1523 自 愿 性...[详细]
-
撰文 | 雁 秋 编辑 | 李信马 题图 | IC Photo 从3月开始,国产手机圈迎来一波近五年来规模最大的集体调价,不是那种几十块钱的“微调”,而是实打实百千元的“猛涨”。 而且这一轮涨价将长期...[详细]
-
4月21日消息,国际研究机构Gartner发布2020年全球云计算IaaS市场追踪数据,阿里云排名全球第三、亚太第一,市场份额达9.5%,超过谷歌的6.1%。 2020年,全球云计算市场保持高速增长,...[详细]
-
多任务实现SOTA,UBC谷歌等提出3D点云的无监督胶囊网络
这是一种为 3D 点云提出的无监督胶囊架构,并且在 3D 点云重构、配准和无监督分类方面优于 SOTA 方法。 理解对象是计算机视觉的核心问题之一。传统方法而言,理解对象任务可以依赖于大型带注释的数据...[详细]
-
近日,Meta 的人工智能研究团队推出了一款名为代码世界模型(Code World Model,简称 CWM)的大型语言模型。 这一新模型的推出,标志着代码生成技术的一个重大进步,它不仅学习代码的外观...[详细]
- https://www.military-history.org/?s=谷歌霸屏推广业务【tg:seogoogle987】,RYK
- https://www.xvideos.com/tags/谷歌霸屏推广业务【tg:seogoogle987】,Y3v
- https://www.openspaceinstitute.org/search?q=谷歌霸屏推广业务【tg:seogoogle987】,4v0
- https://www.ncetm.org.uk/search?action=CHECK&q=谷歌霸屏推广业务【tg:seogoogle987】,cuL
- https://www.teamlab.art/?submit=谷歌霸屏推广业务【tg:seogoogle987】,YIu
- https://www.shacknews.com/editorial-search?q=谷歌霸屏推广业务【tg:seogoogle987】,DCr
- https://www.seagrant.wisc.edu/?page=63&s=谷歌霸屏推广业务【tg:seogoogle987】,7SS
- https://www.kubb-tool.bfs.admin.ch/en/search?action=CHECK&q=谷歌霸屏推广业务【tg:seogoogle987】,zcM
- https://www.sensorshop24.de/catalogsearch/result/index/?type=132&q=谷歌霸屏推广业务【tg:seogoogle987】,EJx
- https://www.zisha.com/shop/list.shtml?wap_keyword=谷歌霸屏推广业务【tg:seogoogle987】,4Me

标签: 3DMark 红魔11Pro 红魔11Pro+ 跑分作弊
亚马逊测试家具安装服务:对百思买和家得宝构成威胁
AI视频落地垂直领域!Runway开放模型微调权限,聚焦机器人与建筑业
Hive千亿级数据倾斜解决方案
标签: 瑞尔竞达 IPO 耐火材料 北交所
