Рпцз а: РПЦЗ (Агафангела) | это… Что такое РПЦЗ (Агафангела)?

Разное

РПЦЗ (Агафангела) | это… Что такое РПЦЗ (Агафангела)?

У этого термина существуют и другие значения, см. РПЦЗ (значения).

Русская Православная Церковь Заграницей под омофором митрополита Агафангела — неканоническое православное объединение, отколовшееся в 2007 году от РПЦЗ. Предстоятель и фактический основатель церкви — Агафангел (Пашковский). Резиденция главы церкви находится в Одессе (Украина).

Содержание

  • 1 История
  • 2 Современное положение
  • 3 Епархии
  • 4 Примечания
  • 5 Ссылки

История

Поводом для образования деноминации стало воссоединение РПЦЗ с РПЦ в мае 2007 года. Однако фактически данная структура стала оформляться ещё в октябре 2006 года епископ Одесский Агафангел (Пашковский) прекратил поминать первоиерарха РПЦЗ митрополита Лавра. В том же году Агафангел фактически проигнорировал решение священноначалия РПЦЗ разорвать общение с «Синодом противостоящих» и Болгарской старостильной церковью, что было необходимым условием восстановление евхаристического общения с Русской православной церковью.

В мае 2007 года тогда ещё епископ ПРЦЗ Агафангел обратился к своей пастве, а также к всем «верным чадам» РПЦЗ с посланием, которое содержало следующие слова:

Поскольку чаемое всей нашей Церковью покаяние Московской Патриархии в грехах сергианства и экуменизма до сего дня отсутствует, я нахожу преждевременным установление между нами евхаристического и административного единства. Также я нахожу недопустимым отказ Зарубежной Церкви от своего духовного наследия, которое, по моему убеждению, невозможно будет сохранить во всей его полноте, в условиях, обозначенных Актом о каноническом единстве[1]

Прочие иерархи РПЦЗ не поддержали епископа Агафангела, таким образом епископ Агафангел оказался единственным епископом в РПЦЗ, кто не принял Акт о каноническом общении с РПЦ. Вокруг него собралось 55 клириков РПЦЗ, причём 22 из них относилась к Одесской епархии, в полном составе ушедшей в раскол. Центр новой деноминации сместился на Украину.

11 июля 2007 года было образовано раскольническое «Временное Высшее Церковное Управление РПЦЗ» во главе с епископом Агафангелом, которое провозгласило основной своей задачей «подготовку к проведению V Всезарубежного Собора, а также налаживание и организация жизни наших епархий, монастырей и приходов в создавшихся условиях»[2]. Собравшиеся представители приходов РПЦЗ выразили «свою скорбь и озабоченность в связи с принятием решения части нашей Церкви войти в состав Московского Патриархата при том, что он продолжает пребывать в экуменизме и сергианстве»[2].

С 28 ноября по 3 декабря 2007 года епископ Агафангел находился в Греции, в старостильном монастыре сщмч. Киприана и мчц. Иустины, где принял участие в работе Синода противостоящих Истинно-Православной Церкви Греции и подписал совместный «Акт об основных принципах совместной работы греческих и русских анти-экуменистов»[3].

7 и 8 декабря 2007 года, в Одессе с участием епископов «Синода противостоящих» епископ Агафангел совершил хиротонии двух новых епископов «ВВЦУ РПЦЗ»: Андроника (Котлярова) — для управления приходами в дальнем зарубежье, и Софрония (Мусиенко) — для управления приходами в России.

2 — 4 сентября 2008 года в Свято-Архангеломихайловском епархиальном доме в Одессе состоялось очередное заседание ВВЦУ РПЦЗ под председательством епископа Агафангела, на котором были приняты в общение «на правах автономии»[4] епископы Иоанн (Зайцев) и Афанасий (Савицкий) из церковной группы «секачёвцев» (серафимо-геннадиевцев), оспаривающих свое преемство от Катакомбной церкви, однако не признанных ранее Зарубежной Церковью из-за отсутствия у них апостольского преемства и сектантской идеологии (родоначальником «серафимо-геннадиевской ветви» был мошенник Михаил Поздеев, выдававший себя за епископа)[5]. На заседании ВВЦУ была утверждена повестка V Всезарубежного Собора, намеченного на 18 — 20 ноября 2008 года, и восстановлено Совещание российских Преосвященных[4].

C 18 по 20 ноября 2008 на территории фермы Толстовского фонда в штате Нью-Йорк (США) был проведено собрание, которое его участники назвали «V Всезарубежным Собором РПЦЗ». На нём был избрал Агафангела (Пашковский) был избран «Первоиерархом РПЦЗ» с возведением его в сан митрополита[6]. По информации СМИ в 2007 году под омофором Агафангела собралась треть РПЦЗ[7]

27 апреля 2010 года в Одессе на заседании Архиерейского Собора РПЦЗ(А) был сформирован новый состав Архиерейского Синода во главе с митрополитом Агафангелом[8] Тогда же в состав епископата РПЦЗ(А) был принят из РИПЦ Дионисий (Алфёров).

В июле 2010 года прошла совместная конференция с участием представителей РПАЦ.

16 июня 2010 года было сообщено о принятии в юрисдикцию РПЦЗ(А) епископа Иринея (Клипенштейна), временно управляющего Западно-Европейской епархией РИПЦ[9].

