Loading presentation...

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

Акторы в SAYMON

No description
by

Виктор Исаев

on 21 September 2016

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of Акторы в SAYMON

Акторы в SAYMON
Мотивация
Гибкая масштабируемость с сохранением структуры проекта
Что такое актор
Штука, которая умеет:
Принимать сообщения
Отправлять сообщения
Порождать дочерние акторы
Как это работает
Разбиваем SAYMON на акторы
Data Server Actor
Message Handler Actor
History Writer Actor
Trigger Handler Actor
Stat
SNMP
Register
E-mail
Script
Telegram
Настраиваем масштабирование
Data Server Actor
Message Handler Actor
History Writer Actor
Trigger Handler Actor
Stat
SNMP
Register
E-mail
Script
Telegram
{
"historyWriterActor": {
"mode":
"forked"
},

"messageHandlerActor": {
"mode":
"forked"
}
}
actors.json
=
PID: 1234
PID: 5678
PID: 1111
Настраиваем масштабирование
Data Server Actor
Message Handler Actor
History Writer Actor
Trigger Handler Actor
Stat
SNMP
Register
E-mail
Script
Telegram
{
"historyWriterActor": {
"mode": "forked"
},

"messageHandlerActor": {
"mode": "forked",

"clusterSize": 3,
"balancing": "round-robin"
}
}
actors.json
=
PID: 1234
PID: 5677
Разделение на подпроцессы
Message Handler Actor
Stat
SNMP
Register
PID: 5678
Message Handler Actor
Stat
SNMP
Register
PID: 5679
Load Balancer Actor
Распределение нагрузки по ядрам CPU
Настраиваем масштабирование
Data Server Actor
Message Handler Actor
History Writer Actor
Trigger Handler Actor
Stat
SNMP
Register
E-mail
Script
Telegram
{
"historyWriterActor": {
"mode": "forked"
},

"
snmp
MessageHandlerActor": {
"mode": "forked",
"clusterSize": 3,
"balancing": "round-robin"
}
}
actors.json
=
PID: 1234
Load Balancer Actor
Распределение SNMP-нагрузки по ядрам CPU
SNMP
SNMP
PID: 5671
PID: 5672
PID: 5673
Настраиваем масштабирование
Data Server Actor
Message Handler Actor
History Writer Actor
Trigger Handler Actor
Stat
SNMP
Register
E-mail
Script
Telegram
{
"historyWriterActor": {
"mode":
"remote",
"clusterName": "alpha"
},

"messageHandlerActor": {
"mode":
"remote",
"clusterName": "omega"
,
"clusterSize": 3,
"balancing": "round-robin"
}
}
actors.json
=
Host: alpa-1
Host: omega-1
Message Handler Actor
Stat
SNMP
Register
Host: omega-2
Message Handler Actor
Stat
SNMP
Register
Host: omega-3
Load Balancer Actor
Распределение нагрузки по хостам
Что ещё можно/нужно сделать
Affinity routing
Fault tolerance
On-the-fly config
Tracing
Full transcript