前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Ioc/Aop框架如何集成FolkMQ

Ioc/Aop框架如何集成FolkMQ

作者头像
用户10136162
发布2023-12-15 08:35:48
1520
发布2023-12-15 08:35:48
举报
文章被收录于专栏:Eliauk的小窝Eliauk的小窝

1、部署FolkMQ

这里我是使用的docker-compose部署的,如果是本地部署,请自行修改docker-compose.yml文件 现在我使用的版本是1.0.20

代码语言:javascript
复制
    folkmq-server:
        image: noearorg/folkmq-server:1.0.20
        container_name: folkmq-server
        ports:
            - 8602:8602
            - 18602:18602
        volumes:
            - ./data/broker:/data
            - ./logs/broker:/logs
        environment:
            - folkmq.admin=zangzang  #管理后台密码
            - folkmq.access.folk=sk1 #消息访问账号,可以配置多个
#      - folkmq.access.ak2=sk2
            - TZ=Asia/Shanghai  

然后执行

代码语言:javascript
复制
docker-compose up -d folkmq-server

2、使用FolkMQ

1、引入依赖

代码语言:javascript
复制
<dependencies>
    <dependency>
        <groupId>org.noear</groupId>
        <artifactId>folkmq-transport-netty</artifactId>
        <version>1.0.20</version>
    </dependency>
</dependencies>

2、application.yml中配置

代码语言:javascript
复制

folkmq:
  server: 'folkmq://127.0.0.1:18602?ak=folk&sk=sk1'
  consumerGroup: 'Cizai'

3、如何订阅配置

代码语言:javascript
复制
/**
 * @author Eliauk
 * @since 2023/12/6 15:42
 */
@Configuration
@RequiredArgsConstructor
public class FolkMQConfig {

    @Bean
    public MqClient initClient(@Value("${folkmq.server}") String serverUrl,
                               @Value("${folkmq.consumerGroup}") String consumerGroup,
                               @Autowired Map<String, MqConsumeHandler> subscriptionMap) throws IOException {
        // 构建客户端
        MqClient client = FolkMQ.createClient(serverUrl).connect();

        // 订阅
        for (Map.Entry<String, MqConsumeHandler> subscription : subscriptionMap.entrySet()) {
            client.subscribe(subscription.getKey(), consumerGroup, subscription.getValue());
        }

        return client;
    }

}

4、注册消费者

代码语言:javascript
复制

/**
 * 
 *
 * @author Eliauk
 * @since 2023/12/14 10:32
 */
@Component(TestConsumer.TOPIC)
public class EventTestConsume implements MqConsumeHandler, TestConsumer {

    private static Logger logger = LoggerFactory.getLogger(EventTestConsume.class);


    @Override
    public void consume(MqMessageReceived message) {

        logger.info("EventTestConsume.consume: " + message);

    }
}

5、生产者发送消息

代码语言:javascript
复制
private final MqClient mqClient;


/**
 * test
 *
 * @param message 消息
 * @return 发送结果
 * @throws Exception 异常
 */
@GetMapping("/api/folkMQ/test")
public Result<String> test(@RequestParam String message) throws Exception {
    mqClient.publishAsync(TestConsumer.TOPIC, new MqMessage(message));
    return Results.success("成功发送消息");
}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2023-12-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、部署FolkMQ
  • 2、使用FolkMQ
    • 1、引入依赖
      • 2、application.yml中配置
        • 3、如何订阅配置
          • 4、注册消费者
            • 5、生产者发送消息
            相关产品与服务
            容器服务
            腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档