14/27 мая 2011 года на заседании Архиерейского Синода РПЦЗ(А) в приходском доме при Воронежском храме в честь Всех святых, в земле Российской просиявших был принят из ИПЦ(Р) через перерукоположение епископ Николай (Модебадзе), определённый быть викарным епископом с титулом «епископ Потинский»[10]. На том же заседании было решено принять трёх священнослужителей, отколовшихся от РПЦ: Сергия Кондакова, Михаила Карпеева и Александра Малых и два прихода в Удмуртии и как «приходы из Московского Патриархата в составе Русской Зарубежной Церкви, временно находящиеся в непосредственном подчинении Первоиерарха»[11].

В 2012 году в ряды РПЦЗ(А) была принятя Надежду Антоненко, лидера псевдоцелительской секты, осуждённую по ст. 159 УК России «Мошенничество». Примечательно что в Русской православной церкви было заявлено о несоответствии учения Антоненко православному вероучению[12], после чего Антоненко запретила своим адептам посещать храмы Московской Патриархии[13].

Современное положение

Имеет евхаристическое общение с греческим старостильным «Синодом Противостоящих», Румынской старостильной и Болгарской старостильной церквями.

В городе Одессе дейсвует Кирилло-Мефодиевская духовная семинария (в 2007 году на 1 курсе училось 17 человек)

Кафедральный собор: Свято-Михайловский храм в Одессе. Общины РПЦЗ (Агафангела) проводят молебны и литургии (иногда в арендуемых помещениях), учреждают новые приходы.

Епархии

