java.lang.RuntimeException: wXb6Vnl31u :: Ошибка для HTML= 001 003 004 005 006 007 008 009
010

1) Установка и настройка платформы MyBPM

011 012

Перед установкой платформы MyBPM необходимо выбрать топологию 013 среды, где будет устанавливаться платформа. Топология определяется 014 следующими факторами:

015 016
    017
  1. Степень отказоустойчивости (как часто система находиться в 018 рабочем состоянии и долго ли сбоит);
  2. 019 020
  3. Производительные ресурсы (количество серверов, их мощность, 021 наличие RAID-массивов).
  4. 022 023
  5. Степень безопасности хранения данных (нужно ли данные шифровать 024 или достаточно только шифровать передачу данных)
  6. 025
026 027

1.1) Степень отказоустойчивости

028 029

Степень отказоустойчивости определяется формулой, которая 030 называется формулой отказоустойчивости на систему.

031 032

Формула отказоустойчивости на систему состоит из трёх индексов: 033 D, H и А разделённых дефисом.

034 035

Индекс D определяет в какие дни недели необходимо обеспечить 036 функционирование системы, и может иметь следующие значения:

037 038
    039
  1. D7 - Постоянная работа, т.е. 7 дней в неделю.
  2. 040 041
  3. D5 - Рабочие дни с понедельника по пятницу.
  4. 042
043 044

Индекс H определяет в какие часы дня необходимо обеспечить 045 работу системы, и может иметь следующие значения:

046 047
    048
  1. H24 - Система работает полные сутки - 24 часа
  2. 049 050
  3. H8 - Система работает в рабочее время, с 9:00 до 18:00
  4. 051
052 053

Индекс А определяет частоту простоев, и может иметь следующие 054 значения:

055 056
    057
  1. A0 - Обеспечена работа без простоев (но ошибки 058 возможны)
  2. 059 060
  3. A5 - С вероятными простоями не больше 5 061 часов
  4. 062 063
  5. A24 - С вероятными простоями не больше 064 суток
  6. 065
066 067

Например, индекс отказоустойчивости W5-D8-A5 обозначает работу 068 системы в рабочее время с 9 до 18 с возможными простоями не больше 069 нескольких часов.

070 071

Самый жёсткий индекс: D7-H24-A0 - 24/7 без простоев. Самый 072 лёгкий индекс: D5-H8-A24 - рабочие дни в рабочее время с 073 возможностью простоя до суток.

074 075

1.2) Производительные ресурсы

076 077

Производительные ресурсы зависят:

078 079

1) от количества пользователей системы; 2) от количества данных 080 в системе; 3) от количества процессов работающих одновременно; 4) 081 от индекса А в формуле отказоустойчивости.

082 083

1.3) Степень безопасности хранения данных

084 085

Есть две степени безопасности хранение данных:

086 087

1) Хранение на диске в открытом виде; 2) Шифрование диска.

088 089

1.4) Топология

090 091

1.4.1) Общие сведения о компонентах

092 093

Топология выбирается в зависимости от производительных ресурсов, 094 индекса А в степени устойчивости и степени безопасности хранения 095 данных.

096 097

Платформа включает в себя следующие компоненты:

098 099

1) MyBPM Web 2) MyBPM API 3) Apache Kafka 4) Apache Zookeeper 5) 100 MongoDB 6) ElasticSearch 7) PostgreSQL

101 102

Пользователи с помощью браузера подключаются к компоненту MyBPM 103 Web (или просто Web-компонент), который отображает пользователю 104 графический интерфейс посредством динамического HTML и JavaScript. 105 Web-компонент в свою очередь обращается к компоненту MyBPM API (или 106 просто API-компонент). API-компонент представляет собой 107 state-less-приложение на основе Boot Spring Framework. Он в свою 108 очередь обращается одновременно к первым пяти компонентам.

109 110

Компонент Apache Kafka (или просто кафка) используется для 111 хранения истории изменений в системе и как брокер сообщений.

112 113

Компонент Apache Zookeeper (или просто зукипер) используется для 114 хранения конфигурации системы и для синхронизации данных в 115 Кафке.

