Spring Batch without Spring Cloud Data Flow - java

I have a Spring Boot application that uses Spring Batch. I want now to implement an admin panel to see all job statuses. For this, Spring has "spring-batch-admin" But I see that is deprecated long time ago:
The functionality of Spring Batch Admin has been mostly duplicated
and
expanded upon via Spring Cloud Data Flow and we encourage all users to
migrate to that going forward.
But then Spring Cloud Data Flow says:
Pipelines consist of Spring Boot apps, built using the Spring Cloud
Stream or Spring Cloud Task microservice frameworks
So in order to use this functionality do I really need to convert my spring boot app to a microservice? Isn't this an overkill just to see some batch statuses? Also I can not install docker on my production server(for various reasons) Can I still use Spring Cloud Data Flow without docker?

Yes, spring boot batch should be wrapped as spring cloud task, which should not be too complicated.
If Docker does not suit your needs - https://docs.spring.io/spring-cloud-dataflow/docs/current/reference/htmlsingle/#getting-started-local-deploying-spring-cloud-dataflow

Related

What is the proper way to implement OAuth2 Client and AuthServer in Spring Cloud (Microservice Architecture)

I was learning Microservice architecture from Spring Microservices In Action book.
As one of things I wanted to migrate examples which were built on Spring Boot 1.4.4 and Spring Cloud Camden.SR5 to Spring Boot 2.1.6 and Spring Cloud Greenwich.SR1.
Now, I'm having problems with migrating of OAuth2 Auth server and resource servers since Spring decided to change packages/placement of classes and I feel completly lost since nothing seems to work.
Documentation seems to be splitted into SpringBoot/SpringSecurity/SpringOAuth2 depedencies.
What is the proper way of implementing OAuth2 AuthServer and ResourceServer in current (2.1.6) version of SpringBoot with Spring cloud Greenwich?

Can we combine Google App Engine Cloud Endpoints and Spring Boot REST Web Service

I had written a Google App Engine application two years back with App Engine Cloud Endpoints as well as Datastore (Java application).
Now, I have to integrate an application which is written in Spring Boot.
After integration, my expectation is that Google App Engine Cloud Endpoints should work fine as well as the Spring Boot application.
More info: Integration means, two years back I had written an application using this sample project:
https://github.com/GoogleCloudPlatform/java-docs-samples/tree/7f5772f91a203ce266804cfbe89429e2bb026273/appengine/endpoints-v1-helloworld
Now, I have a Spring Boot application which is similar to this:
https://github.com/GoogleCloudPlatform/getting-started-java/tree/master/appengine-standard-java8/springboot-appengine-standard/src/main/java/com/example/appengine/demos/springboot
My question: Is it possible like this?
If you want to use the management features of Endpoints with a Spring Boot application, this is officially supported on App Engine Flex. It's theoretically possible on App Engine Standard, but is not a supported scenario. If you want an application that is using the API framework and Spring Boot, I suppose it is possible, though I don't know why you would want to use two different web frameworks. It would be far more efficient to use one or the other.

Overhead in Spring Batch

I have a Restful microservice that uses Spring-Boot and Spring-Batch. When I run it locally it uses H2 database. Sending requests to microservice, I see the Spring Batch serializes the context of Job. Using a tool for profiling I see the microservice stays too much on this serialization.
Table used: BATCH_JOB_EXECUTION_CONTEXT.
Call graph:
Do you have any idea how the serialization of context can be disabled?
Thank you

Monitor Endpoint using Spring Framework

I'm trying to find an out-of-the-box health check for my spring app. However, I can only find support for Spring Actuator. I'm not able to use Spring Actuator because my application is a Spring application and not a Spring boot app. Is there another library that I could make use of without having to write my own? I would ideally want an endpoint that could possibly give me data about whether my DB is up and possibly some of the java opts passed into that particular node

spring boot monitoring in practice

spring boot actuator exposes /metrics endpoints. but it produces a value only when combined with monitoring tools, diagrams, alerting etc. so:
does spring-boot provides support for push-based metrics collection? if so, what's the tool?
or maybe there are some production-ready tools (with service registry etc) that work with spring-boot in pull-based manner and actually use the /metrics endpoint? for example prometheus perfectly discovers all EC2 instances but is incompatible with spring boot metrics (counters and format).
so is there any real world, production ready tools that can be used out of the box? or we're not there yet?

Categories