/project

Primary LanguageC++

project

开发环境

  • Centos 7.x linux环境
  • MySQL 5.7
  • gcc、g++
  • 字符集utf-8
  • Oracle 11GR2

项目目录预览

tree /projetc
.
|-- idc      # 数据中心项目的源代码目录 用于生成测试数据
|-- idc1     # 个人学习数据中心的目录
|   |-- bin
|   |-- c
|   |-- ini
|   |-- sql
|   `-- test
|
|-- pthread  # 线程的源代码目录
|-- pthread1 # 个人学习线程的代码目录
|
|-- public   # 项目框架目录
|
|-- README.md
|
|-- test
|
|-- tools    # 项目通用程序的源代码目录
`-- tools1   # 个人编写的项目通用代码目录
    |-- bin
    |-- c
    `-- ini

本人学习的代码存放在pthread1, idc1, tools1中。所有代码都可以使用makefile轻松编译测试。

具体详解

  • public:存放框架
  • pthread1:演示线程使用 makefile
  • idc1:生成数据 makefile
    • start.sh 启动脚本
    • killall.sh 删除服务脚本
    • crtsurfdata5.cpp 用于生成全国气象站点观察的分钟数据
    • obtcodetodb.cpp 本程序用于把全国站点参数数据保存到数据库T_ZHOBTCODE表中
    • obtmindtodb.cpp 本程序用于把全国站点分钟观测数据入库到T_ZHOBTMIND表中,支持xml和csv两种文件格式
  • tools1:工具程序 makefile
    • checproc.cpp 守护进程
    • deletefiles.cpp 用于删除历史的数据文件或日志文件
    • gzipfiles.cpp 用于压缩历史的数据文件或日志文件
    • procctl.cpp 服务程序的调度程序,周期性启动服务程序或shell脚本
    • ftp模块
    • tcp模块
      • tcpputfiles.cpp 采用tcp协议,实现文件上传的客户端
      • tcpgetfiles.cpp 采用tcp协议,实现文件下载的客户端
      • fileserver.cpp 文件传输的服务
        • 采用异步通信机制
        • 解决粘包和分包,采用自定义报文格式,用整形变量存放报文长度。
    • mysql模块
      • diminingmysql.cpp 本程序是数据中心的公共功能模块,用于从mysql数据库源表抽取数据,生成xml文件
      • xmltodb.cpp 本程序是数据中心的公共功能模块,用于把xml文件入库到MySQL的表中
      • migratetable.cpp 本程序是数据中心的公共功能模块,用于迁移表中的数据
      • deletetable.cpp 本程序是数据中心的公共功能模块,用于定时清理表中的数据
      • syncupdate.cpp 本程序是数据中心的公共功能模块,采用刷新的方法同步MySQL数据库之间的表
      • syncincrement.cpp 本程序是数据中心的公共功能模块,采用增量的方法同步MySQL数据库之间的表
      • syncincrementex.cpp 本程序是数据中心的公共功能模块,采用增量的方法同步MySQL数据库之间的表
        • 本程序不使用Federated引擎
    • oracle模块
      • dminingoracle.cpp 本程序是数据中心的公共功能模块,用于从Oracle数据库源表抽取数据,生成xml文件
      • xmltodb_oracle.cpp 本程序是数据中心的公共功能模块,用于把xml文件入库到Oracle的表中
      • migratetable_oracle.cpp 本程序是数据中心的公共功能模块,用于迁移表中的数据
      • deletetable_oracle.cpp 本程序是数据中心的公共功能模块,用于定时清理表中的数据
      • syncupdate_oracle.cpp 本程序是数据中心的公共功能模块,采用刷新的方法同步Oracle数据库之间的表
      • syncincrement_oracle.cpp 本程序是数据中心的公共功能模块,采用增量的方法同步Oracle数据库之间的表
      • syncincrementex_oracle.cpp 本程序是数据中心的公共功能模块,采用增量的方法同步Oracle数据库之间的表。
        • 注意,本程序不使用dblink。
    • 数据服务总线
      • webserver.cpp 此程序是数据服务总线的服务端程序
        • 实践了线程池和数据库连接池
    • 代理模块
      • inetd.cpp 网络代理服务程序
        • 正向代理
      • rinetd.cpp 网络代理服务程序-外网端
        • 反向代理外网端
      • rinetdin.cpp 网络代理服务程序-内网端
        • 反向代理内网端

天气项目实战

慕课网项目课程链接

学习进度

2023-3-28 5.03 35% 88小时56分钟

2023-3-30 5.10 39% 93小时46分钟

2023-4-03 5.15 42% 106小时22分钟

2023-4-09 4.15 43% 122小时12分钟

2023-4-15 6.07 47% 140小时51分钟

2023-4-21 7.04 49% 144小时42分钟

2023-5-10 9-6 61% 171小时45分钟

2023-5-22 11-10 70% 195小时49分钟

2023-5-29 13-2 81% 212小时30分钟