В составе РПЦЗ (А) 16 епархий и одно викариатство[14]

  • Нью-Йоркская и Восточно-Американская (Нью-Йорк, Бостон, Вашингтон) (митрополит Агафангел (Пашковский))
    • Вашингтонское викариатство (епископ Иосиф (Гребинка))
  • Сан-Паулская и Южно-Американская (епископ Григорий (Петренко))
  • Сиракузская и Никольская (временно епископ Андроник (Котляров))
  • Оттавская и Северо-Американская (епископ Андроник (Котляров))
  • Лионская и Западно-Европейская (временно епископ Ириней (Клиппенштейн))
  • Австралийско-Новозеландская (администратор игумен Иоанн (Шмельц)). В Мельбурне священники РПЦЗ окормляют общину белорусский автокефалов[15]
  • Таврическая и Одесская (митрополит Агафангел (Пашковский))
  • Кишинёвская и Молдавская (архиепископ Григорий (Кравченко))
  • Буинская и Волжская (архиепископ Иоанн (Зайцев))
  • Верненская и Семиреченская (епископ Ириней (Клиппенштейн))
  • Вологодская и Великоустюжская (епископ Афанасий (Савицкий))
  • Воронежская и Южно-Российская (епископ Кирилл (Кравец))
  • Санкт-Петербургская и Северо-Русская (епископ Софроний (Мусиенко))
  • Новгородская и Тверская (епископ Дионисий (Алфёров)
  • Ишимская и Сибирская (епископ Никон (Иост))
  • Потинская (Грузия) (епископ Николай (Модебадзе))

Примечания

  1. Оповещение
  2. 1 2 Послание Временного Центрального Управления РПЦЗ всем верным чадам Русской Зарубежной Церкви
  3. ДОКУМЕНТ: Акт об основных принципах совместной работы греческих и русских антиэкуменистов, принятый зам. председателя «Синода Противостоящих» ИПЦ Греции и председателем ВВЦУ РПЦЗ portal-credo.ru 06 декабря 2007 г.
  4. 1 2 ВВЦУ РПЦЗ приняло в свою юрисдикцию «секачевских» епископов, утвердило повестку V Всезарубежного Собора и восстановило Совещание российских Преосвященных portal-credo.ru 9 сентября 2008 г.
  5. История «серафимо-геннадиевской» ветви «Российской Катакомбной Церкви»
  6. Статья о V Всезарубежном Соборе РПЦЗ Преосвященного Климента епископа Гардинского, почетного гостя Собора (Греческая Старостильная Церковь)
  7. От РПЦЗ откололась треть духовенства
  8. Архиерейский Собор РПЦЗ(А) сформировал новый состав Синода этой Церкви и упразднил Совещание российских преосвященных 29 апреля 2010.
  9. Епископ Ириней (Клипенштейн), управлявший Западно-Европейской епархией РИПЦ, перешел в РПЦЗ(А) 18 июня 2010.
  10. Состоялось перерукоположение «митрополита» Николая (Модебадзе) во «епископа Потинского»
  11. Итоги заседания Архиерейского Синода РПЦЗ(Аг) от 27 мая 2011 г
  12. Протоиерей Всеволод Чаплин: Деятельность Н.  Н. Антоненко и центра «Надежда» противоречит учению Православной Церкви / Новости / Патриархия.ru
  13. Секта Надежды Антоненко после суда объединилась с раскольничьей РПЦЗ(Аг)
  14. Архиереи РПЦЗ (А)
  15. Самосвяты из «РПЦЗ(А)», «УПЦ-КП» и «БАПЦ» создают экуменический интернационал

Ссылки

  • Официальный сайт
  • Русская Православная Церковь Заграницей (Агафангела)

«Ибо Я милости хочу, а не жертвы, и Боговедения более, нежели всесожжений» (Ос. 6:6) — LiveJournal

Агафангел (Пашковский) наконец то отреагировал на открытое письмо мирян Владивостокской епархии РПЦЗ(А), опубликовав материал: «Агент КГБ Вальтер (Назаров) продолжает разрушать РПЦЗ». Привожу текст полностью.

«Агент КГБ Вальтер (до подписки о сотрудничестве М.В. Назаров, он же Пахомов), устроивший в своё время раскол в Церкви и не так давно заявивший, что РПЦЗ прекратила своё существование (очевидно, благодаря и его оперативной деятельности), возглавляя одну из политических организаций якобы патриотического направления, через возглавителя филиала этой организации во Владивостоке А. Любавского устроил раскол во Владивостокской епархии РПЦЗ. Группа Вальтера-Любавского с соратниками «вспомнила», что когда-то, в 2016 году, другая группа возглавляемая еп. Владимиром Целищевым (державшая в полной изоляции престарелого Первоиерарха РПЦЗ, исповедника митрополита Виталия) лишила епископа Анастасия сана, и вот, спустя 6 лет, решила признать это решение законным, и на этом основании устроить очередной раскол в нашей Церкви.

Цель таких людей, как агент КГБ-ФСБ Вальтер ясна, он сам её назвал – сделать всё, чтобы РПЦЗ прекратила своё существование, поэтому этот очередной запланированный раскол со стороны этих людей был вполне ожидаем.

Пошли, Боже, сил епископу Владивостокскому и Дальневосточному Анастасию выдержать это очередное искушение!»

———————

Что тут можно сказать? Только то, что Агафангел в очередной раз ни в чём не виноват. Вообще. Это всё проклятые агенты КГБ постарались. Ну а если серьёзно, то в этом коротком сообщении нет даже попытки ответить по существу на обвинения дальневосточных мирян. Попытки задуматься, а всё ли правильно было сделано. Нет, Михаил Назаров — агент КГБ и точка. Агафангел в очередной раз верен себе, посылая ругательства в адрес ушедших. Ничего, одни уйдут, но придут другие. Не так ли?

Надо сказать, что такая линия поведения, к сожалению, свойственна не одному Агафангелу (Пашковскому). В православии вообще как то не свойственно поощрять свободу мнений. «Я не согласен ни с одним словом, которое вы говорите, но готов умереть за ваше право это говорить» — эти слова, приписываемые Вольтеру, никогда не были принципом, действующим в православии. Я вот перечитывал то, как запретили в служении Николая Эшлимана и Глеба Якунина под нажимом властей и никогда в этом не раскаялись. Об этом можно почитать хотя бы в той же Православной энциклопедии. Но если тот же же Московский Патриархат довольно велик, и там просто то или иное заявления могут не заметить (или сделать вид, что не заметили). То в микроскопических «осколках» РПЦЗ, таких как РПЦЗ(А), не заметить того, что делает каждый клирик или активный мирянин не возможно, но реакция на это носит часто карикатурный характер, хотя бы потому, что деятели «истинного православия» редко имеют богословское образование, а также редко выходят за пределы своего «истинно-православного» мирка, где вокруг них сидят узкая группа их приближённых, говорящих им угоднические речи.

opentelemetry-specification/rpc.md в main · open-telemetry/opentelemetry-specification · GitHub

Статус : Экспериментальный

Этот документ определяет, как описывать удаленные вызовы процедур
(также называемые «вызовами удаленных методов» / «RMI») с интервалами.

  • Общие правила вызова удаленных процедур
    • Имя участка
    • Общие атрибуты
      • Имя службы
    • Атрибуты сервера
    • События
    • Отличие от HTTP-промежутков
  • гРПЦ
    • Атрибуты gRPC
    • Статус gRPC
    • Метаданные запросов и ответов gRPC
  • JSON RPC
    • Атрибуты JSON RPC

Общие соглашения о вызове удаленных процедур

Удаленные вызовы процедур описываются двумя отдельными интервалами: один на стороне клиента и один на стороне сервера.

Для исходящих запросов SpanKind ДОЛЖЕН быть установлен на CLIENT и для входящих запросов на SERVER .

Удаленные вызовы процедур могут быть представлены с этими семантическими соглашениями только тогда, когда имена вызываемой службы и метода известны и доступны.

Имя диапазона

Имя диапазона ДОЛЖНО быть полным именем метода RPC в формате:

 $пакет.$сервис/$метод
 

(где $service НЕ ДОЛЖЕН содержать точки, а $method НЕ ДОЛЖЕН содержать косые черты)

Если имя пакета отсутствует или неизвестно, $package. часть (включая точку) опущена.

Примеры имен диапазонов:

  • grpc.test.EchoService/Echo
  • com.example.ExampleRmiService/exampleMethod
  • MyCalcService.Calculator/Add сообщил сервер и
    MyServiceReference. ICalculator/Add сообщил клиент для вызовов .NET WCF
  • MyServiceWithNoPackage/Метод

Общие атрибуты

Атрибут Тип Описание Примеры Уровень требований
rpc.система строка Строка, идентифицирующая систему удаленного взаимодействия. См. ниже список известных идентификаторов. грпк Обязательно
rpc.service строка Полное (логическое) имя вызываемой службы, включая имя ее пакета, если применимо. [1] myservice.EchoService Рекомендуется
rpc.метод строка Имя вызываемого (логического) метода должно совпадать с частью $method в имени диапазона. [2] Пример метода Рекомендуется
сетевое. имя.узла строка Имя узла сервера RPC. [3] example.com Обязательно
сетевой одноранговый порт между Номер логического удаленного порта 80 ; 8080 ; 443 Условно требуется: См. ниже
сеть.носок.семейство строка Семейство адресов протокола, используемое для связи. инет6 ; Bluetooth Условно требуется: если и только если установлено net.sock.peer.addr .
сеть.sock.peer.addr строка Удаленный одноранговый адрес сокета: IPv4 или IPv6 для интернет-протоколов, путь для локальной связи и т. д. 127.0.0.1 ; /tmp/mysql.sock См. ниже
сеть. sock.peer.name строка Имя узла удаленного сокета. proxy.example.com Рекомендуется: [4]
net.sock.peer.port между Удаленный одноранговый порт сокета. 16456 Рекомендуется: [5]
нетто.транспорт строка Используется транспортный протокол. См. примечание ниже. ip_tcp Условно требуется: см. ниже

[1]: Это логическое имя службы с точки зрения интерфейса RPC, которое может отличаться от имени любого реализующего класса. Атрибут code.namespace может использоваться для хранения последнего (несмотря на имя атрибута, он может включать имя класса; например, класс с методом, фактически выполняющим вызов на стороне сервера, класс-заглушка клиента RPC на стороне клиента) .

[2]: Это логическое имя метода с точки зрения интерфейса RPC, которое может отличаться от имени любого реализующего метода/функции. 9Атрибут 0049 code.function может использоваться для хранения последнего (например, метод, фактически выполняющий вызов на стороне сервера, метод-заглушка клиента RPC на стороне клиента).

[3]: Может содержать IP-адрес сервера, имя DNS или имя локального сокета. Когда компонент хоста представляет собой IP-адрес, инструментам НЕ СЛЕДУЕТ выполнять обратный поиск прокси-сервера для получения DNS-имени, и СЛЕДУЕТ установить net.peer.name на IP-адрес, указанный в компоненте хоста.

[4]: ​​ Если отличается от net.peer.name и если установлено net.sock.peer.addr .

[5]: Если отличается от net.peer.port и если установлено net.sock.peer.addr .

Дополнительные требования к атрибутам: Требуется хотя бы один из следующих наборов атрибутов:

  • сеть.sock.peer.addr
  • сетевое.имя.узла

rpc.system имеет следующий список известных значений. Если применяется одно из них, то ДОЛЖНО использоваться соответствующее значение, в противном случае МОЖЕТ использоваться пользовательское значение.

Значение Описание
грпс гРПЦ
java_rmi Java RMI
dotnet_wcf .NET WCF
апач_даббо Апач Даббо

Для промежутков на стороне клиента net.peer.port требуется, если соединение основано на IP и порт доступен (он описывает порт сервера, к которому они подключаются).
Для серверных пролетов net.peer.port является необязательным (описывает порт, с которого подключается клиент).
Кроме того, настройка net.transport требуется для не-IP-подключений, таких как привязки именованных каналов.

Имя службы

В процессе сервера, получающем и обрабатывающем вызов удаленной процедуры, имя службы, указанное в rpc.service , не обязательно должно совпадать с атрибутом ресурса service.name .
Один процесс может предоставлять несколько конечных точек RPC и, таким образом, иметь несколько имен служб RPC. С точки зрения развертывания, как указано в service.* атрибутов ресурса, он будет рассматриваться как одна развернутая служба с одним service.name .
Аналогичным образом, для клиентов, отправляющих запросы RPC на сервер, имя службы, указанное в rpc.service , не должно совпадать с атрибутом span peer.service .

Например, для процесса, развернутого как QuoteService , это будет имя, которое входит в атрибут ресурса service. name , который применяется ко всему процессу.
Этот процесс может предоставить доступ к двум конечным точкам RPC, одна из которых называется 9.0049 CurrencyQuotes (= rpc.service ) с помощью метода getMeanRate (= rpc.method ) и другой конечной точки с именем StockQuotes (= rpc.service и

0 ) с двумя методами get C

0 getLastClose (= rpc.method ).
В этом примере диапазоны, представляющие клиентский запрос, должны иметь атрибут peer.service , установленный на QuoteService , а также для соответствия сервера.service.name атрибут ресурса.
Как правило, пользователю НЕ СЛЕДУЕТ устанавливать для peer.service полное имя службы RPC.

Атрибуты сервера

Атрибут Тип Описание Примеры Уровень требований
сетевое. имя.хоста строка Логическое локальное имя хоста или подобное, см. примечание ниже. локальный хост Рекомендуется
сеть.носок.семейство строка Семейство адресов протокола, используемое для связи. инет6 ; Bluetooth Условно требуется: [1]
сеть.носок.хост.адрес строка Адрес локального сокета. Полезно в случае хоста с несколькими IP-адресами. 192.168.0.1 Рекомендуется
net.sock.host.port между Номер порта локального сокета. 35555 Рекомендуется: [2]

[1]: Если отличается от inet и если установлено любое из net.sock.peer.addr или net. sock.host.addr . Потребители телеметрии ДОЛЖНЫ принимать форматы IPv4 и IPv6 для адреса в net.sock.peer.addr , если net.sock.family не установлен. Это сделано для поддержки приборов, которые следуют предыдущим версиям этого документа.

[2]: Если определено для семейства адресов и отличается от net.host.port и если установлено net.sock.host.addr .

События

Во время существования потока RPC событие для каждого сообщения, отправленного/полученного в
ДОЛЖНЫ быть созданы клиентские и серверные промежутки. В случае унарных вызовов отправляется только один
и одно полученное сообщение будет записано как для клиентского, так и для серверного интервалов.

Имя события ДОЛЖНО быть сообщением .

Атрибут Тип Описание Примеры Уровень требований
тип сообщения строка Является ли это полученным или отправленным сообщением. ОТПРАВЛЕНО Рекомендуется
сообщение.id между ДОЛЖЕН рассчитываться как два разных счетчика, начиная с 1 один для отправленных сообщений и один для полученных сообщений. [1] Рекомендуется
сообщение.compressed_size между Размер сжатого сообщения в байтах. Рекомендуется
message.uncompressed_size между Размер несжатого сообщения в байтах. Рекомендуется

[1]: Таким образом мы гарантируем, что значения будут согласованы между различными реализациями.

message.type ДОЛЖЕН быть одним из следующих:

Значение Описание
ОТПРАВЛЕНО отправлено
ПОЛУЧЕНО получил

Отличие от диапазонов HTTP

HTTP-вызовы

обычно могут быть представлены с использованием только HTTP-промежутков.
Если они обращаются к конкретной удаленной службе и методу, известным вызывающей стороне, т. е. когда это удаленный вызов процедуры, передаваемый по протоколу HTTP, rpc.* Атрибуты могут быть добавлены дополнительно в этот диапазон или в отдельный диапазон RPC, который является родительским для транспортного вызова HTTP.
Обратите внимание, что метод в этом контексте относится к вызываемой удаленной процедуре, а не к глаголу HTTP (GET, POST и т. д.).

гРПЦ

Для удаленных вызовов процедур через gRPC в этом разделе описаны дополнительные соглашения.

rpc.system ДОЛЖЕН быть установлен на "grpc" .

Атрибуты gRPC

Атрибут Тип Описание Примеры Уровень требований
rpc.grpc.status_code между Числовой код состояния запроса gRPC. 0 Обязательно

rpc.grpc.status_code ДОЛЖЕН быть одним из следующих:

Значение Описание
0 ОК
1 ОТМЕНЕН
2 НЕИЗВЕСТНО
3 INVALID_ARGUMENT
4 DEADLINE_EXCEEDED
5 НЕ НАЙДЕНО
6 УЖЕ СУЩЕСТВУЕТ
7 РАЗРЕШЕНИЕ_ОТКАЗАНО
8 РЕСУРС_ИСКЛЮЧЕН
9 FAILED_PRECONDITION
10 ПРЕРВАН
11 OUT_OF_RANGE
12 НЕРЕАЛИЗОВАННЫЙ
13 ВНУТРЕННИЙ
14 НЕДОСТУПЕН
15 ПОТЕРЯ ДАННЫХ
16 НЕ АУТЕНТИФИКАЦИЯ

Статус gRPC

Состояние диапазона ДОЛЖНО быть оставлено неустановленным для кода состояния OK gRPC и установлено на Ошибка для всех остальных.

Метаданные запросов и ответов gRPC

Атрибут Тип Описание Примеры Уровень требований
rpc.grpc.request.metadata. строка[] Метаданные запроса gRPC, — нормализованный ключ метаданных gRPC (нижний регистр, с заменой символов на _ ), значением являются значения метаданных. [1] rpc.request.metadata.my_custom_metadata_attribute=["1.2.3.4", "1.2.3.5"] Дополнительно
rpc.grpc.response.metadata. строка[] Метаданные ответа gRPC, — нормализованный ключ метаданных gRPC (нижний регистр, с заменой символов на _ ), значение — значения метаданных. [1] rpc.response.metadata.my_custom_metadata_attribute=["attribute_value"] Дополнительно

[1]: Инструментам СЛЕДУЕТ требовать явную настройку того, какие значения метаданных должны быть захвачены.
Включение всех значений метаданных запроса/ответа может представлять угрозу безопасности — явная конфигурация помогает избежать утечки конфиденциальной информации.

JSON RPC

Соглашения, характерные для JSON RPC.

rpc.system ДОЛЖЕН быть установлен на "jsonrpc" .

JSON RPC-атрибуты

Атрибут Тип Описание Примеры Уровень требований
rpc.jsonrpc.версия строка Версия протокола как в jsonrpc свойство запроса/ответа. Поскольку в JSON-RPC 1.0 это не указано, это значение можно опустить. 2,0 ; 1,0 Условно требуется: если версия отличается от версии по умолчанию ( 1.0 )
rpc.jsonrpc.request_id строка id свойство запроса или ответа. Поскольку протокол допускает, чтобы идентификатор был int, string, null или отсутствовал (для уведомлений), для простоты ожидается, что значение будет преобразовано в строку. Используйте пустую строку в случае значения null . Полностью опустите, если это уведомление. 10 ; запрос-7 ; « Рекомендуется
rpc.jsonrpc.error_code между error.code свойство ответа, если это ответ об ошибке. -32700 ; 100 Условно требуется: если ответ не успешен.
rpc.jsonrpc.error_message строка error.message свойство ответа, если это ответ об ошибке. Ошибка синтаксического анализа ; Пользователь уже существует Рекомендуется
rpc.метод строка Имя вызываемого (логического) метода должно совпадать с частью $method в имени диапазона. [1] Пример метода Обязательно

[1]: Всегда требуется для jsonrpc. Дополнительные сведения см. в примечании к общим соглашениям RPC.

Пакет

rpc — net/rpc — Пакеты Go

Package rpc предоставляет доступ к экспортированным методам объекта через
сеть или другое соединение ввода-вывода. Сервер регистрирует объект, делая его видимым
как сервис с именем типа объекта. После регистрации экспортируется
методы объекта будут доступны удаленно. Сервер может зарегистрировать несколько
объекты (услуги) разных типов, но регистрировать несколько
объекты одного типа.

Только методы, удовлетворяющие этим критериям, будут доступны для удаленного доступа;
другие методы будут игнорироваться:

  • экспортируется тип метода.
  • метод экспортируется.
  • метод имеет два аргумента, оба экспортированные (или встроенные).
  • второй аргумент метода — указатель.
  • метод имеет ошибку возвращаемого типа.

Фактически метод должен выглядеть схематично

 func (t *T) MethodName(argType T1, responseType *T2) ошибка
 

, где T1 и T2 могут быть маршалированы путем кодирования/выгрузки.
Эти требования применяются, даже если используется другой кодек.
(В будущем эти требования могут быть смягчены для пользовательских кодеков.)

Первый аргумент метода представляет аргументы, предоставленные вызывающей стороной; в
второй аргумент представляет параметры результата, которые должны быть возвращены вызывающей стороне.
Возвращаемое значение метода, если оно не равно нулю, передается обратно в виде строки, которую клиент
видит, как будто создано ошибками. Новый. Если возвращается ошибка, параметр ответа
не будет отправлен обратно клиенту.

Сервер может обрабатывать запросы по одному соединению, вызывая ServeConn. Более
обычно он создает сетевой прослушиватель и вызывает Accept или, для HTTP
прослушиватель, HandleHTTP и http. Serve.

Клиент, желающий использовать службу, устанавливает соединение, а затем вызывает
NewClient в соединении. Функция удобства Dial (DialHTTP) выполняет
оба шага для необработанного сетевого соединения (соединение HTTP). Результирующий
Объект Client имеет два метода, Call и Go, которые определяют службу и метод для
call, указатель, содержащий аргументы, и указатель для получения результата
параметры.

Метод Call ожидает завершения удаленного вызова, пока метод Go
запускает вызов асинхронно и сигнализирует о завершении с помощью Call
канал Done структуры.

Если не задан явный кодек, пакет encoding/gob используется для
транспортировать данные.

Вот простой пример. Сервер хочет экспортировать объект типа Arith:

 сервер пакетов
импортировать "ошибки"
введите структуру аргументов {
А, В между
}
тип Частная структура {
Кво, Рэм инт
}
введите Arith int
func (t *Arith) Multiply(args *Args, ответ *int) error {
*ответ = аргументы.A * аргументы.B
вернуть ноль
}
func (t *Arith) Divide(args *Args, quo *Puotient) error {
если args. B == 0 {
вернуть ошибки.Новый("делить на ноль")
}
quo.Quo = аргументы.A / аргументы.B
quo.Rem = args.A % args.B
вернуть ноль
}
 

Сервер вызывает (для службы HTTP):

 ариф := новый(ариф)
rpc.Регистр(ариф)
rpc.HandleHTTP()
л, е := net.Listen("TCP", ":1234")
если е != ноль {
log.Fatal("ошибка прослушивания:", e)
}
go http.Serve(l, nil)
 

В этот момент клиенты могут видеть службу «Arith» с методами «Arith.Multiply» и
«Ариф.Разделить». Чтобы вызвать его, клиент сначала набирает номер сервера:

 клиент, ошибка: = rpc.DialHTTP («tcp», serverAddress + «: 1234»)
если ошибка != ноль {
log.Fatal("набор номера:", ошибка)
}
 

Затем он может сделать удаленный вызов:

 // Синхронный вызов
аргументы := &server.Args{7,8}
вар ответ инт
err = client.Call("Arith.Multiply", args, &reply)
если ошибка != ноль {
log.Fatal("арифметическая ошибка:", ошибка)
}
fmt.Printf("Арифм: %d*%d=%d", args.A, args.B, ответ)
 

или

 // Асинхронный вызов
частное := новое (частное)
divCall := client. Go("Arith.Divide", аргументы, частное, ноль)
answerCall := <-divCall.Done // будет равен divCall
// проверка ошибок, печать и т. д.
 

Реализация сервера часто предоставляет простую, типобезопасную оболочку для
клиент.

Пакет net/rpc заморожен и не поддерживает новые функции.

  • Константы
  • Переменные
  • func Accept(lis net.Listener)
  • функция HandleHTTP()
  • func Register (rcvr any) ошибка
  • func RegisterName (строка имени, любой rcvr) ошибка
  • func ServeCodec (кодек ServerCodec)
  • func ServeConn(conn io.ReadWriteCloser)
  • func ServeRequest (кодек ServerCodec) ошибка
  • введите Звонок
  • тип Клиент
    • func Dial(сеть, адресная строка) (*Клиент, ошибка)
    • func DialHTTP(сеть, адресная строка) (*Клиент, ошибка)
    • func DialHTTPath(сеть, адрес, строка пути) (*Клиент, ошибка)
    • func NewClient(conn io. ReadWriteCloser) *Клиент
    • func NewClientWithCodec (кодек ClientCodec) *Клиент
    • func (client *Client) Call (строка serviceMethod, любые аргументы, любой ответ) ошибка
    • func (клиент *Клиент) Ошибка Close()
    • func (клиент *Клиент) Go(строка serviceMethod, любые аргументы, любой ответ, завершенный чан *Call) *Call
  • введите ClientCodec
  • тип Запрос
  • введите ответ
  • тип Сервер
    • функция НовыйСервер() *Сервер
    • func (server *Server) Accept(lis net.Listener)
    • func (сервер * сервер) HandleHTTP (rpcPath, строка debugPath)
    • func (server *Server) Register(rcvr any) ошибка
    • func (сервер * сервер) RegisterName (строка имени, rcvr любой) ошибка
    • func (сервер *Сервер) ServeCodec(кодек ServerCodec)
    • func (сервер *Сервер) ServeConn(conn io. ReadWriteCloser)
    • func (сервер * сервер) ServeHTTP (w http.ResponseWriter, req * http.Request)
    • func (сервер * сервер) ServeRequest (кодек ServerCodec) ошибка
  • введите ServerCodec
  • введите ServerError
    • func (e ServerError) Ошибка () строка

Посмотреть исходный код

 константа (
// Значения по умолчанию, используемые HandleHTTP
DefaultRPCPath = "/_goRPC_"
DefaultDebugPath = "/debug/rpc"
) 

Просмотр исходного кода

 var DefaultServer = NewServer() 

DefaultServer — это экземпляр *Server по умолчанию.

Просмотр исходного кода

 var ErrShutdown = errors.New("соединение закрыто") 
 func Accept(lis net.Listener) 

Accept принимает соединения на прослушивателе и обслуживает запросы
на DefaultServer для каждого входящего соединения.
Принимать блоки; вызывающий обычно вызывает его в операторе go.

 func HandleHTTP() 

HandleHTTP регистрирует обработчик HTTP для сообщений RPC на DefaultServer
на DefaultRPCPath и обработчик отладки на DefaultDebugPath.
По-прежнему необходимо вызывать http.Serve(), обычно в операторе go.

 func Register(rcvr any) ошибка 

Register публикует методы получателя на DefaultServer.

 func RegisterName(name string, rcvr any) error 

RegisterName похож на Register, но использует предоставленное имя для типа
вместо конкретного типа получателя.

 func ServeCodec(кодек ServerCodec) 

ServeCodec похож на ServeConn, но использует указанный кодек для
декодировать запросы и кодировать ответы.

 func ServeConn(conn io.ReadWriteCloser) 

ServeConn запускает DefaultServer в одном соединении.
ServeConn блокируется, обслуживая соединение до тех пор, пока клиент не повесит трубку.
Вызывающий обычно вызывает ServeConn в операторе go.
ServeConn использует формат проволочной выемки (см. пакетную выемку) на
связь. Чтобы использовать альтернативный кодек, используйте ServeCodec.
См. комментарий NewClient для получения информации о параллельном доступе.

 func ServeRequest (кодек ServerCodec) ошибка 

ServeRequest похож на ServeCodec, но синхронно обслуживает один запрос.
Он не закрывает кодек по завершении.

 тип Структура вызова {
Строка ServiceMethod // Имя службы и метода для вызова.
Args any // Аргумент функции (*struct).
Reply any // Ответ от функции (*struct).
Ошибка ошибка // После завершения статус ошибки.
Done chan *Call // Получает *Call, когда переход завершен.
} 

Call представляет активный RPC.

 тип Клиентская структура {
// содержит отфильтрованные или неэкспортированные поля
} 

Клиент представляет клиент RPC.
Может быть несколько невыполненных вызовов, связанных
с одним Клиентом, и Клиент может использоваться
несколько горутин одновременно.

 func Dial(сеть, адресная строка) (*Клиент, ошибка) 

Dial подключается к серверу RPC по указанному сетевому адресу.

 func DialHTTP(сеть, адресная строка) (*Клиент, ошибка) 

DialHTTP подключается к серверу HTTP RPC по указанному сетевому адресу.
прослушивание пути HTTP RPC по умолчанию.

 func DialHTTPath(сеть, адрес, строка пути) (*Клиент, ошибка) 

DialHTTPath подключается к серверу HTTP RPC
по указанному сетевому адресу и пути.

 func NewClient(conn io.ReadWriteCloser) *Client 

NewClient возвращает нового клиента для обработки запросов к
набор услуг на другом конце соединения.
Он добавляет буфер на сторону записи соединения, поэтому
заголовок и полезная нагрузка отправляются как единое целое.

Части подключения для чтения и записи сериализуются независимо,
поэтому блокировка не требуется. Однако каждая половина может быть доступна
одновременно, поэтому реализация conn должна защищать от
параллельное чтение или одновременная запись.

 func NewClientWithCodec(кодек ClientCodec) *Клиент 

NewClientWithCodec подобен NewClient, но использует указанный
кодек для кодирования запросов и декодирования ответов.

 функция (клиент *Клиент) Вызов (строка serviceMethod, любые аргументы, любой ответ) ошибка 

Call вызывает указанную функцию, ожидает ее завершения и возвращает статус ошибки.

 func (client *Client) Ошибка Close() 

Close вызывает метод Close базового кодека. Если соединение уже
при выключении возвращается ErrShutdown.

 func (client *Client) Go(serviceMethod string, args any, response any, done chan *Call) *Call 

Go вызывает функцию асинхронно. Он возвращает структуру Call, представляющую
призыв. Готовый канал будет сигнализировать, когда вызов будет завершен, возвращая
тот же объект вызова. Если done равно нулю, Go выделит новый канал.
Если не nil, то done должно быть буферизовано, иначе Go намеренно рухнет.

 тип интерфейса ClientCodec {
Ошибка WriteRequest(*Request, any)
Ошибка ReadResponseHeader(*Response)
Ошибка ReadResponseBody (любая)
Закрыть() ошибка
} 

ClientCodec реализует запись запросов RPC и
чтение ответов RPC для клиентской стороны сеанса RPC.
Клиент вызывает WriteRequest для записи запроса к соединению.
и вызывает пары ReadResponseHeader и ReadResponseBody.
читать ответы. Клиент вызывает Close после завершения работы с
связь. ReadResponseBody может вызываться с нулевым значением
аргумент, чтобы заставить тело ответа быть прочитанным, а затем
отброшен.
См. комментарий NewClient для получения информации о параллельном доступе.

 тип Структура запроса {
Строка ServiceMethod // формат: "Service.Method"
Seq uint64 // порядковый номер, выбранный клиентом
// содержит отфильтрованные или неэкспортированные поля
} 

Запрос — это заголовок, записываемый перед каждым вызовом RPC. Он используется внутрь
но задокументировано здесь как помощь в отладке, например, при анализе
сетевой трафик.

 тип ответа struct {
Строка ServiceMethod // повторяет строку запроса
Seq uint64 // повторяет запрос
Строка ошибки // ошибка, если есть.
// содержит отфильтрованные или неэкспортированные поля
} 

Ответ — это заголовок, записываемый перед каждым возвратом RPC. Он используется внутрь
но задокументировано здесь как помощь в отладке, например, при анализе
сетевой трафик.

 тип Структура сервера {
// содержит отфильтрованные или неэкспортированные поля
} 

Сервер представляет сервер RPC.

 func NewServer() *Server 

NewServer возвращает новый сервер.

 func (server *Server) Accept(lis net.Listener) 

Accept принимает соединения на прослушивателе и обслуживает запросы
для каждого входящего соединения. Принимать блоки до тех пор, пока слушатель
возвращает ненулевую ошибку. Вызывающий обычно вызывает Accept в
иди заявление.

 func (server *Server) HandleHTTP(rpcPath, debugPath string) 

HandleHTTP регистрирует обработчик HTTP для сообщений RPC на rpcPath,
и обработчик отладки на debugPath.
По-прежнему необходимо вызывать http.Serve(), обычно в операторе go.

 func (server *Server) Register(rcvr any) error 

Register публикует на сервере набор методов
значение получателя, удовлетворяющее следующим условиям:

  • экспортный метод экспортного типа
  • два аргумента, оба экспортированного типа
  • второй аргумент - указатель
  • одно возвращаемое значение, ошибка типа

Возвращает ошибку, если приемник не является экспортируемым типом или имеет
нет подходящих методов. Он также регистрирует ошибку, используя журнал пакетов.
Клиент обращается к каждому методу, используя строку вида «Тип.Метод»,
где Type — конкретный тип получателя.

 func (сервер * сервер) RegisterName (строка имени, rcvr любой) ошибка 

RegisterName похож на Register, но использует указанное имя для типа.
вместо конкретного типа получателя.

 func (сервер *Сервер) ServeCodec(кодек ServerCodec) 

ServeCodec похож на ServeConn, но использует указанный кодек для
декодировать запросы и кодировать ответы.

 func (сервер *Server) ServeConn(conn io.ReadWriteCloser) 

ServeConn запускает сервер по одному соединению.
ServeConn блокируется, обслуживая соединение до тех пор, пока клиент не повесит трубку.
Вызывающий обычно вызывает ServeConn в операторе go.
ServeConn использует формат проволочной выемки (см. пакетную выемку) на
связь. Чтобы использовать альтернативный кодек, используйте ServeCodec.
См. комментарий NewClient для получения информации о параллельном доступе.

 func (сервер *Server) ServeHTTP(w http.ResponseWriter, req *http.Request) 

ServeHTTP реализует http.Handler, который отвечает на запросы RPC.

 func (сервер *Сервер) ServeRequest(кодек ServerCodec) ошибка 

ServeRequest аналогичен ServeCodec, но синхронно обслуживает один запрос.
Он не закрывает кодек по завершении.

 тип интерфейса ServerCodec {
Ошибка ReadRequestHeader(*Request)
Ошибка ReadRequestBody (любая)
Ошибка WriteResponse(*Response, any)
// Close может вызываться несколько раз и должна быть идемпотентной.
Закрыть() ошибка
} 

ServerCodec реализует чтение запросов RPC и запись
Ответы RPC для серверной части сеанса RPC.
Сервер вызывает ReadRequestHeader и ReadRequestBody попарно.
для чтения запросов от соединения, и он вызывает WriteResponse для
написать ответ обратно. Сервер вызывает Close после завершения работы с
связь. ReadRequestBody может вызываться с нулевым значением
аргумент, чтобы заставить тело запроса быть прочитанным и отброшенным.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Related Posts