Pull to refresh
12
0
Сергей @fear86

Пользователь

Send message
Далеко нет, имеет отличное применение во всяких job queue. Лично пользуюсь super_closure + jmsjob.
В чем проблема то? Serialize и вперед. Другое дело что memcache ничего не хранится постоянно, это не база данных. И расчитывать, что то что вы туда положили, получится забрать нельзя.
Ну и конечно же, у всего этого есть один большой минус который проигрывает микросервисному подходу. Вы будете ограниченны одним физическим сервером. Расшарить свой объект на 1+n серверов не получится.
Кстати есть же http://php.net/manual/en/book.shmop.php и http://php.net/manual/en/book.pthreads.php, так что можно что то придумать )
Возможно тогда вам нужен не php? Есть же вон ruby, go, python, java (тут вообще ближе всего к пхп, так как из нее уже почти все перетянули). Там как раз с этим будет проще, и не надо будет извращаться.

Так же можно не ждать, а сделать самому) http://zephir-lang.com/
Вот только цена разработки (портирования) будет выше и вряд ли окупится когда либо )
В чем проблема? memcache, redis, mongodb и прочие — решают эту проблему. Плюс дает вам возможность выбора конкретного решения под конкретную задачу. Нужно хранить объекты в памяти? вот вам memcache. Нужно шарить в кластере? Вот вам redis или mongo. Еще есть сессии, который нативные, и которые можно перенести по требованию в memcache или любое другое место. Ну а если вам нужен демон, то пишите демона, php отлично с этим справляется.
Steam Machines есть с железом хуже яблочного, надо будет еще фильтровать по характеристикам.
Есть смысл ради https://www.varnish-cache.org/docs/3.0/tutorial/esi.html но тут должна быть поддержка на стороне приложения.
Начать изучать docker с http://kubernetes.io и https://www.openshift.org
Хороший опыт проектирования ПО куда полезнее будет. Разработка инструментов, микросервисов, api, общая архитектура системы и отдельно взятых узлов (контейнеров). Так что легче всего будет только архитектору ПО для линукс систем, и сетей )
Больше похоже на какой то перевод, но переводчик ничего не понимает в контейнерах и кластерах, поэтому и текст получился непонятный.
Вот тут github.com/jpetazzo/dind бери и собирай на здоровье )
Да, я имел ввиду вызов из других обьектов. И я ошибся с общим родителем, класс надо наследовать, или хотя бы наследовать тот класс в иерархии, который содержит нужный нам метод/свойство.
Вот так тоже можно:
class a {
  protected function test()
  {
    return 'protected';
  }
}

class e extends a {
}

class c extends a {
  public function __call($name, $args)
  {
    return call_user_func_array(array(array_shift($args), $name), $args);
  }
}

$e = new e();
$c = new c();
echo $c->test($e);
new static(); самое частое использование
Если мне не изменяет память то достаточно что бы у классов был общий родитель. Но не обязательно наследовать нужный класс.
Некоторые вещи про php лучше не знать. Например то что есть трюк вызывать protected методы не только из вашего класса )
Так же гугл вам бы мог помочь узнать что в kebernetes своя реализация для этого.
Да я знаю про volume в docker, но они не работают. Они годятся только когда у вас 2-3 контейнера на одной машине, а не когда сотни на нескольких физических серверах.
Если я правильно понял по коду, то он отталкивается от статических данных, а не от текущей нагрузке на ноду. Это не спасает когда у нас 10 подов на одной ноде жрет ресурсов больше чем 20 на другой. При равной конфигурации. Но в теории можно дописать туда своих алгоритмов ))

Information

Rating
Does not participate
Location
Харьков, Харьковская обл., Украина
Date of birth
Registered
Activity