独立构件风格之C2风格

新增C2组件:移位运算

主要代码

public class Yiwei extends C2Component{
    public Yiwei(String host, int port, String user, String pwd) {
        super(host, port, user, pwd,"Yiwei");
    }

    @Override
    Msg getResult(String msg) {
        Msg m= JSON.parseObject(msg,Msg.class);
        if(m.getSymbol().equals("<<")){
            m.setResult(m.getX() << m.getY());
        }
        return m;
    }
}

调用

cal.AddWorkItem(new Msg("<<",1).ConvertToJson());

不同电脑之间的分布式功能调用:

两台主机组件和消息中间件配置:

主机IPADDYIWEISUBMULCalActivemq消息中间件
192.168.199.211
192.168.199.158

192.168.199.211开启activemq消息中间件。并且启用SUB、MUL组件:


192.168.199.158 开启ADD、YIWEI组件

192.168.199.158开启CAL,并添加计算任务:

两台软件内部配置组件IP:

将IP配置为消息中间件所在的主机IP,实现对消息队列的监听。

192.168.199.158 IP配置如下:

192.168.199.211 IP 配置如下:

调试过程

先开启各个组件,再运行Cal任务。
打印了一些调试信息如下:
192.168.199.158 控制台打印:


192.168.199.211 控制台打印:

过程描述

    C2风格是使用异步消息为主的连接件组织功能(构件)的一种模式。从上面我们可以大概捋出来过程。我认为主要就是各个组件(它们是分布式的,可以在不同的地方)都对消息队列进行监听,Cal添加任务,根据符号判断用来分发到各个不同的队列。然后各个组件监听到自己的队列有新的任务加进来,就调用getResult进行处理,然后再从"目标队列:queue://Cal-from:Yiwei-send:192.168.199.211-{"result":8,"symbol":"<<","x":4,"y":1}"这种打印信息可以了解到,Yiwei又返回信息给Cal告诉他我已经做完了。然后Cal进行下一个任务。
    总的来说,实现了在不同的地方(分布式)完成一个任务不同步骤的计算。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值