金蝶国产化中间件和人大金仓数据库

news2024/9/23 5:29:18

金蝶Apusic分布式消息队列

不需要配置用户名密码

  rabbitmq:
    enable: true
    host: 192.168.1.233
    port: 5672
    <!-- Spring Boot RabbitMQ 依赖 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-amqp</artifactId>
            <version>2.1.18.RELEASE</version>
        </dependency>

3 代码配置,“vhost”虚拟机名称需要登录MQ界面新建

通过在 ADMQ 代理上引入 AMQP 协议处理程序,为 ADMQ 带来了原生的 AMQP 协议支持。

 @Bean
    public ConnectionFactory connectionFactory(){
        CachingConnectionFactory connectionFactory = new CachingConnectionFactory(host,port);
        connectionFactory.setVirtualHost("vhost");
        connectionFactory.setPublisherConfirms(true); //设置发送消息失败重试
        connectionFactory.setChannelCacheSize(100);//解决多线程发送消息
        return connectionFactory;
    }

Apusic内存数据缓存

 redis:
    ## Redis数据库索引(默认为0)
    database: 0
    ## Redis服务器地址
    host: 192.168.1.9
    ## Redis服务器连接端口
    port: 6359
    ## Redis服务器连接密码(默认为空)
    ssl: false #启用SSL终端识别
    password: 
    timeout: 5000ms
    jedis:
      pool:
        ## 连接池最大连接数(使用负值表示没有限制)
        max-active: 8
        ## 连接池最大阻塞等待时间(使用负值表示没有限制)
        max-wait: -1ms
        ## 连接池中的最大空闲连接
        max-idle: 8
        ## 连接池中的最小空闲连接
        min-idle:

依赖包,其实还是springboot-redis那套

<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-data-redis</artifactId>
   <version>2.7.2</version>
   <exclusions>
      <exclusion>
         <groupId>io.lettuce</groupId>
         <artifactId>lettuce-core</artifactId>
      </exclusion>
   </exclusions>
</dependency>
<dependency>
   <groupId>redis.clients</groupId>
   <artifactId>jedis</artifactId>
</dependency>

执行LUA脚本问题,需要我们本地代码进行适配和改造

这个兼容性都比较差,需要反复测试


    public static <T> T execute(StringRedisTemplate stringRedisTemplate,final RedisScript<T> script, final List<String> keys, final Object[] args) {
        return stringRedisTemplate.execute(new RedisCallback<T>() {
            @Override
            public T doInRedis(RedisConnection connection) throws DataAccessException {
                Object nativeConnection = connection.getNativeConnection();
                // redis序列化key、value、lua脚本
                RedisSerializer keySerializer = stringRedisTemplate.getKeySerializer();
                RedisSerializer valueSerializer = stringRedisTemplate.getValueSerializer();
                RedisSerializer<String> stringSerializer = stringRedisTemplate.getStringSerializer();

                List<byte[]> keys_ByteArr = new ArrayList<byte[]>(keys.size());
                List<byte[]> args_ByteArr = new ArrayList<byte[]>(args.length);

                for (int i = 0; i < keys.size(); i++) {
                    keys_ByteArr.add(keySerializer.serialize(keys.get(i)));
                }
                for (int j = 0; j < args.length; j++) {
                    args_ByteArr.add(valueSerializer.serialize(args[j]));
                }
                byte[] scriptByte = stringSerializer.serialize(script.getScriptAsString());
                if (nativeConnection instanceof JedisCluster) {
                    return (T) ((JedisCluster) nativeConnection).eval(scriptByte, keys_ByteArr, args_ByteArr);
                }
                // 单点
                else if (nativeConnection instanceof Jedis) {
                    return (T) ((Jedis) nativeConnection).eval(scriptByte, keys_ByteArr, args_ByteArr);
                }
                // 单机模式
                return (T) ((Jedis) nativeConnection).eval(scriptByte, keys_ByteArr, args_ByteArr);
            }
        });
    }

人大金仓KingBaseES 数据库,底层其实是pgsql

<!--KingBase-->
<dependency>
    <groupId>com.kingbase8</groupId>
    <artifactId>kingbase8</artifactId>
    <version>8.6.0</version>
</dependency>

手动下载驱动包,地址https://www.kingbase.com.cn/qd/index.htm

2 配置数据库地址, 需要注意脚本方言为: helperDialect: postgresql

############## 数据源
master:
  datasource:
    url: jdbc:kingbase8://192.168.1.9:54321/hoe_hospital?useUnicode=true&allowMultiQueries=true&characterEncoding=utf8&useSSL=false
    username: J7EUl2ZBPKM=
    password: Soxks8s/VLiHR9Jo0gssJg==
    driverClassName: com.kingbase8.Driver
    validationQuery: select 1
    testOnBorrow: true
    testWhileIdle: true
## mappers 多个接口时逗号隔开
mapper:
  mappers: com.moan.hoe.base.config.mybatis.MyMapper
  not-empty: false
  identity: kingbase8
pagehelper:
  page-size-zero: true
  helperDialect: postgresql
  reasonable: true
  supportMethodsArguments: true
  params: count=countSql

