gpt4 book ai didi

Erlang 在支付系统中的使用

转载 作者:行者123 更新时间:2023-12-04 11:54:47 24 4
gpt4 key购买 nike

我正在尝试实现支付消息传递中间件,并想探索使用 Erlang/OTP 的选项。该应用程序将在银行业中用于连接 EFT 支付网络和核心银行系统以处理卡交易。

它将负责执行以下任务:

  1. 使用以下方式与外部网络(如 VISA 和 MasterCard)通信ISO 8583 消息格式。
  2. 通过套接字接收大量数据(HEX、BINARY、EBCIDIC)代表金融交易。
  3. 解析/解码接收到的数据。
  4. 在数据库中执行一些检查以进行验证
  5. 与主机安全模块接口(interface)以验证客户 PIN 和其他安全检查。
  6. 通过 XML 或网络服务向核心银行系统发送请求打电话
  7. 通过制定响应来响应外部接口(interface)ISO 8583 格式的消息

显然,此类应用程序必须是并发的,并且速度足以在几秒钟内处理事务。
现在我的问题是,Erlang 是实现此类应用程序的好选择吗? Erlang 能否在不影响系统性能的情况下高效处理字符串?

如前所述,将有很多字符串操作来解码通过网络接收的数据,所以我不确定 erlang 是否完全适合。

最佳答案

您的问题在某种程度上暗示处理 ISO 8583 意味着处理文本。 Erlang 表示 two different ways 中的文本:

  1. List - 是单个字符的链接列表。占用更多空间(每个元素是 char 和下一个元素的地址)并且处理长文本时速度较慢,但​​自 lists are the basic types 以来非常容易使用在函数式语言中。

  2. Binary - 是一组字节 stored in memory ,类似于 C/C++ 中的数组,但更好的是 support for processing and pattern matching .

两种类型 support Unicode ( including UTF-8 ) 很好。

Erlang 并不擅长原始文本处理(Perl 可以说更好),但 Erlang 擅长有效地实现和处理各种协议(protocol),包括文本协议(protocol)。它是爱立信发明的handle data in telecommunication系统,其中充满了协议(protocol)。核心 Erlang 库,OTP ,包含大量为最流行的协议(protocol)实现处理程序的模块:ASN.1 , Base64 , Corba , LDAP , HTTP, SNMP 、TCP、UDP、SCTP 等。

一些最流行的消息系统,出于显而易见的原因处理文本消息,是用 Erlang 编写的:RabbitMQ , EMQTT , ejabberd .

还有一个library to process ISO 8583在 Gihub 上有 fork :1st fork , 2nd fork .

但选择 Erlang 的最重要原因可能不是它对协议(protocol)实现的支持,而是它的扩展能力。 Erlang 实现了它的 own processes ,这与系统进程不同。 Erlang 可以在一个适度的 CPU 上创建数百万个进程来同时处理数百万个作业。在 Wooga 查看它是如何使用的和 WhatsApp等等。

关于Erlang 在支付系统中的使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36948389/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com