用C语言设计分布式应用程序

时间:2019-01-04 00:14:31

标签: c shared-memory distributed-system

目前,我有一个用C语言编写的整体过程,它执行以下一组操作

  

a。接受来自用户的数据(采用某些有效负载格式)。

     

如果用户首次提供了数据,请验证是否为标准数据   符合要求并将其存储在用户数据存储区中

     

ELSE比较用户先前提供的存储在用户中的数据   数据存储,并检查是否重复。

     

如果重复,则跳过

     

ELSE验证用户提供的数据并更新以前的信息   在用户数据存储区中。

     

b。每当用户数据存储区更新时,

     

初始化分析应用程序以处理存储在用户中的信息   日期存储并生成最终输出

     

将更新复制到备份用户数据存储中,以备将来参考。

当前,我面临着规模问题,尤其是用户不断输入数据的速度。结果,当前应用具有通过一个整体处理仅接受一定数量的用户数据请求的限制。

添加pthreads将是扩展应用程序的下一步,这有时会增加代码库的复杂性,因此必须在锁定方面保持适当的一致性。

我想尝试微服务的方法,如下所述,我想将当前的整体过程分为多个微服务,以便我可以分别改进每个过程,以提高其性能以供将来更新。

Process-01: Contains logic to accept data from user and does all standard verification's and update the shared data-store.

Process-02: whenever the shared data-store is updated, contains logic to process the data in it and create final output.

Process-03: Takes care of replicating share-datastore.

process-01 ==== (shared-datastore) === process-02
                        ||
                      process-03

似乎我需要一个共享的数据存储,其中process-01和process-02将请求用户提供的数据进行处理。这是否会造成瓶颈,因为我需要创建请求的副本作为消息并与进程共享?对于process-02,我需要将整个数据存储创建为副本,以便它可以独立处理数据。

理想情况下,process-01同时需要读写权限,而process-02仅需要共享数据存储区中数据的读取权限。

由于我们在应用程序中使用C,因此请提出建议,新设计是否还有其他警告?有没有更好的设计呢? 甚至任何其他设计建议也会有很大帮助。在C中指向类似的应用程序设计也将有所帮助。

0 个答案:

没有答案