base de transacción [transacciones distribuidas] --1 distribuido - 4

Antecedentes 1 distribuyó generado transacción

En el entorno de micro-servicio, ya que de acuerdo a los diferentes negocios se dividirá en diferentes servicios , tales como servicios de suscripción, servicios de pedidos, bienes y otros servicios profesionales, para hacer cosas profesionales, cada servicio tiene su propia base de datos independiente, y está dirigido de forma independiente el uno del otro.

La comunicación entre el uso de los servicios y el servicio de RPCla tecnología llamada remota, pero cada servicio tiene su propia fuente de datos independiente, que es su propio 独立的本地事务. Cuando los dos servicios se comunican entre sí dos asuntos, locales independientemente unos de otros, que se produce debido a las transacciones distribuidas generado.

En la mayoría de los casos, sin elementos tradicionales distribuyen transacción, pero si el uso de múltiples fuentes de datos modo, también han distribuido las transacciones en el proyecto.

Observaciones transacción distribuida - biblioteca única hebilla

En el sistema de negocio de la electricidad, cómo ceder bajo un inventario único y consistente?

Por ejemplo: los primeros pedidos de los usuarios, la deducción de inventarios falla, que dará lugar a sobreventa; si las órdenes sin éxito, la deducción de inventarios éxito, que dará lugar a vender menos. Ambos casos conducen a un aumento de los costos de operación, el pago requerido en los casos graves.

Corresponden principalmente a dos servicio de micro: 订单服务y 库存服务.

Aquí Insertar imagen Descripción
Aquí Insertar imagen Descripción

Si el servicio de pedidos Lanza:
Aquí Insertar imagen Descripción

Debido a que las órdenes y los servicios de inventario no en el mismo micro-servicios, las fuentes de datos son mutuamente independientes, cada fuente de datos individual tiene su propia transacción separada, la transacción se llama 本地事务.

本地事务源的有效范围是在当前同等的 JDBC 连接中.

2 ideas básicas para resolver transacciones distribuidas

Antes de aprender a resolver la idea básica de una transacción distribuida, tenemos que solucionar familiarizado con algunos conceptos básicos de las condiciones de transacción distribuida.

Por ejemplo: CAPla Baseteoría, 柔性事务y 刚性事务para entender la idea de la consistencia eventual, JTA + XAde dos etapas y presentación de tres etapas y así sucesivamente.

Estos sustantivos tarde para aprender algunas soluciones distribuidas de terceros utilizados en el marco de la operación, tales como doméstica LCN, Ali GTSmarco.

2,1 ACIDteoría del equilibrio ácido-base

Cómo asegurar una fuerte consistencia de la misma? Cuando el aprendizaje de las bases de datos relacionales están aprendiendo los ACIDprincipios, aquí para ACIDuna breve introducción. Si quieres globales de aprendizaje ACIDprincipios, consulte ACID.

Inherentemente base de datos relacional para resolver problemas con los asuntos complicados de la escena, para satisfacer plenamente las bases de datos relacionales ACIDcaracterísticas.

Cuatro características de una transacción sistema de gestión de base de datos (transacción) es (a su vez interpretado según análisis acrónimo):

  • 原子性(Atomicidad)
  • 一致性(Consistencia)
  • 隔离性(Aislamiento)
  • 持久性(Durabilidad)

Los llamados asuntos, es una secuencia de operaciones, estas operaciones son o bien ejecutan o no, es una unidad de trabajo indivisible. (Realización de un único conjunto de instrucciones o una operación de función lógica llamada transacción).

2.2 CAP(sombreros principio)

Aquí Insertar imagen Descripción

Debido a los sistemas o datos fueron subdivisión, el sistema ya no es un sistema autónomo, pero los sistemas distribuidos, sistemas distribuidos para principios de la PAC incluyen los tres elementos siguientes.

  • C: ConsistencyLa consistencia. Todos los datos de copia de seguridad en sistemas distribuidos, y al mismo tiempo tiene el mismo valor, los datos al mismo tiempo para leer todos los nodos son la última copia de los datos.

  • A: AvailabilityDisponibilidad, buen rendimiento de respuesta. La disponibilidad total se refiere Cualquier modelo de fallo, y el servicio será procesada dentro de un tiempo de respuesta limitada.

  • P: Partition tolerance, La tolerancia de partición. A pesar de perderse parte del mensaje en la red, pero el sistema sigue funcionando.

