zoukankan      html  css  js  c++  java
  • 独立构件风格之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进行下一个任务。
        总的来说,实现了在不同的地方(分布式)完成一个任务不同步骤的计算。

  • 相关阅读:
    sublime text 4 vim 插件配置
    ssh-keygen 的使用
    distribution transaction solution
    bilibili 大数据 视频下载 you-get
    Deepin 20.2.1 安装 MS SQL 2019 容器版本
    【转】使用Linux下Docker部署MSSQL并加载主机目录下的数据库
    【转】You Can Now Use OneDrive in Linux Natively Thanks to Insync
    dotnet 诊断工具安装命令
    Linux 使用 xrandr 设置屏幕分辨率
    【转】CentOS 7.9 2009 ISO 官方原版镜像下载
  • 原文地址:https://www.cnblogs.com/code-fun/p/14783915.html
Copyright © 2011-2022 走看看