116 117

Компонент MongoDB (или просто монго) используется для хранения 118 оперативных данных, структуры данных и реализации некоторых 119 вспомогательных механизмов.

120 121

Компонент ElasticSearch (или просто эластик) используется для 122 поиска данных.

123 124

Компонент PostgreSQL (или просто постгрес) используется для 125 реализации различных вспомогательных механизмов.

126 127

1.4.2) Топология и установка зукипера и кафки

128 129

Имеются топологии зукипера:

130 131

1) Zoo1 - одна инстанция зукипера (см. Установка Zookeeper с 133 топологией Zoo1); 2) Zoo3 - три инстанции зукипера как один 134 кластер (см. Установка 135 Zookeeper с топологией Zoo3).

136 137

Имеются топологии кафки:

138 139

1) Kafka1-F1 - одна инстанция с фактором репликации один (см. Установка Kafka по 141 топологии Kafka1-F1); 2) Kafka3-F2 - три инстанции как один 142 кластер с фактором репликации два (см. Установка Kafka по 144 топологии Kafka3-F2).

145 146

1.4.3) Топология и установка монги

147 148

Имеются топологии монги:

149 150

1) Mongo1-RS1 - одна инстанция как одна группа репликации rs1 151 (см. Установка монги по 152 топологии Mongo1-RS1) 2) Mongo3-RS1 - три инстанции как одна 153 группа репликации rs1 (см. Установка монги по топологии 155 Mongo3-RS1).

156 157

1.4.4) Топология и установка эластика

158 159

Имеются топологии эластика:

160 161

1) Elastic1-F1 - одна инстанция с фактором репликации один Установка эластика по 163 топологии Elastic1-F1; 2) Elastic3-F2 - три инстанции как один 164 кластер с фактором репликации два Установка эластика по 166 топологии Elastic3-F2

167 168

1.4.4) Топология и установка постгреса

169 170

Имеются топологии постгреса:

171 172

1) PG1 - один сервер без репликации; 2) PG1-R1-MAN - один 173 сервер-мастер и один сервер репликации с ручной активацией реплики; 174 3) PG1-R2-AUTO - один сервер-мастер и два сервера репликации с 175 автоматической активацией реплики как мастера.

176 177

1.5) Топология и установка MyBPM API и 178 Web

179 180

MyBPM API можно запускать в трёх режимах:

181 182

1) MyBPM-API-Consumer-mix - смешанный режим - он обрабатывает 183 API-запросы и сообщения кафки. 2) MyBPM-API-сервиса - он отвечает 184 за обработку API-запросов как со стороны MyBPM-Web так и сторонними 185 системами; 3) MyBPM-Consumer-обработчик - он отвечает за обработку 186 сообщений от кафки;

187 188

MyBPM-API-Consumer-mix обозначается буквой M MyBPM-API-сервис 189 обозначается буквой A MyBPM-Consumer-обработчик обозначается буквой 190 C

191 192

Формула топологии API и Web состоит из нескольких частей 193 разделённых дефисом:

194 195
196  [Основа]:MN-AN-CN-WN
197  
198  
199  
200  
201 202

Где N - это число от 0 и больше. Букву с нулём можно не писать, 203 а можно писать. W - с нулём не бывает

204 205

[Основа] - это применяемая виртуализация. Может принимать одно 206 из двух значений:

207 208

1) Do - Docker - приложение запускается на docker с 209 использованием docker-compose; 2) Ku - Kubernetes - приложение 210 запускается в кластере Kubernetes.

211 212

Например, формула: Do:M1-W1 - обозначает, что система поднимает 213 одну инстанцию в смешанном режиме (MyBPM-API-Consumer-mix) с 214 помощью docker-compose на докере.

215 216

Например, формула: Ku:A2-C3-W2 - обозначает, что система 217 разворачивается в кластере Kubernetes и запускает два 218 MyBPM-API-инстанции, три обработчика сообщений кафки 219 (MyBPM-Consumer) и два веб-модуля MyBPM Web.

