Hi Igniters, Our company has recently started using Ignite and our team are now to it. We would like to use Ignite as a Cache layer for an upcoming project
Our use case is that we have an Ignite cluster that we want to interact with , our client service is Springboot based and running in a Kubernetes Cluster but not co located with our Ignite cluster , we anticipate our service will receive 3000+ request per second , the service will scale based on the volume of requests, and we will need to query Ignite for each of these requests. The data we need to query is fairly straight forward , a single row from either 1 or 2 caches based on primary key. We are at the point where we are beginning to design the architecture. I have done some initial reading on Ignite and was wondering if someone could Verify my understanding is correct. I would also be interested to know what architectures other folks are using for similar use cases ======= Thin Client ======== JDBC connection are not thread safe https://apacheignite-sql.readme.io/docs/jdbc-driver <https://apacheignite-sql.readme.io/docs/jdbc-driver> To use this approach we need to ensure non cuncurrent use of Connections, Statements, and ResultSet perhaps using a locking mechanism. Key value operations or SQL Queries via the API over the thin client are thread safe Connection Pooling is not provided via the API , but it is possible to implement your own connection pool. If you implement your own connection pool you could keep connections alive to reduce the cost of establishing a connection to Ignite and reusing the connections for various requests. ========== Thick Client ========== Does not have a concept of Connection pooling When using either JDBC or the IGNITE API on the Thick Client It is thread safe and can handle multiple concurrent threads Is part of the Ignite cluster Ignite Servers can iniatate TCP connection needs to be reachable via a TCP connection If the Client is behind a firewall,NAT or Load Balancer it makes using ,thick client challenging ========= Question on GRPC ============= The Thin Client TCP socket connection uses a Binary protocol https://apacheignite.readme.io/docs/binary-client-protocol <https://apacheignite.readme.io/docs/binary-client-protocol> I may be mixing up network levels here but , is it possible to run this over a GRPC connection