• 独立构件风格之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());

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

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

    主机IP ADD YIWEI SUB MUL Cal Activemq消息中间件
    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进行下一个任务。
        总的来说,实现了在不同的地方(分布式)完成一个任务不同步骤的计算。

  • 相关阅读:
    一步一步理解XMLDOM(一)
    按轨迹周期运动
    Python中’__main__’模块的作用
    多进程IPC与Python支持
    Eclipse启动多个Android模拟器
    解决Android平台移植ffmpeg的一揽子问题
    开源项目 GitHub地址
    使用viewpager嵌套实现上下左右滑动切换图片(IOS双向滚动翻页效果相同)
    Android中ScrollView消除阴影的办法
    如果项目为android library怎么运行
  • 原文地址:https://www.cnblogs.com/code-fun/p/14783915.html
Copyright © 2020-2023  润新知