zoukankan      html  css  js  c++  java
  • 一次PostgreSql数据迁移,使用nodejs来完成

    2014-02-08

    XX开放平台不允许使用站外的服务器了,可是我们的app都在站外,数据库也在站外,全都要求迁移到其云主机上(坑爹啊)。我们在其云主机上仅有有限的资源,而且也有在运行中的数据库,要做数据迁移,正好重新清理一下数据库吧,把过期的没用的数据都转入到历史库,将原系统的数据和云主机上的数据做一次合并,打算用nodejs从站外服务读取数据,然后发送到云主机上,云主机接受数据并合并到现有系统里。站外服务器和云主机上的数据迁移都用nodejs来实现,想法确立之后,开始做一个简单设计。

    为什么要选用nodejs,因为可以快速开发,快速部署,js代码写起很轻快,顺便实践一个小小的nodejs项目。

    要实现的功能:

    sender.js

      职责:接收命令行参数,读取需要迁移的源数据,转换成message格式,发送到云主机的服务上,并在开始和结束处记录日志,程序重启可以按日志断点续传。

    receiver.js (云主机只有80端口开放,用apache做一个proxy)

      职责:接受源数据,保存message到数据库,并返回结果给sender。

    processer.js

      职责:定时轮询读取message数据,有未处理的数据,则处理数据整合逻辑(合并用户ID,合并用户数据等)

     

    2014-02-09

    由于我们的数据库都是Postgresql,服务器都是CentOS,开发环境在Win7,先安装开发环境和生产环境的nodejs环境

    (1)在Linux下安装nodejs,以及node-postgresql,比较简单,参见我的另一篇博客。

    (2)在Win7下安装nodejs,以及node-postgresql,稍微麻烦,需要安装Python 2.7,还需要安装node-gyp,为了能安装node-postgresql 还需要安装VC++,我安装的是VC++2010 Express,都安装好了之后,测试一下,node-postgresql能正常工作。

    至此工作环境准备完毕,接下来开始进入模块的简单设计阶段。

    传输过程中的数据结构Json格式:

     

    message.type: 数据名

    message.content: 数据内容

    至此貌似云主机上接受数据使用mongodb比较合适,在接下来的设计和实践中再做比较和决策。

    (待续)

  • 相关阅读:
    复用$.ajax方式传递参数错误处理
    JS传递函数并且调用
    JQuery $.axaj的基本格式
    AOP的具体实践-简化结果返回的处理
    将Python打包成可执行文件exe的心路历程
    通过Python实现一个文档的半自动录入工具
    我的第一次实习感悟
    docker nginx+php-fpm+mysql
    使用Harbor搭建docker私服
    python 验证码获取后处理降噪、灰度、保存
  • 原文地址:https://www.cnblogs.com/kylindai/p/3541164.html
Copyright © 2011-2022 走看看