【分布式事务】spring cloud集成lcn解决分布式事务

参考地址:https://blog.csdn.net/u010882691/article/details/82256587

参考地址:https://blog.csdn.net/oyh1203/article/details/82189445

参考地址:https://blog.csdn.net/small_to_large/article/details/77836672 Spring Cloud Ribbon和Spring Cloud Feign

目前,在Spring cloud 中服务之间通过restful方式调用有两种方式 
- restTemplate+Ribbon 
- feign

从实践上看,采用feign的方式更优雅(feign内部也使用了ribbon做负载均衡)。

zuul也有负载均衡的功能,它是针对外部请求做负载,那客户端ribbon的负载均衡又是怎么一回事?

客户端ribbon的负载均衡,解决的是服务发起方(在Eureka注册的服务)对被调用的服务的负载,比如我们查询商品服务要调用显示库存和商品明细服务,通过商品服务的接口将两个服务组合,可以减少外部应用的请求,比如手机App发起一次请求即可,可以节省网络带宽,也更省电。

ribbon是对服务之间调用做负载,是服务之间的负载均衡,zuul是可以对外部请求做负载均衡。

参考地址:https://blog.csdn.net/jrn1012/article/details/77837658/

因为LCN实现分布式事务的回滚,需要在服务内部 微服务之间的 负载均衡的 请求操作,故而需要在配置文件中加上ribbon的相关配置,它不与使用feign冲突!!!

lcn使用spring boot2.0 报错解决方案:https://www.jianshu.com/p/453741e0f28f

参考使用步骤1:

https://m.wang1314.com/doc/webapp/topic/20308073.html

参考使用步骤:

dubbo LCN
配置说明
1
、启动本地
zookeeper
2
、启动本地
redis
3
、启动本目录下
eureka/eureka.jar
java -jar eureka/eureka.jar
4
、启动本目录下
tx-manager-4.1.0/tx-manager-4.1.0.jar
,启动后在浏览器访问
http://localhost:8899/index.html
java -jar tx-manager-4.1.0/tx-manager-
4.1.0.jar
5
springboot+dubbo
项目中
pom
添加依赖:
<dependency>
<groupId>com.codingapi</groupId>
<artifactId>transaction-dubbo</artifactId>
<version>4.1.0</version>
</dependency>
<dependency>
<groupId>com.codingapi</groupId>
<artifactId>tx-plugins-db</artifactId>
<version>4.1.0</version>
</dependency>
<dependency>
<groupId>com.codingapi</groupId>
<artifactId>tx-client</artifactId>
<version>4.1.0</version>
</dependency>
6
application.properties
配置文件中添加
tx-manager
路径:
#tx-manager
tx.manager.url=http://127.0.0.1:8899/tx/manager/
7
、将本目录下的
dubbo_provider.xml
文件放进与
application.properties
同级目录。
8
、将本目录下的
LcnConfig.java
放进项目中
config
包下。
9
、修改
LcnConfig.java
中的
@ComponentScan
注解,将
"com.iking.provider.*"
中的路径改成自
己项目的路径。
10
、启动项目即可测试

猜你喜欢

转载自www.cnblogs.com/sxdcgaq8080/p/9776695.html