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


    转自:https://www.cnblogs.com/sxdcgaq8080/p/9776695.html

    参考地址: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

    参考地址:https://blog.csdn.net/5iasp/article/details/79881691

    事务等级:https://blog.csdn.net/gududedabai/article/details/82993700

    目前,在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

    lcn集成到自己到自己的spring cloud项目中:https://blog.csdn.net/zhangxing52077/article/details/81587988

    参考使用步骤1:

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

     修改LCN ,集成spring boot2.0

    注意:LCN 4.1.0版本 目前不支持spring boot 2.x的版本,所以需要进行更改!!

    【【因为我已经更改完成,打包了jar了,jar可以在百度网盘下载,然后直接走这一步的上传第三方jar包到本地maven仓库,然后在项目中直接引用即可】】

    第一步:

    先在lcn官网【http://www.txlcn.org/】 找到GitHub 地址【https://github.com/codingapi/tx-lcn】,拷下所有的源码

    第二步:

    解压下载的zip,放置在一个目录下,用IDEA打开【注意打开父层项目】

     导入完整的jar包,然后下面就要开始更改源码中不支持spring boot 2.X的部分

    第三步:

    修改

    transaction-springcloud 项目下com.codingapi.tx.springcloud.listener包中的ServerListener.java

    源码更改为:

     View Code

     第四步:

    修改tx-manager项目下com.codingapi.tm.listener包中的ApplicationStartListener.java

     View Code

    第五步:

    修改

    tx-manager项目下com.codingapi.tm.manager.service.impl包中MicroServiceImpl.java类的getState()方法

     View Code

    第六步:

     修改

    tx-client下的com.codingapi.tx.aop.service.impl下的TransactionServerFactoryServiceImpl.java

    修改这一截代码:

     View Code

    第七步:

    现在都更改完成了,然后需要将所有的项目打包,注意我将本组项目中所有pom文件中所有的的4.2.0-SNAPSHOT 都更改成了4.2.0,注意  是所有

    改成了

    然后点击右侧maven插件对每一个ms挨个进行打包【打包可能报错,解决方案:https://www.cnblogs.com/sxdcgaq8080/p/9841635.html   https://www.cnblogs.com/sxdcgaq8080/p/9841701.html

    按照报错后的两个解决方案,进行打包完成后,可以看到

    这些ms都已经打包完成了

    第八步:

    最后需要将所有修改完成的打包好的jar上传到自己本地的maven仓库中 【操作地址:https://www.cnblogs.com/sxdcgaq8080/p/7583767.html 最下方可以进行第三方jar包上传到自己的maven仓库中】

    【jar可以在百度网盘下载,然后直接走这一步的上传第三方jar包到本地maven仓库,然后在项目中直接引用即可】【最新jar的使用参见https://www.cnblogs.com/sxdcgaq8080/p/7583767.html最下方】

     【这里把上传第三方jar到本地仓库的命令给出来,也就是这两个jar】

    mvn deploy:deploy-file -DgroupId=com.codingapi -DartifactId=transaction-springcloud -Dversion=4.2.0 -Dpackaging=jar -Dfile=D:documentIdeaProjectsmyTestDocumentjar	ransaction-springcloud-4.2.0.jar -Durl=http://localhost:8081/repository/myself_hosted/ -DrepositoryId=myself_hosted
    
    
    mvn deploy:deploy-file -DgroupId=com.codingapi -DartifactId=tx-plugins-db -Dversion=4.2.0 -Dpackaging=jar -Dfile=D:documentIdeaProjectsmyTestDocumentjar	x-plugins-db-4.2.0.jar -Durl=http://localhost:8081/repository/myself_hosted/ -DrepositoryId=myself_hosted

    上传完了以后的位置如下:

    注意 这里的版本都修改成了4.2.0

    所以在引用的时候,在服务中引用的版本是4.2.0

     这次启动引用了这两个jar的spring boot2.0的微服务,就可以成功了 

     

    将tx-Manager服务加入项目组,并启用【此时是eureka服务已经启动的情况下了,也就是说,微服务组引入修改以后的LCN jar依赖,已经可以成功启动的情况下】

    1.同上面的第一步一样,进入官网,进入GitHub,拷贝所有源码

    先在lcn官网【http://www.txlcn.org/】 找到GitHub 地址【https://github.com/codingapi/tx-lcn】,拷下所有的源码

    2.解压缩,取出tx-manager服务,拷贝至项目组根目录下

     3.将tx-Manager修改为本微服务组可以识别的子模块module

    导入更新

    4.更改tx-manager的application.properties,修改eureka的配置和redis的相关配置

     View Code

    5.启动启动类,即可访问tx-manager主页面

    地址:http://localhost:7000/

  • 相关阅读:
    洛谷P3747 [六省联考2017]相逢是问候
    染色(dye)
    BZOJ1426: 收集邮票
    消息队列RabbitMQ
    CRM
    BBS
    版本控制
    RESTful API
    Luffy
    axios使用
  • 原文地址:https://www.cnblogs.com/edwardsai/p/10334636.html
Copyright © 2020-2023  润新知