1 Star 0 Fork 32

xiaoyiXM / shine-mq

forked from 7le / shine-mq 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
README.md 4.07 KB
一键复制 编辑 原始数据 按行查看 历史
7le 提交于 2019-08-02 09:45 . 更新 README.md

shine-mq

Gitter Maven Central Latest release

:octocat: github

shine-mq

有任何疑问可以添加issues或者通过邮件询问我,我会第一时间回复大家~

🐣 Features

  • 无缝集成 spring-boot-starter
  • 封装mq的操作,方便使用
  • 实现基于可靠消息服务的分布式事务(采用AOP思想与Spring无缝集成,仅通过注解就可使用
  • 可靠消息默认存储方式:redis (可自行实现)
  • 目前消息中间件支持 : rabbitmq

🐳 Maven

<dependency>
    <groupId>top.arkstack</groupId>
    <artifactId>shine-mq</artifactId>
    <version>2.0.5</version>
</dependency>

🎀 Distributed transaction

shine-mq

🎐 博客

分布式事务:基于可靠消息服务

分布式事务:消息可靠发送

🐹 Demo

Demo戳 shine-mq-demo

🌈 Configuration

分布式事务的配置,具体可配置的参数如下:

    /**
     * 是否初始化 开启分布式事务 缺省为false
     */
    private boolean transaction = false;

    /**
     * 提交ack 失败最大重试次数
     */
     
    private Integer commitMaxRetries = 3;

    /**
     * 接收消息 ack 失败最大尝试次数
     */
    private Integer receiveMaxRetries = 3;

    /**
     * 默认提供redis中间件来实现消息提交到mq之前的持久化
     *
     * 也可以自己实现 {@link top.arkstack.shine.mq.coordinator.Coordinator}
     * 或者不想用redis,可以设置为false,就不会有redis的依赖
     */
    private boolean redisPersistence = true;
    
    /**
     * Prepare和Ready状态消息超时时间 默认为3分钟
     * 单位为秒
     */
    private long timeOut = 3 * 60;

    /**
     * returnCallback的状态过期时间 默认为1天
     * 单位为秒
     */
    private long returnCallbackTTL = 24 * 60 * 60;

封装mq的操作,具体可配置的参数如下:

    /**
     * 是否初始化消息监听者, 若服务只是Producer则关闭
     */
    private boolean listenerEnable = false;
    
    /**
     * {@link org.springframework.amqp.core.AcknowledgeMode}
     * <p>
     * 0 AUTO
     * 1 MANUAL
     * 2 NONE
     */
    private int acknowledgeMode = 1;

    /**
     * 每个消费者可能未完成的未确认消息的数量。
     */
    private Integer prefetchCount = null;

    /**
     * 为每个已配置队列创建的消费者数
     */
    private Integer consumersPerQueue = null;

    /**
     * 是否持久化,指是否保存到erlang自带得数据库mnesia中,即重启服务是否消失
     */
    private boolean durable = true;

    /**
     * 是否排外,指当前定义的队列是connection中的channel共享的,其他connection连接访问不到
     */
    private boolean exclusive = false;

    /**
     * 是否自动删除,指当connection.close时队列删除
     */
    private boolean autoDelete = false;

    /**
     * 是否初始化消息监听者, 若服务只是Producer则关闭
     */
    private boolean listenerEnable = false;

    /**
     * 通道缓存
     */
    private Integer channelCacheSize = null;

:octocat: End

如果对你有帮助,那就帮忙点个星星把 ^.^

Java
1
https://gitee.com/xiaoyiXM/shine-mq.git
git@gitee.com:xiaoyiXM/shine-mq.git
xiaoyiXM
shine-mq
shine-mq
master

搜索帮助