SQL语法问题,需要在业务中慢慢排查,关键字和内置函数都不太友好

1>  当mysql某个字段的类型为 tinyint时,且长度为1,迁移到金仓时,自动转换为 true 或 false;(需要讲tinyint改为2,才可以保持一样的数值,对应类型为Integer);
tbl_menu_element   修改 is_deleted 为boolean
tbl_menu 修改 is_disable 为boolean

2>  mysql FIELD()函数替换掉 decode()

3> 数据库初始化大小写不区分,

4> 别名不能加mysql自动生成斜单引号,中文别明不能加单引号;

5> mysql的函数和存储过程无法直接兼容kingBaseES库

6> mysql的group_concat函数 kingbaseEs——string_agg(expression,delimiter)    输入值连接成一个串,用定界符分隔

7> 命名需要加 as 关键字;select name,或者t.name 关键字都不需要加`` 上单引号,否则报错 (2)传参数时,数据加是什么类型,参数就一定要相同,否则报错, boolean 不能写成"0"或者"1" 这种传参

8>  实体类的自增主键问题,去掉    //@GeneratedValue(strategy = GenerationType.IDENTITY)  只需保留@ID注解,需要在插入的时候给ID主键赋值,去掉自增注解并未解决,需要升级mybaits-plus插件最新版本

9> 自定义SQL函数或者存储过程都需要重写 

要先创建模式,相当于创建数据库,跨库查询的话,一定把所有模式创建到主模式下,才可以进行跨库查询表,

登录web管理界面 , 新建源数据 ,需要配置参数的可以在后面加 如tinyntlisBit=false 可以区分boolean类型

主要是新建源 数据到目标数据,再创建一个任务,启动任务后去执行两边的数据对比和导入

服务器

操作系统是: 统信uos

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/383242.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

webrtc音频系列——4、RTP与RTCP协议

如果让你从0开发一套实时互动直播系统&#xff0c;你首先要选择网络传输协议。UDP 还是 TCP&#xff1f;答案是&#xff1a;UDP。为什么实时传输不能用 TCP &#xff1f;TCP 的目的就是实现数据的可靠传输&#xff0c;因此他有一套 握手&#xff0c;发送 -> 确认&#xff0c…

linux下安装jenkins

1.初始化Jenkins安装环境 系统版本&#xff1a;Red Hat Enterprise Linux 8.7 将脚本文件jenkins_install_env.sh 、 jenkins_install.sh和apache-maven-3.6.2-bin.tar.gz、jdk-8u251-linux-x64.tar.gz都上传到/usr/local/src目录下执行jenkins_install_env.sh脚本初始化Jenki…

嵌入式开发工具箱【持续更新中】【VMware、Ubuntutftp、nfs、SecureCRT、XShell、Source Insight 4.0】

一、概述 本文主要介绍嵌入式开发过程中需要用到的工具及简单的使用方法。避免在搭建嵌入式开发环境时&#xff0c;需要四处寻找文档&#xff0c;收藏此文章&#xff0c;一文搞定。 大多数嵌入式开发环境是使用Linux作为目标开发系统&#xff0c;所以开发主机一般都是Linux系统…

若依学习(前后端分离版)——启动时发生了啥?(@PostConstruct)(mybatis log free)

我们可以发现若依启动时执行了一些sql我们可以安装一个插件mybatis log free 来更好的进行sql查看 &#xff0c;安装后需要修改一下若依的日志配置如下查看日志&#xff0c;我们发现执行了三个方法&#xff08;&#xff09;&#xff0c;分别查询了一些数据。以第二个方法为例子…

python 如何存储数据 (python 的文件和异常)

文章目录存储数据1. 使用 json.dump() 和 json.load()json.dump()2. 保存和读取用户生成的数据存储数据 很多程序都要求用户输入某种信息&#xff0c;如让用户存储游戏首选项或提供要可视化的数据。不管专注的是什么&#xff0c;程序都把用户提供的信息存储在列表和字典等数据结…

这些个 axios 工具函数,你都掌握了吗

前言 周末过得真快&#xff0c;看个源码时间就过去了&#x1f440;。 在上周看做项目的时候看到了项目里封装的 axios&#xff0c;对其封装的原理没有弄清楚&#xff0c;于是周末的时候便抽了点空闲时间来看了看 axios 的源码&#xff0c;将其研究研究。 源码阅读 这里就不…

实战:一天开发一款内置游戏直播的国产版Discord应用【附源码】

游戏直播是Discord产品的核心功能之一&#xff0c;本教程教大家如何1天内开发一款内置游戏直播的国产版Discord应用&#xff0c;用户不仅可以通过IM聊天&#xff0c;也可以进行语聊&#xff0c;看游戏直播&#xff0c;甚至自己进行游戏直播&#xff0c;无任何实时音视频底层技术…

数据增广真有那么神奇吗?

作者&#xff1a;皮皮雷 来源&#xff1a;投稿 编辑&#xff1a;学姐 论文题目 How Effective is Task-Agnostic Data Augmentation for Pretrained Transformers? 论文作者 S. Longpre, Y. Wang, and C. DuBois 论文发表于 2020 EMNLP findings 摘要 任务无关的数据增广…

