010
Установка компонента MyBPM Cons1
011
012
После установки компонентов API и WEB платформа ещё не
013 функционирует в полной мере. Необходимо наладить синхронизацию
014 различных её модулей между собой с помощью Apache Kafka. Для этого
015 нужно поднять ещё несколько компонентов MyBPM Cons.
016
017
Файл: 30-mybpm-cons1.yaml
018
019
020 apiVersion: apps/v1
021 kind: Deployment
022 metadata:
023 name: mybpm-cons1
024 labels:
025 app: mybpm-cons1
026 namespace: crm-prod
027 spec:
028 selector:
029 matchLabels:
030 app: mybpm-cons1
031 replicas: 1
032 template:
033 metadata:
034 labels:
035 app: mybpm-cons1
036 spec:
037 nodeSelector:
038 mybpm-cons1: ok
039 containers:
040 - name: main
041 image: hub.mybpm.kz/mybpm-api-release:4.24.18.7 # здесь нужно указать актуальную версию
042 imagePullPolicy: IfNotPresent
043 resources:
044 requests:
045 memory: "3Gi"
046 limits:
047 memory: "3Gi"
048 ports:
049 - containerPort: 8080
050 env:
051 - { name: MYBPM_JAVA_OPTS, value: "-Xmx2Gi -Xms2Gi" }
052 - { name: MYBPM_ALL_KAFKA_NOTIFICATIONS_OFF, value: "true" }
053 - { name: MYBPM_CONSUMER_DIR, value: "cons1" }
054 - { name: MYBPM_COMPANY_CODE, value: "greetgo" }
055 - { name: MYBPM_LICENCE_NUMBER, value: "6120b632-f91a-416d-a7d0-180ffd7ce380" } # поставьте сюда Ваш номер лицензии
056 - { name: MYBPM_MONGO_SERVERS, value: "mongo:27017" } # поставьте сюда правильный доступ к MongoDB
057 - { name: MYBPM_ZOOKEEPER_SERVERS, value: "zookeeper-1:2181" } # поставьте сюда правильный доступ к Zookeeper
058 - { name: MYBPM_KAFKA_SERVERS, value: "kf-1:9092,kf-2:9092,kf-3:9092" } # поставьте сюда правильный доступ к Kafka
059 - { name: MYBPM_AUX1_HOST, value: "pg-aux1-host" }# поставьте сюда правильный доступ к PG
060 - { name: MYBPM_AUX1_PORT, value: "5432" }
061 - { name: MYBPM_AUX1_DB_NAME, value: "mybpm_aux1" }
062 - { name: MYBPM_AUX1_USER_NAME, valueFrom: { secretKeyRef: { name: pg_mybpm_aux1, key: username } } }
063 - { name: MYBPM_AUX1_PASSWORD, valueFrom: { secretKeyRef: { name: pg_mybpm_aux1, key: password } } }
064 - { name: MYBPM_ELASTIC_SEARCH_SERVERS, value: "elastic:9200" }
065 - { name: MYBPM_NODE_NAME, valueFrom: { fieldRef: { fieldPath: spec.nodeName } } }
066 - { name: MYBPM_MEMORY_LIMIT, valueFrom: { resourceFieldRef: { containerName: main, resource: limits.memory } } }
067 - { name: MYBPM_NODE_NAME, valueFrom: { fieldRef: { fieldPath: spec.nodeName } } }
068 startupProbe:
069 httpGet: { path: /web/health, port: 8080 }
070 initialDelaySeconds: 15
071 failureThreshold: 175
072 periodSeconds: 4
073 readinessProbe:
074 httpGet: { path: /web/health, port: 8080 }
075 initialDelaySeconds: 10
076 periodSeconds: 4
077 livenessProbe:
078 httpGet: { path: /web/health, port: 8080 }
079 initialDelaySeconds: 13
080 periodSeconds: 4
081 volumeMounts:
082 - { name: log-dir, mountPath: "/var/log/mybpm" }
083 volumes:
084 - name: log-dir
085 #... определение этого volume
086
087
088
089
Отличие данного файла от api (10-mybpm-api.yaml тут) в следующем:
091
092
093 - MYBPM_ALL_KAFKA_NOTIFICATIONS_OFF - здесь отключены оповещения
094 - они нужны только для API, где обслуживаются пользователи, а к
095 этому серверу пользователи не подключаются поэтому здесь это не
096 нужно
097
098 - MYBPM_ALL_CONSUMERS_OFF - данная переменная убрана, значит
099 получатели кафки запускаются, что нам и нужно здесь
100
101 - MYBPM_CONSUMER_DIR=cons1 - эта переменная определяет директорию
102 в конфигурационной среде, в которой настраиваются получатели кафки.
103 Здесь подробнее описана настройка получателей кафки: Настройка
105 кафка-получателей
106
107
108
Масштабирование в ширину - параметр
109 replicas
110
111
Обратите внимание, что в yaml-файле есть параметр:
112
113
114 replicas
115
116
117
118
119
120
Он обозначает количество подов, которые надо запустить. Если
121 один под не справляется с текущей нагрузкой, то можно этот параметр
122 увеличить. Тогда Kubernetes запустит дополнительные поды с этим
123 сервером, который будет отдельными потоками обслуживать получатели
124 кафки.
125
126
Подробнее смотрите в разделе: Настройка
128 кафка-получателей пункт "Настройка масштабирования кафка
129 получателей"
130
131
132
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.GeneratedMethodAccessor7.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