Spring Boot (Spring Data JPA) - configure PostgreSQL Read Replicas - spring

What is the simplest way to configure read replicas with Spring Boot and Spring Data JPA? I'm searching a lot and cannot find solution.
AWS RDS Aurora Postgresql gives 2 endpoints:
master (write)
replicas (read)
I want to configure my application to use this endpoints.

Why do you need to configure the read replica with Spring Boot, I am guessing that you just need to connect with the read replica, right?
Have you looked the aws sdk for java?
You need to look over a class there named DescribeDBClusterEndpointsResult.

Related

Unable to connect to multiple astradb keyspaces from springboot microserviec

I am new to casasndra and using astradb on aws + springboot as microsrvice (its monolith as of yet). As we quickly reached 200 tables for one keyspace for our application, we are thinking of using multiple keyspaces for multiple modules. Also there is one limitation of using storage index (50 sai per db). Need help to get details about how do I access multiple keyspaces for my spring boot app ?
using org.springframework.boot:spring-boot-starter-data-cassandra
I am using below configurations:
application.yml
astra:
api:
application-token: <your_token>
database-id: <your_db_id>
database-region: <your_db_region>
cql:
enabled: true
download-scb:
enabled: true
driver-config:
basic:
session-keyspace: <your_keyspace>

Does Spring Boot supports Master Slave config of RDBMS DB

I have a multiple Spring Boot based Micro services which connect a DB2 data base (Master BD). We want to have same replica of Master DB which is called Slave DB2 DB. Every month we have some maintenance on master DB for 5-10 hrs during this time we want all our apps to automatically connect to Slave DB after this time period apps should switch back to Master without manual intervention.
Is this possible to achieve in Sprint Boot. I thought of using Spring Cloud Hystrix but is it correct architectural pattern. Any other better approach.
It's possible to do this on the infrastructure level, your apps does not need to know that there was a failover.
If you want to solve this on the application side, you can use Spring Cloud Circuitbreaker (Hystrix is deprecated, but you can use it with Resilience4J).

How to connect to several cassandra clusters at same time with Spring Boot Starter Data Cassandra

I need to connect to different cassandra clusters depended on input data. I have idea how to achieve that with manually creating cassandraTemplate for each cluster. but what about spring-boot-starter-data-cassandra? Does it allow achieve same behavior?

Apache Kafka Connect With Springboot

I'm trying to find examples of kafka connect with springboot. It looks like there is no spring boot integration for kafka connect. Can some one point me in the right direction to be able to listen to changes on mysql db?
Kafka Connect doesn't really need Spring Boot because there is nothing for you to code for it, and it really works best when ran in distributed mode, as a cluster, not embedded within other (single-instance) applications. I suppose if you did want to do it, then you could copy relevent portions of the source code, but that of course isn't using Spring Boot, and you'd have to wire it all yourself
The framework itself consists of a few core Java dependencies that have already been written (Debezium or Confluent JDBC Connector, for your mysql example), and two config files. One for Kafka Connect to know the bootstrap servers, serializers, etc. and another for the actual MySQL connector. So, if you want to use Kafka Connect, run it by itself, then just write the consumer in the Spring app.
The alternatives to Kafka Connect itself would be to use Apache Camel within a Spring application (Spring Integration) or Spring Cloud Dataflow and interfacing with those Kafka "components" (which aren't using the Connect API, AFAIK)
Another option, specific for listening to MySQL, is to use Debezium Engine within your code.

how to use redismetricrepository in spring boot

I am working on spring boot actuator and able to see the metrics of my application. But I want to store these metrics to some db. In Spring doc it has been mentioned that RedisMetricRepository provides option for storing metrics to redis db. But I dont how to make use of this RedisMetricRepository to store metrics to redis db.Kindly help me out how to use RedisMetricRepository for storing metrics to redis db.
You can just create a #Bean of type RedisMetricRepository. I suspect that will just store the metrics in Redis immediately. I prefer to buffer in memory and export to Redis periodically. Here's a sample using #Scheduled to export to Redis every 5s): https://github.com/scratches/aggregator/blob/master/generator/src/main/java/demo/GeneratorApplication.java#L61.

Resources