美文网首页大数据
Camel笔记:链式传递与扇出

Camel笔记:链式传递与扇出

作者: 阿乐_822e | 来源:发表于2021-05-14 16:00 被阅读0次

本文接上篇Camel笔记(从Mysql到本地文件与Kafka队列) - 简书 (jianshu.com)

完成了通过页面触发,将Mysql的数据写入本地文件和Kafka队列后,再了解一下链式传递与扇出(fan out,一对多输出)

  • 链式传递
    有两种写法,一种是 from(endpoint).to(endpoint:a, endpoint:b) 或者 from(endpoint).to(endpoint:a).to(endpoint:b),前一种形式容易让人迷惑,以为是原始端点同时发送到端点a,b,实际上是a发送到端点b,第二种形式,很明显还有一个好处是可以再在a端点中进行一些处理(即添加process)
    修改服务实体代码EmployeeServiceImpl中的kafka路由,将原来的 .to(toKafka) 改为.to(toKafka).to("file:data/outbox") 即可
    重启后再请求kafka,查看是不是队列与文件系统都收到了新的内容

  • 扇出
    一对多的写法是:from(endpoint).multicast().to(endpoint:a, endpoint:b)

//Kafka,Mysql--->Kafka&Filesystem
        from("direct:kafka").to("sql:select * from employee").process(new Processor() {
            public void process(Exchange xchg) throws Exception {
                ArrayList<Map<String, String>> dataList = (ArrayList<Map<String, String>>) xchg.getIn().getBody();
                List<Employee> employees = new ArrayList<Employee>();
                System.out.println(dataList);
                for (Map<String, String> data : dataList) {
                    Employee employee = new Employee();
                    employee.setEmpId(data.get("empId"));
                    employee.setEmpName(data.get("empName"));
                    employees.add(employee);
                }
                xchg.getIn().setBody(employees.toString());
            }
        }).multicast().to(toKafka,"file:data/outbox").process(new Processor() {
            public void process(Exchange exchange) throws Exception {
                System.out.println("it is :"+toKafka);
            }
        });

相关文章

  • Camel笔记:链式传递与扇出

    本文接上篇Camel笔记(从Mysql到本地文件与Kafka队列) - 简书 (jianshu.com)[http...

  • Camel笔记:Camel定时传送数据

    本文接上往篇:Camel笔记(从Mysql到本地文件与Kafka队列) - 简书 (jianshu.com)[ht...

  • spring boot 中使用 RabbitMQ 教程三 采用F

    我们使用Fanout(扇出)模式,传递一个消息到多个消费者中,这个模式我们都听过就是发布与订阅。它的意思就是,发布...

  • flume(2)

    1、扇出(fan out)指的是从一个source向多个channel,即向多个sink传递时间。 2、交付保证 ...

  • 扇出读VS扇出写

    扇出读、扇出写的说法是基于社交网络的海量用户、海量数据的应用特征。这些大量的数据往往分布在各个分片服务器上。扇出读...

  • Camel

    Camel消息模型主要由两个类 Message 系统间进行数据传送的实体。 header是k-v结构,包含sen...

  • CAMEL

    我喜欢上了一种动物一骆驼。黑不溜秋的大眼睛,,逆天的长睫毛,厚实的四个大蹄子,高高隆起的两个驼峰。 我着迷于它...

  • Apache Camel 文件组件

    1、概述该笔记主要用于学习Apache Camel的文件组件,后续会持续记录笔记。2、依赖引入 3、基本语法 UR...

  • 黑帮大佬的巴掌人生

    巴掌,一个接一个,啪啪扇个不停。黑帮生活的日常,不是你扇我,就是我扇你。巴掌扇出勇气,巴掌扇出未来。巴掌扇出毁灭。...

  • BGA扇出

网友评论

    本文标题:Camel笔记:链式传递与扇出

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