美文网首页
sentinel 作用于消息中间键

sentinel 作用于消息中间键

作者: 云狗狗狗狗狗 | 来源:发表于2019-10-11 13:08 被阅读0次

    中间键安装

    • 中间键选择的是rabbitmq
    • macos 直接brew install rabbitmq 既可以

    直接上代码

    生产者

    一次性发出30个消息

        public void send() {
            for (int i=0; i < 30; i++){
                String context = "hello--- " +i;
                System.out.println("Sender : " + context);
                this.rabbitTemplate.convertAndSend("hello", context);
            }
    

    消费者

    单线程消费配置

        @Bean("customContainerFactory")
        public SimpleRabbitListenerContainerFactory containerFactory(SimpleRabbitListenerContainerFactoryConfigurer configurer, ConnectionFactory connectionFactory) {
            SimpleRabbitListenerContainerFactory factory = new SimpleRabbitListenerContainerFactory();
            factory.setConcurrentConsumers(1);  //设置线程数
            factory.setMaxConcurrentConsumers(20); //最大线程数
            configurer.configure(factory, connectionFactory);
            return factory;
        }
    

    sentinel控制流量consume

     @RabbitHandler
        public void process(String hello) {
            Entry entry = null;
            // 1.5.0 版本开始可以直接利用 try-with-resources 特性
            try {
                entry = SphU.entry("hello");
                System.out.println("Receiver  : threadId-" + Thread.currentThread().getId() + "---" + hello);
            } catch (BlockException ex) {
                // 处理被流控的逻辑
                System.out.println(hello + "---blocked---threadId-" + Thread.currentThread().getId());
            } finally {
                if (entry != null) {
                    entry.exit();
                }
            }
        }
    

    日志输出

    
    Sender : hello--- 0
    Sender : hello--- 1
    Sender : hello--- 2
    Sender : hello--- 3
    Sender : hello--- 4
    Sender : hello--- 5
    Sender : hello--- 6
    Sender : hello--- 7
    Sender : hello--- 8
    Sender : hello--- 9
    Sender : hello--- 10
    Sender : hello--- 11
    Sender : hello--- 12
    Sender : hello--- 13
    Sender : hello--- 14
    Sender : hello--- 15
    Sender : hello--- 16
    Sender : hello--- 17
    Sender : hello--- 18
    Sender : hello--- 19
    Sender : hello--- 20
    Sender : hello--- 21
    Sender : hello--- 22
    Sender : hello--- 23
    Sender : hello--- 24
    Sender : hello--- 25
    Sender : hello--- 26
    Sender : hello--- 27
    Sender : hello--- 28
    Sender : hello--- 29
    Receiver  : threadId-19---hello--- 0
    hello--- 1---blocked---threadId-19
    hello--- 2---blocked---threadId-19
    hello--- 3---blocked---threadId-19
    hello--- 4---blocked---threadId-19
    hello--- 5---blocked---threadId-19
    hello--- 6---blocked---threadId-19
    hello--- 7---blocked---threadId-19
    hello--- 8---blocked---threadId-19
    hello--- 9---blocked---threadId-19
    hello--- 10---blocked---threadId-19
    hello--- 11---blocked---threadId-19
    hello--- 12---blocked---threadId-19
    hello--- 13---blocked---threadId-19
    hello--- 14---blocked---threadId-19
    hello--- 15---blocked---threadId-19
    hello--- 16---blocked---threadId-19
    hello--- 17---blocked---threadId-19
    hello--- 18---blocked---threadId-19
    hello--- 19---blocked---threadId-19
    hello--- 20---blocked---threadId-19
    hello--- 21---blocked---threadId-19
    hello--- 22---blocked---threadId-19
    hello--- 23---blocked---threadId-19
    hello--- 24---blocked---threadId-19
    hello--- 25---blocked---threadId-19
    hello--- 26---blocked---threadId-19
    hello--- 27---blocked---threadId-19
    hello--- 28---blocked---threadId-19
    hello--- 29---blocked---threadId-19
    

    可以看到明显收到了限制

    集群消费限制 todo

    相关文章

      网友评论

          本文标题:sentinel 作用于消息中间键

          本文链接:https://www.haomeiwen.com/subject/fsetmctx.html