Deploy the RTR Java service for NBS 7
This page walks through deploying the real-time reporting (RTR) Java service using the reporting-pipeline-service Helm chart from the NEDSS-Helm repository for NBS version 7.13. The service processes streamed events from Kafka and loads domain-specific reporting data.
Deploying the Java service is a two-phase process. The first deployment seeds the nrt_* caching tables that RTR depends on. Once seeding is complete, you upgrade the release with post-processing enabled.
Schedule a maintenance window and notify users that NBS will be unavailable. Database changes made while the RTR service is being deployed might not propagate to your reporting database.
On this page
- Prerequisites
- Deploy the RTR Java service using Helm
- Monitor seeding progress
- Enable post-processing
- Next steps
Prerequisites
This page assumes you’ve completed Before you begin for the microservices phase and each microservice deployment page before this one, in order. The page immediately before this one is Kafka connector.
Confirm the following before you continue:
- You are connected to the correct Kubernetes cluster. Run
kubectl config current-contextto confirm. - You have your database credentials and domain values available. See the Helm values reference if you need help determining any values.
Deploying the Java service takes significant time and database space. Before you deploy, verify that the Kafka cluster you created in Provision cloud environment is scaled for your database size. An undersized Kafka cluster can cause the deployment to fail.
Deploy the RTR Java service using Helm
Complete the following steps to deploy the reporting-pipeline-service Helm chart from the charts/reporting-pipeline-service/ directory of your cloned NEDSS-Helm repository:
- Search
values.yamlforEXAMPLEand fill in your environment-specific values. See the Helm values reference for help determining values. -
Confirm that post-processing is disabled in
values.yamlfor the initial deployment:featureFlag: postProcessingEnable: "false" -
Install the Helm chart:
helm install -f reporting-pipeline-service/values.yaml reporting-pipeline-service ./reporting-pipeline-service/ -
Verify the pods are running:
kubectl get deployment reporting-pipeline-serviceExpected output:
NAME READY UP-TO-DATE AVAILABLE AGE reporting-pipeline-service 1/1 1 1 16m
Monitor seeding progress
The /actuator/lag endpoint reports how far behind the service is in consuming its Kafka topics. Use it to determine when initial seeding is complete.
Retrieve information on reporting-pipeline-service lag in your browser. Replace <exampledomain> with your actual domain (see Deploy Traefik ingress controller):
https://data.<exampledomain>/reporting-pipeline-svc/actuator/lag
When all messagesQueued values are 0, seeding is complete.
Enable post-processing
After seeding is complete, upgrade the release with post-processing enabled:
-
Update
values.yamlto enable post-processing:featureFlag: postProcessingEnable: "true" -
Upgrade the release:
helm upgrade -f reporting-pipeline-service/values.yaml reporting-pipeline-service ./reporting-pipeline-service/ -
Verify the pods restarted cleanly:
kubectl rollout status deployment/reporting-pipeline-service kubectl get deployment reporting-pipeline-service -
Confirm the service is healthy. Replace
<exampledomain>with your actual domain (see Deploy Traefik ingress controller):https://data.<exampledomain>/reporting-pipeline-svc/actuator/health
Next steps
Continue to Validate RTR installation.