mybpm!
Скачать в формате: PDF pdf DOCX word

Установка компонента MyBPM Cons1

После установки компонентов API и WEB платформа ещё не функционирует в полной мере. Необходимо наладить синхронизацию различных её модулей между собой с помощью Apache Kafka. Для этого нужно поднять ещё несколько компонентов MyBPM Cons.

Файл: 30-mybpm-cons1.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: mybpm-cons1
  labels:
    app: mybpm-cons1
  namespace: crm-prod
spec:
  selector:
    matchLabels:
      app: mybpm-cons1
  replicas: 1
  template:
    metadata:
      labels:
        app: mybpm-cons1
    spec:
      nodeSelector:
        mybpm-cons1: ok
      containers:
        - name: main
          image: hub.mybpm.kz/mybpm-api-release:4.24.18.7 # здесь нужно указать актуальную версию
          imagePullPolicy: IfNotPresent
          resources:
            requests:
              memory: "3Gi"
            limits:
              memory: "3Gi"
          ports:
            - containerPort: 8080
          env:
            - { name: MYBPM_JAVA_OPTS, value: "-Xmx2Gi -Xms2Gi" }
            - { name: MYBPM_ALL_KAFKA_NOTIFICATIONS_OFF, value: "true" }
            - { name: MYBPM_CONSUMER_DIR, value: "cons1" }
            - { name: MYBPM_COMPANY_CODE, value: "greetgo" }
            - { name: MYBPM_LICENCE_NUMBER, value: "6120b632-f91a-416d-a7d0-180ffd7ce380" } # поставьте сюда Ваш номер лицензии
            - { name: MYBPM_MONGO_SERVERS, value: "mongo:27017" } # поставьте сюда правильный доступ к MongoDB
            - { name: MYBPM_ZOOKEEPER_SERVERS, value: "zookeeper-1:2181" } # поставьте сюда правильный доступ к Zookeeper
            - { name: MYBPM_KAFKA_SERVERS, value: "kf-1:9092,kf-2:9092,kf-3:9092" } # поставьте сюда правильный доступ к Kafka
            - { name: MYBPM_AUX1_HOST, value: "pg-aux1-host" }# поставьте сюда правильный доступ к PG
            - { name: MYBPM_AUX1_PORT, value: "5432" }
            - { name: MYBPM_AUX1_DB_NAME, value: "mybpm_aux1" }
            - { name: MYBPM_AUX1_USER_NAME, valueFrom: { secretKeyRef: { name: pg_mybpm_aux1, key: username } } }
            - { name: MYBPM_AUX1_PASSWORD, valueFrom: { secretKeyRef: { name: pg_mybpm_aux1, key: password } } }
            - { name: MYBPM_ELASTIC_SEARCH_SERVERS, value: "elastic:9200" }
            - { name: MYBPM_NODE_NAME, valueFrom: { fieldRef: { fieldPath: spec.nodeName } } }
            - { name: MYBPM_MEMORY_LIMIT, valueFrom: { resourceFieldRef: { containerName: main, resource: limits.memory } } }
            - { name: MYBPM_NODE_NAME, valueFrom: { fieldRef: { fieldPath: spec.nodeName } } }
          startupProbe:
            httpGet: { path: /web/health, port: 8080 }
            initialDelaySeconds: 15
            failureThreshold: 175
            periodSeconds: 4
          readinessProbe:
            httpGet: { path: /web/health, port: 8080 }
            initialDelaySeconds: 10
            periodSeconds: 4
          livenessProbe:
            httpGet: { path: /web/health, port: 8080 }
            initialDelaySeconds: 13
            periodSeconds: 4
          volumeMounts:
            - { name: log-dir, mountPath: "/var/log/mybpm" }
      volumes:
        - name: log-dir
          #... определение этого volume

Отличие данного файла от api (10-mybpm-api.yaml тут) в следующем:

Масштабирование в ширину - параметр replicas

Обратите внимание, что в yaml-файле есть параметр:

replicas

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

Подробнее смотрите в разделе: Настройка кафка-получателей пункт "Настройка масштабирования кафка получателей"