I am very new to Elastic APM and not sure how it can support different frameworks. I can see that from the documentation APM supports Spring Boot. I have tested a Spring Boot application with the APM and it looks promising. I was wondering if APM supports Spring Cloud Stream as well. Spring Cloud Stream provides Event Driven Architecture by using Spring Boot and messaging middleware. Middleware can be Kafka, RabbitMQ, etc.
I am not familiar with what is Elastic APM, but if it says it supports Spring Boot, then it means it supports any spring-boot-based framework which Spring Cloud Stream is.
Related
I found these two docs in Spring Azure Documentation
https://learn.microsoft.com/en-us/azure/developer/java/spring-framework/configure-spring-cloud-stream-binder-java-app-with-service-bus
https://learn.microsoft.com/en-us/azure/developer/java/spring-framework/configure-spring-boot-starter-java-app-with-azure-service-bus
What is the difference between them? If there are other options, please suggest them!
I am using spring boot with Kubernetes and Eventhub. To connect with Azure Eventhub i use spring cloud stream. What is the math to determine the number of pods assuming non reactive spring boot application with apache tomcat?
Edit 1: to reframe my question, how do you factor in spring boot performance , request rate , user count, etc while scaling the pods?
In general the number of pods can be managed with a Deployment in Kubernetes. For more information you can see here kubernetes.io. In a Deployment you tell Kubernetes how many Replicas you want, which means how many Pods should be running. I don't know what you mean with non reactive spring boot application with apache tomcat. I also don't know about spring cloud stream.
I haven't seen any example of combining the two, even though it makes sense they'll work together (because of being both subprojects of Spring Cloud). I want to use Spring Cloud Stream (Reactive Processing) for reading from Kafka and writing to MongoDB with the Reactive Mongo driver. Can I use Spring Cloud Config and Spring Cloud Kubernetes for a remote git configuration server, even though the application is an event-driven application and not a requests-based API?
It's pretty unclear how to plug these Kubernetes and config projects into Spring Cloud Stream, and in general, it's unclear to me if all of the other Spring Cloud projects can work with Spring Cloud Stream reactively. For instance, I couldn't also find a reference for using Spring Cloud Sleuth & Zipkin with Spring Cloud Stream. Can someone make it clearer for me and reference code examples if exists?
Understand that Apache NiFi could integrate with Spring as shown in SpringOne Platform 2016 Replay: Spring with ApacheNiFi. NiFi uses SpringContextProcessor to load Spring XML application context.
Question: Could NiFi integrate with Spring Boot? Specifically, could NiFi processor flows to a processor which calls a Spring Boot app, and then flows back to a NiFi processor? If so, is there any sample to demonstrate it?
Note: This integration is NOT about NiFi calling a Spring Boot REST API as shown in Spring Boot 2.0 on ACID : Integrating REST Microservices with Apache NiFi.
Note: This integration is NOT about NiFi calling a Spring Boot REST API as shown in Spring Boot 2.0 on ACID : Integrating REST Microservices with Apache NiFi.
REST is the only integration pattern here between Spring Boot apps and NiFi. The processor your referenced is good for using Spring components, but Spring Boot itself is a full application framework and would take a significant amount of effort to integrate.
The Nifi flow could use the InvokeHTTP processor to call a REST API which is implemented as your spring boot application.
I think you should check this Processor. SpringContextProcessor.
SpringContextProcessor – allows integration of processes encapsulated
in Spring Application Context to run as NiFi processor by becoming a
runtime host for an instance of Spring Application Context.
There is a demo video. It's very helpful
Official Apache Nifi SpringContextProcessor Documentation
We want to integrate legacy grails 2.4 and java7 application to our microservices infrastructure. We use spring cloud netflix, Camden.SR4 release and java8 in microservices setup. We use zuul, eureka, config service.
I know that with grails 3 this task is relatively easy, but currently we cant do that.
The biggest question is how can I register grails 2.4 app in Eureka.
Also, we don't want to use sidecar at the moment.
Spring Cloud requires Spring Boot. There's nothing keeping you from using the netflix eureka libraries directly.
https://github.com/Netflix/eureka/blob/master/eureka-examples/src/main/java/com/netflix/eureka/ExampleEurekaClient.java