解决方案

分布式事务的Tcc 解决方案 利用 hmily框架

五迷三道 提交于 2019-12-08 22:02:31
2、TCC 解决分布式事务的方案 落地时 hmily框架。 2.1 TCC 代表了三个阶段 Try Confirm cancel Try 就是 一个方法,这里 是 业务的逻辑,几个逻辑都操纵数据库 比如完成 注册用户,调用 送积分的 远程逻辑 默认 try执行了 confirm一定执行。 Confirm 这里呢 可以理解成 确认提交。 Cancel 就是业务的 回滚,只要try里面有异常 就 走cancel。 2.2 TCC 注意的异常处理情况 1) 空回滚 :就是 try没有执行 就执行cancel 方法。 2)幂等性 :一个方法无论调多少次 结果都是一样的 这是幂等性。 3) 悬挂 ;confirm 或者 cancel已经执行了 又要执行 try方法 这是悬挂。 处理的方法是调用 数据库的 逻辑。 hmily需要的数据库表设计。 事务的发起方 try这里需要解决幂等性 和悬挂的问题。 try方法上要加本地事务的注解。 cancel这里需要解决 空回滚和幂等性的问题。 事务的另一方 try这里 啥也不用写逻辑 confirm 这里需要 写 送积分的逻辑。这里即使又异常整个事务也回滚不了 可以人工的处理 。 需要解决幂等性。方法上要加本地事务的注解。 cancel 这里 也啥也不用写。 ##feign 的使用注意事项 @FeignClient(value="tcc-demo

前端 PC端兼容性问题总结