CAPmedios principio de que un máximo de sólo dos puntos, mientras que el logro de estos tres elementos, los tres no pueden ser a la vez . Por lo tanto, el caso de la arquitectura distribuida, se debe tomar una decisión. Para el sistema de datos distribuidos 分区容忍性是基本要求, de lo contrario perdemos el valor. Por lo tanto, el diseño de sistemas de datos distribuidos, es tomar un equilibrio entre la consistencia y la disponibilidad. Para la mayoría de las aplicaciones web, de hecho, que no necesita una fuerte consistencia, por lo tanto 牺牲一致性而换取高可用性,是目前多数分布式数据库产品的方向.

Por supuesto, el costo de la consistencia, no del todo, independientemente de la consistencia de los datos, o los datos es confuso, por lo que no importa cuán alta disponibilidad del sistema distribuido no podría hacer mejor valor. El gasto de la consistencia, pero 不再要求关系型数据库中的强一致性,而是只要系统能达到最终一致性即可, teniendo en cuenta la experiencia del cliente, esta ventana de tiempo consistente con el tiempo a ser transparente para el usuario tanto como sea posible, es decir, la necesidad de proteger "el usuario percibe la consistencia." Típicamente, la consistencia final, "percibida por la identidad de usuario" para lograr sistemas de la disponibilidad y de datos de alto por la replicación de datos asíncrona múltiple depende de la ventana de tiempo de replicación de los datos de tiempo a un estado coherente.

2.3 Base(base)

BASEBásicamente es el disponible ( 基本可用), estado blando ( 软状态) y, finalmente, consistentes ( 最终一致性abreviados tres frases), en el año 2008 por el arquitecto Dan Pritchett en eBay: la primera vez "BASE un ácido Alternativa" (documento aborda el punto aquí) papeles. ACID ideas y principios base muy diferente, se satisface el principio de la PAC, que se obtiene a costa de sacrificar la disponibilidad de gran consistencia, generalmente aplicado a la capa de aplicación de servicio del sistema o una gran datos del sistema de procesamiento, al alcanzar la consistencia final para tratar de satisfacer la gran mayoría de los negocios las necesidades.

BASE Modelar que comprende los tres elementos siguientes:

  • BA: (Básicamente disponible), sustancialmente disponible.
  • S: (Estado Soft), un estado blando, el estado no puede ser sincronizado con el tiempo.
  • E: (Consistencia eventual), el acuerdo final dentro de una cierta ventana de tiempo, estamos de acuerdo con los datos finales.

El acuerdo final sobre varias variantes véase más arriba, en la práctica real, el sistema puede haber varias variantes se combinan para lograr una variedad de necesidades empresariales.

proyecto de pago

programas de pago en general, hay dos métodos de devolución de llamada:

  • Una 同步回调地址manera: . Después de la terminación del pago, Alipay utilizando el navegador es redirigido a la fiesta de devolución de llamada.
  • Segunda 异步回调地址manera: . Después de la terminación del pago, Alipay manera similar HttpClient llamadas de solicitud de pago las partes de la interfaz de notificación.

3 Asuntos Asuntos flexibles y rígidos

  • la satisfacción de transacción flexible BASEteoría (básica disponible, eventualmente consistentes)
  • Los servicios satisfacen rígida ACIDteoría

En este trabajo, la discusión sobre el manejo de los asuntos flexibles entre la transacción distribuida.

transacción flexible se divide en:

  1. 两阶段型
  2. 补偿型
  3. 异步确保型
  4. 最大努力通知型Varios. Dado que todo Alipay arquitectura es una arquitectura SOA, las transacciones ACID en el entorno tradicional de base de datos independiente para satisfacer las necesidades del negocio en un entorno distribuido, similar a la de más de unas pocas transacciones de negocios en entornos distribuidos deben fijarse.

4 Soluciones comunes de transacciones distribuidas

4.1 modelo tradicional Jta+Atomikos

Los artículos tradicionales, como el utilizado en el proyecto a múltiples fuentes de datos, cuando en la mayoría de los casos, jta+Atomikosresolver el problema de las transacciones distribuidas, jta+Atomikosla parte inferior se basa en XAla presentación del programa del protocolo de dos fases.

protocolo XA

transacción XA es 两阶段提交协议. Se requiere un coordinador de transacciones para garantizar que todos los participantes de transacción han completado el trabajo preparatorio (la primera fase). Si el coordinador recibió noticias de que todos los participantes estén listos, vamos a notificar a ninguna transacción puede ser presentada (Fase II). mysql juego en la transacción XA es el papel de los participantes, no el coordinador (Administrador de transacciones).

JTA