220 221

1.5) Выбор топологии по предоставленным 222 серверам.

223 224

Платформу можно установить на следующих вариантах наборов 225 серверов:

226 227

Вариант 1

228 229

Один сервер:

230 231 238 239

Тут нужно выбирать формулу платформы: Do:M1-W1 (Zoo1, Kafka1-F1, 240 Mongo1-RS1, Elastic1-F1, PG1) Степень отказоустойчивости: от 241 D5-H8-A24 до D7-H24-A5. Индекс A0 на одном сервере невозможен.

242 243

Вариант 2

244 245

Три сервера. Каждый минимум

246 247 254 255

Тут нужно выбирать формулу платформы:

256 257
258  Ku:M3-W2 (Zoo3, Kafka3-F2, Mongo3-RS1, Elastic3-F2, PG1-R1-MAN или PG1-R2-AUTO)
259  
260  
261  
262  
263 264

Степень отказоустойчивости:

265 266 271 272

Вариант 3

273 274

Три сервера для Zookeeper и Kafka

275 276 283 284

Три сервера для MongoDB

285 286 293 294

Три сервера для ElasticSearch

295 296 303 304

Четыре сервера для PostgreSQL и MyBPM API и Web

305 306 313 314

Тут выбирается формула платформы:

315 316
317  Ku:M3-W2 (Zoo3, Kafka3-F2, Mongo3-RS1, Elastic3-F2, PG1-R2-AUTO)
318  
319  
320  
321
322 323 at kz.greetgo.md_reader.util.MdUtil.xmlTextToDoc(MdUtil.java:80) at kz.greetgo.md_reader.core.MdConverter.prepareHtmlFileFrom(MdConverter.java:136) at kz.greetgo.md_reader.core.MdConverter.convert(MdConverter.java:208) at kz.greetgo.md_reader.controller.RenderController.downloadToc(RenderController.java:360) at kz.greetgo.md_reader.controller.RenderController.request(RenderController.java:108) at jdk.internal.reflect.GeneratedMethodAccessor3.invoke(Unknown Source) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:568) at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:207) at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:152) at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118) at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:884) at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:797) at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1081) at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:974) at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1011) at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903) at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564) at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885) at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) at kz.greetgo.md_reader.interceptors.TextReplaceFilter.doFilter(TextReplaceFilter.java:36) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:166) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:341) at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390) at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63) at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:894) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1741) at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52) at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.base/java.lang.Thread.run(Thread.java:833) Caused by: java.io.IOException: Server returned HTTP response code: 429 for URL: http://www.w3.org/TR/xhtml1/DTD/xhtml-lat1.ent at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:2000) at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1589) at java.xml/com.sun.org.apache.xerces.internal.impl.XMLEntityManager.setupCurrentEntity(XMLEntityManager.java:677) at java.xml/com.sun.org.apache.xerces.internal.impl.XMLEntityManager.startEntity(XMLEntityManager.java:1397) at java.xml/com.sun.org.apache.xerces.internal.impl.XMLEntityManager.startEntity(XMLEntityManager.java:1333) at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDTDScannerImpl.startPE(XMLDTDScannerImpl.java:732) at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDTDScannerImpl.skipSeparator(XMLDTDScannerImpl.java:2101) at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDTDScannerImpl.scanDecls(XMLDTDScannerImpl.java:2064) at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDTDScannerImpl.scanDTDExternalSubset(XMLDTDScannerImpl.java:299) at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$DTDDriver.dispatch(XMLDocumentScannerImpl.java:1165) at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$DTDDriver.next(XMLDocumentScannerImpl.java:1040) at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$PrologDriver.next(XMLDocumentScannerImpl.java:943) at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:605) at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:542) at java.xml/com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:889) at java.xml/com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:825) at java.xml/com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141) at java.xml/com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:247) at java.xml/com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:342) at java.xml/javax.xml.parsers.DocumentBuilder.parse(DocumentBuilder.java:122) at kz.greetgo.md_reader.util.MdUtil.xmlTextToDoc(MdUtil.java:71) ... 48 more