微服务-分布式事务-TX-LCN的Eureka版本实例

本文介绍了使用Spring Cloud和TX-LCN实现分布式事务的实例。给出了版本信息,包括spring-boot、spring-cloud和txlcn的版本。说明了环境设置,如host、nginx和redis配置。阐述需求为下单时保证订单和库存数据库操作的事务性,还介绍了项目结构、数据库样例,提供了代码链接。

1 版本信息

spring-boot-starter-parent : 2.1.4.RELEASE
spring-cloud-dependencies:Greenwich.SR1
txlcn:5.0.2.RELEAS

2 环境

2.1 host设置

############## eureka 

127.0.0.1    my-peer1 

127.0.0.1    my-peer2

############## txlcn 

127.0.0.1 tmlcnserver.com

############## reids

192.168.65.11 springboot1


2.2 nginx设置

#user  nobody;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';

    #access_log  logs/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;

    
    ######## tm-lcn
    upstream  tmlcn{
        server 127.0.0.1:10021;
        server 127.0.0.1:10022;
    }
    server {
        listen       80;
        server_name  tmlcnserver.com;
        location / {
           proxy_pass http://tmlcn;
            ###nginx与上游服务器(真实访问的服务器)超时时间 后端服务器连接的超时时间_发起握手等候响应超时时间
            proxy_connect_timeout 1s;
            ###nginx发送给上游服务器(真实访问的服务器)超时时间
            proxy_send_timeout 1s;
            ### nginx接受上游服务器(真实访问的服务器)超时时间
            proxy_read_timeout 1s;
            index  index.html index.htm;
        }      
    }
}


2.3 redis默认配置即可

3 需求

    下单,订单增加1个,对应的物品的量减少1。也就是下单的业务中,调用订单服务生成1个订单,调用库存服务将该物品的量减少1,同时保证这两个数据库操作具有事务性。

    使用nginx配置事务中心高可用。

4 项目结构

5 数据库样例

5.1 tx-lcn

    在官网可以查到对应的数据表。

5.2 order订单表

CREATE TABLE `order` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `name` varchar(255) DEFAULT NULL,
  `commodity_id` bigint(20) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;

5.3 stock库存表

CREATE TABLE `stock` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `commodity_id` bigint(20) DEFAULT NULL,
  `stock_num` bigint(20) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;

6 具体代码

https://download.youkuaiyun.com/download/u013256012/11313360

7 最后说明

    如果刚好你需要一个这样的实例,这里刚好可以提供。配置文件中的各个配置,可以在官网上进行查询。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值