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.csdn.net/download/u013256012/11313360
7 最后说明
如果刚好你需要一个这样的实例,这里刚好可以提供。配置文件中的各个配置,可以在官网上进行查询。