How does Eureka Server deal with this situation? - spring-cloud

Eureka can be made even more resilient and available by running multiple instances and asking them to register with each other
For example, we have 3 Eureka servers:
Server A's peer instance is pointed to B, B's peer is pointed to C, C is pointed to A. If server C is down, all registry information will be lost because Eureka uses in-memory storage. After several minutes, server C is back on line with no registry info at all. Because B's peer is pointed to C so server B will sync with server C. Here comes the problem: C is blank now, will B delete all registry info when synchronising with C?

Related

How to make 2 clients connect each other directly in c/c++, after having both connected to server?

Every info received by the server from the firstly-connected "client" A will be sent to the secondly-connected client B, even if A and B don't know their respective IP:
A -----------> server <----------- B # they both connect the server first
A --"hello"--> server # A sends a message to server
server --"hello"--> B # the server sends the message to B

How to redirect all external request to host file

I have gone through many articles and found that the host file will redirect requests from within a server but not the requests coming from another server.
I want to redirect all the requests like HTTP, RDC et...
I have 3 windows servers A, B, C.
I cant send requests from A to C directly because there is no connection between them.
A can send requests to B. B can send request to C.
I have configured the host file in
B to send all related host requests to C.
A to send all related host request to B.
But this will not work if I am sending a request from A.
I cannot access the router and network. I want to know is there any way I can redirect all related host requests to from A to B, B to C. so that A to C should work.
I have heard that some netsh command you can configure so please guide me in a proper way.
Thanks in advance.

Register micro-services using spring-eureka from more than 1 server

I have a set of micro-services which need to communicate to each other.
The total number of micro-services does not fit to single physical server so I need to spread them out among 2 different servers.
My idea (do not know if correct) is to have spring-eureka instance per server to which all services from this particular server register. So:
Services (A,B) register to Eureka on Server 1.
Services (C,D) register to Eureka on Server 2.
After that eureka instances will exchange their knowledge (Peer Awareness).
The questions are:
Does described idea is correct approach? Or rather there should exist just single Eureka instance on single server to which all services from both servers will register (i.e. Eureka exists only on Server1)?
If described idea is correct then as I understand ports 8761 should be opened on Server1 and Server2 to allow communication between "Eurekas"? And the configuration should be as following:
Eureka on Server 1:
eureka.client.serviceUrl.defaultZone: http[s]://server2address:8761/eureka/
Eureka on Server 2:
eureka.client.serviceUrl.defaultZone: http[s]://server1address:8761/eureka/
1) normally you would have a server for each service (A,B,C,D eureka1 and eureka2)
2) eureka.client.serviceUrl.defaultZone is a comma separated list so it is more like "eureka.client.serviceUrl.defaultZone: http[s]://server1address:8761/eureka/,http[s]://server2address:8761/eureka/" for each service
Hope that helps, cheers

Handling multiple client requests on multiple instances of a single servers C++

I have an ecosystem in which there is a C++ socket based (TCP/IP) Server. multiple clients can connect to this server. However there are multiple instances of this server running across different physical IP addresses.
Each client has a configuration file which has its client_identification_id and the server address(there is a fallback mechanism in which the client can connect to another server if the primary can't be connected) to connect to, the servers also have a list of registered clients (saved in db). if a client session is already in progress, connection from that client should not be accepted by any of the other servers while the client session is active
I am faced with the problem with below scenario.
3 clients: C1, C2, C3
3 servers: IPS1, IPS2, IPS3
A scenario arises in which C1 could simultaneously connect to IPS1 and IPS2. Since the instances are running on different physical machines, how should i synchronize client request to multiple servers?

"Remote computer is not available." is the error thrown when reading from remote public windows server 2003 queue

I keep getting the error “Remote computer is not available.” when reading from remote public windows server 2003 queue. The queue is on server B. My application is on server A;
Amazingly, server A can drop a message on any queue on server B, i just can't read a message off from B.
The two servers A and B are on the same domain.
all other servers can read and write on B's queues
it happened after I restarted server A
i have restarted A again in vain
msmq is running on A and B
Online suggestions are all not working.
It doesn't look like a trust issue between servers A and B. Please help
I got the solution. The approach in my comment above worked.
The thing is, port 135 was blocked by our IT-Networks guys. This doesn't immediately affect pulling messages. It had to be after restarting server A that B rejected its request due to failed RPC requests.
Again, thanks to MSMQ from the plumber's mate