JTA (Java Transaction API) fue uno de JavaEE 13 especificación de los desarrolladores. Java Transaction API, permite a las aplicaciones para realizar el procesamiento de transacciones distribuidas - a los datos de acceso y actualización en dos o más recursos del equipo de red. la compatibilidad de controladores JDBC JTA capacidades de acceso de datos mucho mayor. Transacción más simple y más inmediata propósito es asegurar la validez de la consistencia de los datos de los datos.

atomikos

Atomikos TransactionsEssentials es un servicio de valor añadido para la plataforma Java y administrador de transacciones clase de código abierto.

Soluciones distribuidas de Transacción usando sistemas de back office atomikos.

4,2 confirmación en dos fases protocolo

Aquí Insertar imagen Descripción

Primera etapa:
准备阶段: Inicia coordinador instrucciones a los participantes, los participantes evalúan su propio estado, si los participantes para evaluar la instrucción puede ser completado, escribirá redoo undoingrese después de fijación permiten que los recursos, para realizar la operación, pero no presentado.

Segunda etapa:
执行阶段: Si cada participante una preparación de la declaración clara es exitosa, el coordinador envía una instrucción presentado a los participantes, los participantes liberar los recursos bloqueados, un participante claro cómo no supera alguna preparación de la declaración, el coordinador enviará 中止指令a los participantes cancelar la transacción han cambiado, la liberación de recursos bloqueados.

Confirmación en dos fases esquema es ampliamente utilizado, casi todas las bases de datos OLTP comerciales soporte de protocolo XA. Pero la confirmación de dos fases esquema de bloqueo de recursos por un largo tiempo, un gran impacto en el rendimiento, no es adecuado para resolver el problema básico del servicio de micro-transacciones.

Desventajas: Si el coordinador se ha reducido, los participantes no ordenó coordinador, que se han bloqueado.

4.3 tres secciones protocolo de confirmación

Trifásica protocolo de confirmación es una versión mejorada de la confirmación de dos fases de protocolo. Se soluciona el problema mediante el bloqueo de mecanismo de tiempo de espera, y el aumento en dos fases en tres fases:

询问阶段: Coordinador preguntó si los participantes pueden completar coordinador de instrucción sólo es necesario si no hay respuesta o, sin tener que realizar una operación real, esta etapa horas extras llevado a la suspensión.

准备阶段: Si la fase de investigación a todos los participantes pueden volver a realizar coordinador de operaciones para la solicitud de pre-ejecución se envía a los participantes, y los participantes escribir rehacer y deshacer los registros, realizar la operación, pero no la operación de confirmación; si devuelve cualquier participante en la fase de investigación los resultados no pueden realizar la operación, el coordinador envía la solicitud a suspender los participantes, la fase de preparación, donde la lógica de la confirmación de dos fases protocolo es similar, en esta etapa los tiempos de espera conducen al éxito

提交阶段: Si cada participante en la fase de preparación para preparar un retorno exitoso, que son los recursos reservados y la ejecución de la operación tiene éxito, los iniciados coordinador someten instrucciones a los participantes, el participante confirma los cambios de recursos transacción, la liberación de recursos bloqueados, y si alguno de los participantes preparación de declaración de fallido, es decir, a los recursos de reserva o llevar a cabo la operación falla, lanzamiento coordinador de abortar la instrucción a los participantes, los participantes cancelar la transacción ha sido cambiado, ejecute la acción de deshacer registro, liberar los recursos bloqueados, donde la lógica y la confirmación de dos fases de protocolo presentado Acuerdo etapa

4.4 confirmación de dos fases de protocolo y presentar tres párrafos diferencia

增加了一个询问阶段Pidiendo para asegurar el comportamiento etapa más temprana posible no se puede encontrar en las operaciones de interrupción requerido realizar, pero no encontrar todos estos actos, que sólo reducirá esto suceda en el futuro la preparación, coordinación y los participantes realizaron tareas han aumentado las horas extraordinarias, una vez que el tiempo de espera, coordinadores y participantes continúan confirmar la transacción, el valor predeterminado es exitosa, que se basa en la probabilidad estadística de incumplimiento tras el éxito de la corrección del tiempo de espera máximo

Trifásica protocolo de compromiso presentado con el protocolo de dos fases, en comparación con las anteriores ventajas, pero una vez que se produce el tiempo de espera, el sistema seguirá siendo producen inconsistencias, pero esto no suele suceder llena ventaja es que al menos no bloquea y recursos para siempre cerradas.

Publicados 675 artículos originales · ganado elogios 214 · Vistas de 140.000 +

Supongo que te gusta

Origin blog.csdn.net/weixin_42112635/article/details/104737278
Recomendado
Clasificación