首页 > 其他分享 >气象数据中心梳理

气象数据中心梳理

时间:2023-11-20 22:38:02浏览次数:32  
标签:数据中心 int 数据库 线程 模块 pthread 进程 梳理 气象

气象数据中心实战项目

目录

项目介绍

项目依托气象行业数据(数据总量大,且每天新增数据量大),模拟气象数据中心

该项目从数据源采集数据后存储到多个数据库中;业务系统通过数据库集群的总线访问数据

数据源:卫星接收站、雷达系统、国家基本站、区域气象站

业务系统:预警发布系统、预报制作系统、公共服务平台、数据共享平台

数据采集->数据处理->数据入库(数据库集群)->数据服务总线

主要功能子系统为:

1.数据采集子系统

功能:把数据从数据源取出

三个模块:(1)ftp客户端,直接下载数据文件;(2)http客户端,采用http协议,从WEB服务接口数据;(3)直连数据库的数据源,从表中抽取数据

2.数据处理和加工子系统

功能:把各种格式的原始数据解码为xml格式的数据文件;对原始数据进行二次加工生成高可用的数据集。

3.数据入库子系统

功能:把数百种数据存储到数据中心的表中

4.数据同步子系统

MySQL的高可用方案只能解决部分问题,且不够灵活,效率不高(只能满足数据库之间的复制不能满足表之间的复制)。本项目把核心数据库(Slave)表中的数据按条件和数据增量两种方式同步到业务数据库中。

项目数据库主要分为两种Master和Slave。

业务数据库主要由业务的需求决定(历史库(量大效率低), 实时库(量小效率高), 预报库, 台风库(量小效率高), 接口库)

5.数据管理子系统

功能:清理历史数据;把历史数据备份和归档

6.数据交换子系统

功能:把数据中心的数据从表中导出来生成数据文件。采用ftp协议,把数据文件推送到对方的ftp服务器。基于tcp协议的快速传输文件子系统

7.数据服务总线子系统

功能:用C++开发WEB服务,为业务提供数据访问接口,使用数据库连接池、线程池效率极高

8.网络代理服务子系统

功能:用于运维,利用I/O复用技术(select/poll/epoll)

项目重点和难点:(1)服务程序的稳定性;(2)数据处理和服务的效率;(3)功能模块的通用性

开发环境

CentOS7.x MySQL5.7 字符集utf-8

项目框架

未命名文件

服务程序常驻后台

保持服务程序稳定性,用守护进程监控服务程序的运行状态,如果服务程序故障,调度进程会重启服务程序

服务程序的调度

利用linux信号和多进程

先执行fork函数,创建一个子进程,让子进程调用execl执行新的程序

新程序将替换子进程,不会影响父进程

在父进程中,可以调用wait函数等待新程序运行的结果,这样就可以实现调度的功能

守护进程的实现

利用linux共享内存和linux信号量

// 查看共享内存: ipcs -m 删除共享内存: ipcrm -m shmid

// 查看信号量: ipcs -s 删除信号量: ipcrm sem semid

信号量CSEM m_sem;

m_semid=semget(key,1,0666)

如果errno==2表示信号量不存在, 创建m_semid=semget(key,1,0666|IPC_CREAT|IPC_EXCL)

// 信号量创建成功后,还需要把它初始化成value。

union semun sem_union; sem_union.val = value; // 设置信号量的初始semctl(m_semid,0,SETVAL,sem_union)

// 加锁 CSEM:

标签:数据中心,int,数据库,线程,模块,pthread,进程,梳理,气象
From: https://www.cnblogs.com/Gal0721/p/17845044.html

相关文章

  • Tita 升级|「数据中心」完成率统计上线
    【数据中心】新增任务-完成率统计Tita-OKR和新绩效一体化管理平台日常工作用任务推进,却无法知晓员工的执行情况与按时完成率等数据?数据中心的「完成率统计」帮助管理者掌握企业下所有员工的任务执行情况管理者还可以通过右上角进行更多筛选、字段展示与导出,进行自定义数据......
  • 移动端 Touch 事件梳理和踩坑
    前言在移动端开发中,几乎无法避免Touch事件,然而每次遇到Touch事件,今天一起来梳理一下Touch事件的相关内容和踩坑总结吧!Touch事件基础TouchEventtouchstart:当手指触摸屏幕的时候触发,即使已经有一个手指放在屏幕上也会触发touchmove:当手指在屏幕上滑动的时候连续地触发t......
  • 数组相关知识的梳理
    数组相关知识的梳理一维数组定义inta[100];inta[]={1,2,6,5};总之,要让计算机识别出要给定义的数组多少的容量输入与输出多多使用循环结构输入Eg.inti,a[100];charch;for(i=0;i<=l0;i++){scanf("%d%c",&a[i],&ch);}输出Eg.for(i=0;i<=10;i++)......
  • 金蝶云星空签出元数据提示“数据中心业务对象版本高于应用版本”
    一、签出元数据报错 二、建议每次签出元数据前,先获取最新的代码后再签出,如果还是提示,那就根据你的情况选择版本。......
  • pandas刷题梳理
    drop_duplicates(subset=None,keep='first',inplace=False)subset:用来指定特定的列,默认所有列keep:删除重复项并默认保留first出现的项sort_values(by=[],ascending=[])by:按照特定列排序ascending:默认False降序。True为升序。head(n),tail(n)head:取前n行tai......
  • 嵌入式Linux adbd实现概要梳理(基于STM32MP157D+Buildroot)
    关键词:USBGadget、dwc2、configfs、functionfs、adbd等等。基于STM32MP157D简单记录ADB实现的过程,涉及到USB、Gadget、configfs、functionfs、adbd、ADB协议等等。基于Buildroot2020.02.6编译adbd运行于设备,和PCWindows交互的简要框图:1Linux下USBGadget1.1Linux内核Gad......
  • 开源物流管理系统——【4】业务流程梳理
    近期开源项目进展缓慢,主要是由于菜园君本人对物流系统整体的业务流程了解不深导致的。多亏了从事物流行业的朋友提供了给力的帮助,笔者也从网上搜罗相关流程资料,再加上自己的理解,花了一番功夫之后整理出了主要的业务流程和财务流程。业务流程大部分物流公司都不太可能独自走完所......
  • 【知识梳理】IaaS & PaaS & SaaS
    转载说明:如果您喜欢这篇文章并打算转载它,请记得附上原文链接。码字不易,请文明转载,谢谢。1.IaaS&PaaS&SaaS的概念IaaS(InfrastructureasaService,基础设施即服务):IaaS是云计算服务模型之一,它提供基础的计算基础设施,包括虚拟机、存储、网络和操作系统等资源。通过IaaS,用户可......
  • 数据中心和数据中心网络概念
    什么是数据中心?是指大型机房,企业用来集中处理和存储海量数据的地方。可能是自建或者租用。数据中心的整体建构包含:1.计算系统:大量的服务器设备,进行数据的处理。2.存储系统:不同类型的存储设备,用来存储数据。3.数据中心网络:不同类型的网络设备,包括交换机,路由器,防火墙等,用来连接......
  • 梳理C++各种数据类型所占字节数和表示范围
    Outline1.数据类型所在字节数与程序运行平台有关2.列举各种数据类型所占字节数1.数据类型所在字节数与程序运行平台有关不同的平台上对不同数据类型分配的字节数是不同的。平台环境的理解:硬件架构操作系统(OS)编译器(Compiler)程序的运行环境取决于上述配件。原因:64位机......