首页 > 其他 > 详细

lcn 分布式事务协调者集群原理

时间:2019-04-14 15:59:23      阅读:278      评论:0      收藏:0      [点我收藏+]

lcn集群原理图:

技术分享图片

 

1.实现原理:

1.1 LCN获取tm协调者注册地址

   1. LCN客户端项目启动的时候,首先会注册到事务协调者中去,然后读取配置文件tm事务协调者的注册地址。

   2. 向该事务协调者注册地址发送一个请求,获取对应的lcn底层协议ip和端口号(底层是netty协议通讯)。

   3. 会向该lcn底层协议ip和端口号建立长连接 ,保持会话信息。

lcn 协调者访问地址,及页面如下图所示。

技术分享图片

 

客户端配置文件

tm:
  manager:
    url: http://127.0.0.1:8899/tx/manager/

2. 基于Nginx 搭建事务协调者集群

   这里所指的端口号指的是事务协调者中配置的 tm.socket.port=9999 的端口号,netty 协议端口号和ip地址。

   1.首先通过nginx配置多个tm协调者负载均衡配置,然后 LCN客户端启动项目的时候访问nginx负载均衡地址获取lcn协议通讯IP地址和端口号,并且对该连接保持长连接。

   2.因为LCN客户端与TM协调者保持的是长连接,当tm协调者宕机之后,LCN会客户端会立即重新进入到获取负载均衡地址lcn协议通讯IP地址和端口号。

   3.如果lcn客户端与事务协调者保持的长连接断开后,那么lcn客户端会在通过Nginx 负载均衡实现故障转移轮询到下一台事务协调者服务器获取对应的lcn底层的ip和端口号,并且建立长连接。

原理图如下:

技术分享图片

 

nginx 配置:

### 上游服务器 集群  默认轮询

upstream backserver{

   server 127.0.0.1:8898;

   server 127.0.0.1:8899;

}

### server{

     #### 监听端口号

     listen       80;  

    ####  监听域名地址

    server_name   lcn.test.com

     location / {

         ### 指定上游服务器负载均衡器

        proxy_pass  http://backserver;

        ### nginx 与上游服务器(真是访问的服务器)的超时时间  后端服务器的连接的超时时间_发起握手等候响应超时时间

       proxy_connect_timeout   5s;

       ### nginx 发送给上游服务器(真是访问的服务器)的超时时间

      proxy_send_timeout 5s;

      ### nginx 接受上游服务器(真实访问的服务器)超时时间

     proxy_read_timeout 5s;

     index index.html index.htm;

   }  

}

 

项目源码地址:https://gitee.com/MingTian-NiHao/springboot-lcn 、https://gitee.com/MingTian-NiHao/tx-lcn

 

lcn 分布式事务协调者集群原理

原文:https://www.cnblogs.com/ming-blogs/p/10705270.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!