2017-04-02 1 views
5

입니다. Erlang/Elixir를 사용하여 금융 시장에서 서비스로 플랫폼을 만들고 싶습니다. 필자는 금융 시장에서 AWS 람다 스타일 함수를 제공 할 것이지만 web/rest/http를 통해 액세스 할 수있는 대신 자신의 ARM 기반 하드웨어 터미널을 클라이언트에 배포 할 계획입니다 (Nvidia Jetson TX2 기반 또는 그와 비슷한 수준의 하드웨어) . 그들은이 단말기에서 기능에 액세스합니다. 나는 터미널이 시스템에서 완전한 노드가되기를 원한다. 따라서 액터 모델을 사용하여 중앙 서버로 메시지를 전달할 것이며 실제로 터미널 사용자가 자신의 기능을 온라인으로 설정하기로 결정하면 서로간에 메시지를 전달할 수 있습니다.Erlang 시스템의 최대 (실제) 노드 수는

이것은 실행 가능한 모델입니까? 이런 1000 개의 터미널을 실행할 수 있습니까? 100 000? 어떤 종류의 한계가 부딪 칠까요? 얼랭 (Erlang) 메시지 라우팅은 소프트 실시간 (soft-real time) 금융 시장에서 데이터를 스트리밍하는 경우 그러한 네트워크가 여전히 실행되고 있다고 상상할만큼 충분히 확장 가능합니까? (주로 중앙 서버에서 터미널까지 있지만 터미널에서 터미널로 직접 이동할 수있는 좋은 비율). 최대 100,000 개 이상의 서로 다른 "가입"데이터 채널 프로세스를 사용할 수있는 시스템을 사용할 수 있었으며 대부분은 입력을 받아 매초마다 출력을 생산했습니다.

기본적으로 나는 Erlang 시스템의 확장 성 기능에 대한 표준 가이드를 원합니다. 이상적으로 나는 또한 그런 시스템의 보안 함축성에 대한 가이드를 원합니다. 글로벌 라우팅 테이블이나 시스템의 다른 부분이 악의적 인 터미널 사용자에 의해 손상 될 수 있습니까? 아니면 에지 노드가 Erlang 네트워크의 민감한 부분으로부터 부분적으로 "봉쇄"될 수 있습니까?

높은 컴퓨팅 프로세스를 위해 포트/NIF를 많이 사용하고 싶습니다.

답변

5

내가 다시 얼랑의 유통 메커니즘이 개발 된 시스템의 종류에 듣다 모두, 여러 가지 이유로이 길을 추구하지 않을을 - 패시브 백플레인상의 보드 세트 : "무료"로컬 대역폭 및 전체 시스템이 동일한 보안 도메인에 위치합니다. Erlang 배포 프로토콜은 광범위하게 퍼져있는 대규모 네트워크에서 제대로 작동하기에는 너무 복잡 할 수 있습니다. 물론 노드가 서로 :os.cmd("rm -rf /")을 실행할 수있게하려는 경우가 아니라면.

중앙 시스템의 Erlang 배포 프로토콜을 마음껏 사용하고 이러한 터미널이 해당 시스템 및 다른 서버에 대한 SSL을 통한 데이터 전용 SSL을 사용하도록하십시오.그 위에, 당신이 원하는대로 무엇이든 할 수있는 일종의 오버레이 네트워크를 만들 수 있습니다.

2

나는 신중하게 this을 읽는 것이 좋습니다. 그리고 나 역시 작은 마이크로 서비스로 서비스를 나누는 것이 좋습니다.
다른 벤치 마크는 Investigating the Scalability Limits of Distributed Erlang입니다. 조 Armstorng의 책 프로그램 얼랑에서
, 그는 말했다.
"몇 년 전, 내가, 내가 플래닛 랩과 함께 일하는 내가 네트워크 플래닛 랩에 대한 액세스 권한을 가지고 내 연구의 모자를했을 때, 그래서 빈 설치 모든 PlanetLab 머신의 Erlang 서버 (약 450 개)
머신으로 무엇을 할 것인지 정말 몰랐으므로 나중에 서버 인프라를 설정했습니다. "
외부 포트를 사용하지 말고 대신 C 또는 C++로 작성된 내부 드라이버를 사용하십시오.

+0

좋아 난 당신이 각 노드가 전체 시스템에 대한 n 개의 * (N-1) 의미 N-1 연결을 가지고 있다는 것을 의미 같은데요? 이 사실은 본질적으로 메쉬이기 때문에 제안 된 아키텍처를 실행 불가능하게 만든 것처럼 보입니다. 실제로 라우팅이 없습니다. 예, Erlang 메일 링리스트에 질문 할 것입니다. –

+1

예, n-1이 맞습니다. 나는 벤치 마크를 검색했고 마지막 편집에서 게시물에 추가했습니다. – Pouriya

+0

외부 포트를 사용하지 않는 이유는 무엇입니까? 또한, @Pouriya - 제발 외부 참조를 제공하여 대답하지 마십시오. – cdegroot