Routing /router/ Message Processor

Hello,

I was wondering does router know if any MP in the pool is down, so it won't forward traffic to it.

my current topology is 2 rmp nodes separate VMs behind F5. so R1, MP1, R2, MP2.

e.g if MP2 goes down, does R1 knows about it?

F5 will forward transactions to R2 as well as R1..it won't know that MP2 is down.

1 6 1,019
6 REPLIES 6

Not applicable

The short answer is Yes. R1 will know if MP2 is down. From your LB(F5) you can do health checks on router at 15999 port , checking path - /v1/servers/self/up .

F5 doesn't need to know about MPs. It should only care about Routers. Meanwhile you can also do healthchecks on Message processor on 8082 port and path /v1/servers/self/reachable.

/v1/servers/self/reachable is applicable to 14XX and 15XX releases. For 16XX and 17XX use /v1/servers/self/up.

Not applicable
@eklas as confirmed by Rajesh and Maruti, yes, Routers will know if MP is down or unresponsive.

The Router implements a health check mechanism to determine which of the Message Processors are working as expected. If a Message Processor is detected as down or unreachable, the Router can automatically take the Message Processor out of rotation.

These events are captured in:

 /opt/apigee/var/log/edge-router/logs/system.log

See official documentation for configuration options and additional details:

http://docs.apigee.com/private-cloud/latest/what-monitor

See examples below:

Mark Down event

2014-05-06 15:51:52,159 org: env: RPCClientClientProtocolChildGroup-RPC-0 INFO CLUSTER - ServerState.setState() : State of 2a8a0e0c-3619-416f-b037-8a42e7ad4577 is now DISCONNECTED. handle = <MP_IP> at 1399409512159

2014-04-17 12:54:48,512 org: env: nioEventLoopGroup-2-2 INFO HEARTBEAT - HBTracker.gotResponse() : No HeartBeat detected from /<MP_IP>:<PORT> Mark Down

Mark Up event

2014-05-06 16:07:29,054 org: env: RPCClientClientProtocolChildGroup-RPC-0 INFO CLUSTER - ServerState.setState() : State of 2a8a0e0c-3619-416f-b037-8a42e7ad4577 is now CONNECTED. handle = <IP> at 1399410449054


2014-04-17 12:55:06,064 org: env: nioEventLoopGroup-4-1 INFO HEARTBEAT - HBTracker.updateHB() : HeartBeat detected from /<IP>:<PORT> Mark Up

A related question- are the successful router health check responses logged anywhere?

Have a pertinent question related to this:

Documentation says to enable Client.pool.heartBeat.use.http=true, while in our Apigee cluster it is Client.pool.heartBeat.use.cluster=true, which is enabled and I tested it by making MP1 & R2 down.(have similar setup as @Eklas)

I am able to get the API processed, so curious to know whats the difference between two(use.cluster/use.http) and their significance.