基于JAVA的ICE服务端实现

前言

ICE版本使用3.6.4:Ice-3.6.4.msi
链接:https://pan.baidu.com/s/1QwvLDcVPRaM52p1jU0lhrg
提取码:8iso
开发环境使用IDEA: ideaIU-2020.2.3.exe
链接:https://pan.baidu.com/s/1XuA_A-9BeU5hOrDREJvzTA
提取码:ybyq

安装ICE

  1. 首先安装Ice,选择安装路径D:\Program File(x86)
  2. 在安装路径下,生成如下文件:
    在这里插入图片描述

使用ICE

  1. 创建.ice文件。首先在记事本创建.ice结尾的文件,内部以ICE格式书写接口函数。

  2. 保存路径。将编写好的“.ice”文件,拷贝到D:\Program File(x86)\ZeroC\Ice-3.6.4\bin目录下。

  3. 打开DOS。找到slice2java.exe 程序,生成骨架文件。具体命令如下:

    进入目录:cd D:\Program File(x86)\ZeroC\Ice-3.6.4\bin

    执行代码:编译ICE
    在这里插入图片描述
    生成文件:红色部分为生成文件
    在这里插入图片描述

  4. 将生成的文件夹和依赖库,添加到项目在这里插入图片描述

  5. 继承.ice文件的interface接口并重写其方法
    在这里插入图片描述
    按 Alt+Shift+Enter,补齐即可

服务端实现

package com.company;

import com.company.service.ProcessFun;
import com.company.service.WorkHandler;
import com.company.util.ConfigUtil;

import java.util.Properties;

public class Agent{
    public static void main(String[] args){
        System.out.println("软件版本:V1.00");
        Properties props=System.getProperties(); //系统属性
        System.out.println("Java的运行环境版本:"+props.getProperty("java.version"));

      
        int status = 0;
        Ice.Communicator ic = null;
        Properties p = ConfigUtil.properties;    //创建读配置文件

        try {
         
            ic = Ice.Util.initialize(args);

            String iceIP=p.getProperty("iceIP");
            String icePort=p.getProperty("icePort");
            String var = "tcp -h " + iceIP + " -p " + icePort;

            String iceAdapterName=p.getProperty("iceAdapterName");;
            Ice.ObjectAdapter adapter = ic.createObjectAdapterWithEndpoints(iceAdapterName, var);
            //实例化一WorkHandler对象,为_ITaskSrvICEDisp接口创建一个服务对象
            Ice.Object object = new WorkHandler();
            //将服务单元增加到适配器中,并给服务对象指定名称为TaskHandler,该名称用于唯一确定一个服务单元
            String remoteServiceName=p.getProperty("remoteServiceName");

            adapter.add(object, Ice.Util.stringToIdentity(remoteServiceName));
          

            adapter.activate();
            //打印本软件的服务信息
            System.out.println("软件服务:"+remoteServiceName + " " + var);
            //让服务在退出之前,一直持续对请求的监听
            ic.waitForShutdown();
        } catch (Ice.LocalException e) {
            e.printStackTrace();
            status = 1;
        } catch (Exception e) {
            e.printStackTrace();
            System.err.println(e.getMessage());
            status = 1;
        }
        if (ic != null) {
            try {
                ic.destroy();
            } catch (Exception e) {
                System.err.println(e.getMessage());
                status = 1;
            }
        }
        System.exit(status);
    }

}
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Iceberg CDC(Change Data Capture)是一种常见的数据同步方式,用于将数据库中的变更同步到其他系统或数据仓库中。Iceberg CDC 通常包括以下步骤: 1. 捕获变更:通过轮询数据库的事务日志或使用数据库提供的 CDC 功能捕获变更。对于每个变更,记录变更的类型、时间戳、表名、主键值和变更的数据。 2. 转换数据:将捕获的变更数据转换为目标系统可接受的格式。通常需要进行一些数据转换和规范化,确保数据的一致性和完整性。 3. 传输数据:将转换后的数据传输到目标系统。可以通过消息队列、HTTP 接口等方式传输数据。 4. 应用变更:在目标系统中应用变更。通常需要维护一个增量的数据集,以便每次同步只应用新增、修改和删除的变更,避免重复数据和性能问题。 Iceberg CDC 的实现可以基于开源的 CDC 工具如 Debezium、Maxwell 等,也可以自行开发。通常需要考虑以下问题: 1. 数据库日志格式:不同的数据库使用不同的日志格式,需要了解数据库日志的格式和捕获方式。 2. 数据转换:需要将捕获的变更数据转换为目标系统可接受的格式。可以使用开源的 ETL 工具如 Apache NiFi、Apache Kafka Connect 等,也可以自行开发。 3. 数据传输:需要选择适合的数据传输方式,如消息队列、HTTP 接口等。 4. 数据一致性和完整性:需要确保数据的一致性和完整性,尤其是在多个目标系统中同步数据时。可以使用事务、幂等性等技术来保证数据的一致性和完整性。 总之,Iceberg CDC 是一种非常常见的数据同步方式,可以帮助组织实现数据的实时同步和集成。但是,实现 Iceberg CDC 需要考虑多种因素,包括数据库日志格式、数据转换、数据传输、数据一致性和完整性等,需要仔细设计和实现

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值