chatgpt功能展示

Chatgpt 不知道大家刷抖音的时候是否刷到了人工智能要取代人类的一些短视频&#xff0c;他们所提到的主角就是一个AGI模型——chatgpt&#xff0c;资本对其的追求程度可以用火爆&#x1f525;来形容了吧&#xff0c;先给大家讲一下chatgpt吧&#xff0c;如果没兴趣看我扯犊子可…

网络安全入门学习:社会工程学

在电影《我是谁&#xff1a;没有绝对安全的系统》中&#xff0c;主角本杰明充分利用自己高超的黑客技术&#xff0c;非法入侵国际安全系统&#xff0c;并在最后逃之夭夭。在电影中&#xff0c;有一句经典的台词&#xff1a; 所有黑客手段中最有效的、最伟大的幻想艺术——社会…

windows10安装ubantu双系统

windows10安装ubantu双系统 文章目录windows10安装ubantu双系统一、安装前准备1.前期说明2.制作U盘启动器3.设置硬盘分区相关4.设置给ubantu系统的硬盘大小&#xff0c;设置为未分配&#xff08;删除卷&#xff09;二、进行安装1.设置bios相关2.进入bios启动界面选择U盘安装3.进…

快速入门 Python 数据分析实用指南

Python 现如今已成为数据分析和数据科学使用上的标准语言和标准平台之一。那么作为一个新手小白&#xff0c;该如何快速入门 Python 数据分析呢&#xff1f; 下面根据数据分析的一般工作流程&#xff0c;梳理了相关知识技能以及学习指南。 数据分析一般工作流程如下&#xff…

北京移动CM311-5s-ZG_GK6323V100C_2+8_免拆一键卡刷固件包

北京移动CM311-5s-ZG_GK6323V100C_28_免拆一键卡刷固件包 特点&#xff1a; 1、适用于对应型号的电视盒子刷机&#xff1b; 2、开放原厂固件屏蔽的市场安装和u盘安装apk&#xff1b; 3、修改dns&#xff0c;三网通用&#xff1b; 4、大量精简内置的没用的软件&#xff0c;…

【蓝桥杯试题】递归实现排列型枚举

&#x1f483;&#x1f3fc; 本人简介&#xff1a;男 &#x1f476;&#x1f3fc; 年龄&#xff1a;18 &#x1f91e; 作者&#xff1a;那就叫我亮亮叭 &#x1f4d5; 专栏&#xff1a;蓝桥杯试题 文章目录1. 题目描述2. 代码展示法一&#xff1a;dfs法二&#xff1a;next_perm…

Android开发如何自定义View实现圆弧进度效果

在Android开发中&#xff0c;通过自定义View实现自己想要的效果是作为android开发程序员的一项必备技能&#xff0c;自定义View对于android开发来说也是比较难的一项技术。 涉及到的知识Canvas&#xff08;画布&#xff09;,Paint&#xff08;画笔&#xff09;&#xff0c;自定…

​35岁+的年龄不仅能进入大厂,还能年收入百万+,原来吃透这些才是关键

本人985院校毕业&#xff0c;华为工作10年&#xff0c;创业3年&#xff0c;现在另一大厂&#xff0c;年收入百万 华为期间岗位从测试工程师&#xff0c;到测试经理&#xff0c;再到项目经理&#xff0c;现35岁的年龄进入另一个大厂。这期间面试过上千人&#xff0c;也管理过几…

Qt QMessageBox详解

文章目录一.QMessageBox介绍枚举属性函数二.QMessageBox的用法1.导入QMessage库2.弹窗提示3.提供选项的弹窗提示4.作为提示&#xff0c;报警&#xff0c;报错提示窗口一.QMessageBox介绍 文本消息显示框(message box)向用户发出情况警报信息并进一步解释警报或向用户提问&…

Git学习:IDEA项目上传到码云

5分钟学习创建项目上传到git服务器 文章目录前言一、gitee创建项目&#xff1f;1、gitee创建项目2、IDEA在本地创建项目3、找到git下载好git程序4、 找到git安装目录 bin目录下的 git.exe 文件5、进行操作&#xff08;提交代码到Gitee&#xff09;6、 上传成功&#xff08;刷新…

vue 解决问题:Webpack安装不成功,webpack -v无法正常显示版本号

目录 一、解决问题&#xff1a;Webpack安装不成功&#xff0c;webpack -v无法正常显示版本号 二、解决问题&#xff1a; ERROR Error: Cannot find module webpack-log 三、 解决报错&#xff1a;error:03000086:digital envelope routines::initialization error 四、解决…

Java设计模式笔记——七大设计原则

系列文章目录 第一章 Java 设计模式之七大设计原则 文章目录系列文章目录前言一、单一职责原则1.案例分析2.改进二、开闭原则1.案例分析2.改进三、里氏替换原则1.案例分析2.改进四、依赖倒转原则五、接口隔离原则1.案例分析2.改进六、合成复用原则1.案例分析2.改进七、迪米特原…