Pregunta

Digamos que tengo N > 1 basado en TCP, orientado a la conexión (leer: no un sitio web) servicios de manipulación de las conexiones de los usuarios finales en algunos de equilibrio de carga/configuración de uso compartido.

Estos usuarios hacer cosas que causan las actualizaciones a una o más teclas en el centralizada Tokio Tirano almacén de datos.

¿Qué le recomendaría a empuje estos cambios a los usuarios interesados conectado a otra instancia de servicio que se ejecuta en la misma red privada (el mismo colo.)?

User 1     Service 1      Tokyo Tyrant      Service 2           User 2
------     ---------      ------------      ---------           ------
  |            |               |                |                 |
  ------> do something         |                |                 |
  |            |       ---> put K 42            |                 |
  |            |               |     ----> Hey! K is now 42       |
  |            |               |                |          ---> K was updated

Un par de ideas:

Difusión de los cambios en el éxito de la actualización del almacén de datos de Servicio de la N a todos los demás servicios

User 1     Service 1      Tokyo Tyrant      LAN Broadcast       Service 2       User 2
------     ---------      ------------      -------------       ---------       ------
  |            |               |                |                 |                |
  ------> do something         |                |                 |                |
  |            |       ---> put K 42            |                 |                |
  |            |       -----------------> Hey! K is now 42        |                |
  |            |               |                |         --> Hey! K is now 42     |
  |            |               |                |                 |         ---> K was updated

Tienda de Servicio de cada usuario interesado se registra en enviar los servicios de un mensaje que se transmitió al usuario interesado;Supongo que esta es la forma en IRC server-servidor de conexiones de trabajo (necesidad de la investigación que).

User 1     Service 1      Tokyo Tyrant      Service 2           User 2
------     ---------      ------------      ---------           ------
  |            |               |                |                 |
  ------> do something         |                |                 |
  |            |       ---> put K 42            |                 |
  |            |       ---> who cares?          |                 |
  |            | <--- User 2 on Service 2       |                 |
  --------------------------------------> Hey! K is now 42        |
  |            |               |                |          ---> K was updated

Ejecutar un broker de mensajes (por ejemplo,RabbitMQ);tienen cada Servicio X suscribirse a una cola en nombre de los usuarios interesados;publicar en el éxito de "poner"s

User 1     Service 1      Tokyo Tyrant      RabbitMQ           Service 2    User 2
------     ---------      ------------      --------           ---------    ------
  |            |               |                | <--- subscribe --|         |
  ------> do something         |                |                  |         |
  |            |       ---> put K 42            |                  |         |
  |            | ------------------- post msg -->                  |         |
  |            |               |                |----- notify ---->|         |
  |            |               |                |                  |  ---> K was updated

Otra idea es la de pretender ser un esclavo de replicación y conectar con el maestro.

En general, estoy buscando una manera de conseguir que "las notificaciones de cambio" que se encuentra en CouchDB pero para Tokio Tirano.La idea es más general, sin embargo.

Si le sugieres usar un broker de mensajes con la persistencia de las colas en su lugar de un almacén de datos como Tokio Tirano, por favor explique cómo podría gancho en permitir para las validaciones, etc.Yo no soy íntimo pero con tal.

¿Fue útil?

Solución

Mi recomendación (y lo que yo uso) es el intermediario de mensajes de enfoque.RabbitMQ realiza un seguimiento en los servicios (de la onu)la suscripción a diferentes colas y se puede utilizar la distribución de los intercambios.

También, Tokio Gabinete tiene un registro (en un extraño formato pesar de) que puede utilizar para obtener las actualizaciones y los empujan a una cola.Sólo he intentado usar un cron, pero creo que puede ser posible obtener en tiempo real usando un socket.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top