独自空忆成欢 提交于 2019-12-08 02:19:12
1.如果图片加a标签在IE9-中会有边框   解决方案: img{border:none;} 2.rgba不支持IE8   解决方案:可以用 opacity    eg: opacity:0.7; /* FF chrome safari opera */ filter:alpha(opacity:70); /* 用了ie滤镜,可以兼容ie */  但是,需要注意的是,opacity会影响里面元素的透明度 3. display:inline-block ie6/7不支持   解决方案: display:inline-block; *display:inline; 4.默认的body没有body去掉margin情况下ie5、6、7边缘会很宽margin-top加倍 如果处于无声明状态那么所有的ie浏览器margin-top加倍   解决方案:用css给body添加magin属性为0px body{margin:0;} 5.IE 6.0 Firefox Opera等是 真实宽度=width padding border  IE5.X 真实宽度=width   解决方案:   方法1. div.content {   width : 400px ; //这个是错误的width(对于ie5来说是正确的),所有浏览器都读到了   voice-family : "\" } \""; //IE5

浅谈RabbitMQ

与世无争的帅哥 提交于 2019-12-07 16:28:50
知识先知 其实引入这个解决方案,纯属是因为在项目中有这样的应用场景; 何为解决方案 ,其实通俗讲就是针对于某些应用场景,选取适合的解决办法,这里指的是较好的,或许解决方案会有许多,包括MQ消息队列要解决的应用场景。 前因后果 场景一、目前常见的分布式服务项目,都是通过服务于服务之间进行通信完成各自的业务逻辑,因此相互之间耦合性比较较大; (1)只要中间服务出了故障后,上游和下游都会受到波及,同时相互之间的调用关系为被动; (2)后期进行扩增和删减的话,都会波及依赖的服务; 解决方式:引用MQ后,上游服务只负责将下游想要的东西发送给它,至于下游如何处理,这就不是上游需要考虑的问题了;相互之间的调用关系为主动。 场景二、一些大数据量的频繁同步处理,一个系统如果不光在本项目读写数据,而且还要调用其他项目操作库,这时候,他们之间的处理如果是同步的话,损耗的时间就是两者之和了。 解决方式:引入MQ后,上游系统连续发送消息到MQ队列中,直接返回;当然也可以利用多线程的方式解决,但是会造成单体服务内存损耗。 场景三、比如某个业务处理过程一直都处于稳定状态,但是某一时间点后,用户请求量突增,针对于这种场景,提升服务器的硬件显然不是最好的方式。 解决方式:引入MQ后,利用消息队列持久化存储的机制,可以避过短时间业务量突增的场景,稍后等到请求平稳后,慢慢处理业务量。 合理分析 难道说

Less2css error 终极解决方案

一世执手 提交于 2019-12-07 16:07:43
使用sublime Text3 的时候,安装less2Css后,和很多人一样以为大功告成,开始要运行编译less文件,结果开始发现      于是乎开始搜索问题和解决方案,然后就有了下面的解决方案1    方案1:通过window path + less.js-windows 的方式(网上可以快速找到这种解决的方式)    注意: window 操作系统下,经常会看到编译less的最后,会弹出一个"for install see less-plugin-clean-css"的error,好像所有的window操作系统都会这样(至少window7和window8.1是这样),原因是因为压缩css的时候出现了问题,如果我们把less2css的参数改下,就可以让这个error错误提示不显示!如下图    生活总是很蛋疼的,有些时候总是不能do one,run angwhere,你懂的。在window下有时候竟然方案一不能实行,所以才会有方案二的衍生,因为办法总比问题多!当时通过自己测试后发现这个方法简洁方便!    方案2:node+npm 全局安装 less 轻松解决问题      1.npm install less -g:全局安装less(请确保你已经安装好了node.js+npm环境)      2.检测less是否被全局安装(注意前后的区别)     3.编译less文件 来源

Less2css error 终极解决方案

拟墨画扇 提交于 2019-12-07 16:07:34
使用sublime Text3 的时候,安装less2Css后,和很多人一样以为大功告成,开始要运行编译less文件,结果开始发现      于是乎开始搜索问题和解决方案,然后就有了下面的解决方案1    方案1:通过window path + less.js-windows 的方式(网上可以快速找到这种解决的方式)    注意: window 操作系统下,经常会看到编译less的最后,会弹出一个"for install see less-plugin-clean-css"的error,好像所有的window操作系统都会这样(至少window7和window8.1是这样),原因是因为压缩css的时候出现了问题,如果我们把less2css的参数改下,就可以让这个error错误提示不显示!如下图    生活总是很蛋疼的,有些时候总是不能do one,run angwhere,你懂的。在window下有时候竟然方案一不能实行,所以才会有方案二的衍生,因为办法总比问题多!当时通过自己测试后发现这个方法简洁方便!    方案2:node+npm 全局安装 less 轻松解决问题      1.npm install less -g:全局安装less(请确保你已经安装好了node.js+npm环境)      2.检测less是否被全局安装(注意前后的区别)     3.编译less文件 来源

演练:在 Visual Studio 中编译面向 CLR 的 C++ 程序 (C++)

被刻印的时光 ゝ 提交于 2019-12-07 13:41:35
通过使用 Visual Studio 开发环境,您可以创建使用 .NET 类的 Visual C++ 程序,并对它们进行编译。 在本过程中,您可以键入自己 的 Visual C++ 程序,也可以使用示例程序之一。 本过程中使用的示例程序创建 一个名为 textfile.txt 的文本文件,并将其保存到项目目录中。 系统必备 这些主题假定您具备 C++ 语言的基础知识。 如果您是刚开始学习 C++,建议您参见 Herb Schildt 编写的 C++ Beginner's Guide(《C++ 初学者指南》),该书可从 http://go.microsoft.com/fwlink/?LinkId=115303 在线获得。 在 Visual Studio 中创建新项目并添加新的源文件 创建新项目。 在 “文件” 菜单上,指向 “新建” ,然后单击 “项目” 。 在“Visual C++ 项目类型”中单击 “CLR” ,然后单击 “CLR 空项目” 。 键入项目名称。 默认情况下,包含项目的 解决方案与新项目同名,当然,您也可以键入其他名称。 如果愿意,您可以为项目输 入一个不同的位置。 单击 “确定” 创建新项目。 如果“解决方案资源管理 器”不可见,请单击 “视图” 菜单上的 “解决方案资源管 理器” 。 向该项目添加新的源文件: 在解决方案资源管理器中 右击 “源文件” 文件夹

MongoDB副本集故障测试和解决方案

不想你离开。 提交于 2019-12-07 08:52:01
一、环境 $ cat /etc/redhat-release CentOS Linux release 7.0.1406 (Core) $ uname -a Linux zhaopin-2-201 3.10.0-123.el7.x86_64 #1 SMP Mon Jun 30 12:09:22 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux $ mongo MongoDB shell version: 3.0.6 connecting to: test rs0:PRIMARY> rs.status(); { "set" : "rs0", "date" : ISODate("2015-09-28T07:00:05.507Z"), "myState" : 1, "members" : [ { "_id" : 0, "name" : "172.30.2.201:27017", "health" : 1, "state" : 1, "stateStr" : "PRIMARY", "uptime" : 83, "optime" : Timestamp(1443423600, 1), "optimeDate" : ISODate("2015-09-28T07:00:00Z"), "electionTime" : Timestamp(1443423535, 2),

MongoDB分片故障测试和解决方案

时光总嘲笑我的痴心妄想 提交于 2019-12-07 08:51:46
一、环境 $ cat /etc/redhat-release CentOS Linux release 7.0.1406 (Core) $ uname -a Linux zhaopin-2-201 3.10.0-123.el7.x86_64 #1 SMP Mon Jun 30 12:09:22 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux $ mongo --port 30000 MongoDB shell version: 3.0.6 connecting to: 127.0.0.1:30000/test mongos> sh.status(); --- Sharding Status --- sharding version: { "_id" : 1, "minCompatibleVersion" : 5, "currentVersion" : 6, "clusterId" : ObjectId("561728b4030ea038bcb57fa0") } shards: { "_id" : "sh0", "host" : "sh0/172.30.2.201:27010" } { "_id" : "sh1", "host" : "sh1/172.30.2.201:27011" } balancer: Currently enabled: yes

C#生成配置选择release编译后仍然是debug(或者配置debug编译后仍是release)的问题解决--日志记录

杀马特。学长 韩版系。学妹 提交于 2019-12-07 04:50:30
一、Release改debug C#项目属性--生成--配置 已经选择Release,重新编译后仍然是Debug的问题: 改解决方案 配置属性--属性 中的的 “配置”为Realease,重新编译即可 ------------------------------------------------------------------------------------ 二、Debug改Relase(2018-04-05) 按 第一步改解决方案配置属性和项目属性为Debug后,重新编译仍然为Release。 解决方法:经过多次试验,发现工具栏中“启动”右边的解决方案配置仍然是Release,将其改为Debug后,重新编译即可。 总结:Release改debug,Debug改Relase只需要修改工具栏中“启动”右边的解决方案配置配置即可实现 来源: CSDN 作者: 绿意无痕 链接: https://blog.csdn.net/lvyiwuhen/article/details/79274810