分布式事物解决方案

上传人:bin****86 文档编号:56712053 上传时间:2018-10-15 格式:DOCX 页数:10 大小:19.87KB
返回 下载 相关 举报
分布式事物解决方案_第1页
第1页 / 共10页
分布式事物解决方案_第2页
第2页 / 共10页
分布式事物解决方案_第3页
第3页 / 共10页
分布式事物解决方案_第4页
第4页 / 共10页
分布式事物解决方案_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《分布式事物解决方案》由会员分享,可在线阅读,更多相关《分布式事物解决方案(10页珍藏版)》请在金锄头文库上搜索。

1、分布式事物解决方案分布式事物解决方案篇一:Redis 分布式解决方案-CoidsCodis 是一个分布式 解决方案, 对于上层的应用来说, 连接到 CodisProxy 和连接原生的 Redis Server 没有明显的区别 (不支持的命令列表), 上层应用可以像使用单机的 Redis 一样使用, Codis 底层会处理请求的转发, 不停机的数据迁移等工作, 所有后边的一切事情, 对于前面的客户端来说是透明的, 可以简单的认为后边连接的是一个内存无限大的 Redis 服务. Codis 由四部分组成: Codis Proxy(codis-proxy) 实现 redis 协议,由于本身是无状态的

2、,因此可以部署很多个节点 Codis Manager (codis-config) 是 codis 的管理工具,包括添加/删除 redis 节点添加删除 proxy 节点,发起数据迁移等操作,自带 httpserver,支持管理后台方式管理配置 ? ? ? Codis Redis(codis-server) 是 codis 维护的redis 分支,基于分支,加入了 slot 的支持和原子的数据迁移命令;codis-proxy 和 codis-config 只能和这个版本的 redis 交互才能正常运行 ? ZooKeeper 用于 codis 集群元数据的存储,维护codis 集群节点 Cod

3、is 优缺点 优点 ? 对客户端透明,与 codis 交互方式和 redis 本身交互一样 ? 支持在线数据迁移,迁移过程对客户端透明? 有简单的管理和监控界面 ? 支持高可用,无论是 redis 数据存储还是代理节点 ? 自动进行数据的均衡分配 ? 最大支持 1024 个 redis 实例,存储容量海量 ? 高性能 缺点 ? 采用自有的 redis 分支,不能与原版的 redis 保持同? ? 如果 codis 的 proxy 只有一个的情况下,redis 的性能会下降 20%左右 ? 某些命令不支持,比如事务命令muti ? 国内开源产品,活跃度相对弱一些 Codis 架构 Codis 的

4、性能(代理+两个 redis 节点篇二:SQLServer 分布式事务配置SQL Server 分布式事物配置 适用环境 操作系统:windowsXX 数据库:sqlserverXX 问题现象 在执行分布式事务时,在 sqlserverXX 下收到如下错误: 消息 7391,级别 16,状态 2,过程 xxxxx,第 16 行 无法执行该操作,因为链接服务器“xxxxx“的 OLEDB访问接口“SQLNCLI“无法启动分布式事务。 解决方案 1. 双方启动 MSDTC 服务 MSDTC 服务提供分布式事务服务,如果要在数据库中使用分布式事务,必须在参与的双方服务器启动MSDTC(Distrib

5、utedTransactionCoordinator)服务。 2. 打开双方 135 端口 MSDTC 服务依赖于 RPC(RemoteProcedureCall(RPC))服务,RPC 使用 135 端口,保证 RPC 服务启动,如果服务器有防火墙,保证 135 端口不被防火墙挡住。 使用“telnetIP135”命令测试对方端口是否对外开放。也可用端口扫描软件(比如 AdvancedPortScanner)扫描端口以判断端口是否开放。 3. 保证链接服务器中语句没有访问发起事务服务器的操作 在发起事务的服务器执行链接服务器上的查询、视图或存储过程中含有访问发起事务服务器的操作,这样的操作叫

6、做环回(loopback) ,是不被支持的,所以要保证在链接服务器中不存在此类操作。 在事务开始前加入 set xact_abort ON 语句对于大多数 OLEDB 提供程序(包括 SQL Server) ,必须将隐式或显示事务中的数据修改语句中的 XACT_ABORT 设置为 ON。唯一不需要该选项的情况是在提供程序支持嵌套事务时。 MSDTC 设置打开“管理工具组件服务” ,以此打开“组件服务计算机” ,在“我的电脑”上点击右键。在MSDTC 选项卡中,点击“安全配置”按钮。 在安全配置窗口中做如下设置:选中“网络 DTC 访问”在客户端管理中选中“允许远程客户端” “允许远程管理”在事

7、务管理通讯中选“允许入站” “允许出站” “不要求进行验证”保证 DTC 登陆账户为: NTAuthorityNetworkService4.链接服务器和名称解析问题 建立链接 sqlserver 服务器,通常有两种情况: 1. 第一种情况,产品选”sqlserver” EXECsp_addlinkedserverserver=linkServerName,srvproduct=NSQLServer 这种情况,server(linkServerName)就是要链接的sqlserver 服务器名或者 ip 地址。2. 第二种情况,访问接口选“MicrosoftOLEDBProviderSqlSe

8、rver”或 “SqlNativeClient” EXECsp_addlinkedserverserver=linkServerName,srvproduct=,provide r=SQLNCLI,datasrc=sqlServerName 这种情况,datasrc(sqlServerName)就是要链接的实际 sqlserver 服务器名或者 ip 地址。 Sqlserver 数据库引擎是通过上面设置的服务器名或者 ip 地址访问链接服务器,DTC 服务只通过服务器名地址访问链接服务器,所以要保证数据库引擎和 DTC 都能通过服务器名或者 ip 地址访问到链接服务器。 数据库引擎和 DTC

9、解析服务器的方式不太一样,下面分别叙述 数据库引擎 第一种情况的server 或者第二种情况的datasrc 设置为 ip 地址时,数据库引擎会根据 ip 地址访问链接服务器,这时不需要做名称解析。 第一种情况的server 或者第二种情况的datasrc 设置为 sqlserver 服务器名时,需要做名称解析,就是把服务器名解析为 ip 地址。 有两个办法解析服务器名: 一是在 sqlserver 客户端配置中设置一个别名,将上面的服务器名对应到链接服务器的 ip 地址。 二是在“C:WINDOWSsystem32driversetchosts”文件中增加一条记录: 服务器名 作用同样是把服

10、务器名对应到链接服务器的 ip 地址。DTC 不管哪一种情况,只要server 设置的是服务器名而不是 ip 地址,就需要进行名称解析,办法同上面第二种办法,在 hosts 文件中增加解析记录,上面的第一种办法对DTC 不起作用。 如果server 设置的是 ip 地址,同样不需要做域名解析工作。 5. 远程服务器上的名称解析 分布式事务的参与服务器是需要相互访问的,发起查询的服务器要根据机器名或 ip 查找远程服务器的,同样远程服务器也要查找发起服务器,远程服务器通过发起服务器的机器名查找服务器,所以要保证远程服务器能够通过发起服务器的机器名访问到发起服务器。一般的,两个服务器在同一网段机器

11、名能就行很好的解析,但是也不保证都能很好的解析,所以比较保险的做法是: 在远程服务器的在“C:WINDOWSsystem32driversetchosts”文件中增加一条记录:发起服务器名 篇三:Redis 分布式解决方案-CoidsCodis 是一个分布式 解决方案, 对于上层的应用来说, 连接到 CodisProxy 和连接原生的 Redis Server 没有明显的区别 (不支持的命令列表), 上层应用可以像使用单机的 Redis 一样使用, Codis 底层会处理请求的转发, 不停机的数据迁移等工作, 所有后边的一切事情, 对于前面的客户端来说是透明的, 可以简单的认为后边连接的是一个

12、内存无限大的 Redis 服务. Codis 由四部分组成: Codis Proxy(codis-proxy) 实现 redis 协议,由于本身是无状态的,因此可以部署很多个节点 ? ? Codis Manager (codis-config) 是 codis 的管理工具,包括添加/删除 redis 节点 添加删除 proxy 节点,发起数据迁移等操作,自带httpserver,支持管理后台方式管理配置 ? Codis Redis(codis-server) 是 codis 维护的redis 分支,基于分支,加 入了 slot 的支持和原子的数据迁移命令;codis-proxy 和 codis

13、-config 只能和这个版本的 redis 交互才能正常运行 ? ZooKeeper 用于 codis 集群元数据的存储,维护codis 集群节点 Codis 优缺点 优点 ? 对客户端透明,与 codis 交互方式和 redis 本身交互一样 ? 支持在线数据迁移,迁移过程对客户端透明 ? 有简单的管理和监控界面 ? 支持高可用,无论是 redis 数据存储还是代理节点 ? 自动进行数据的均衡分配 ? 最大支持 1024 个 redis 实例,存储容量海量 ? 高性能 缺点? 采用自有的 redis 分支,不能与原版的 redis 保持同? 如果 codis 的 proxy 只有一个的情况

14、下,redis 的性能会下降 20%左右 ? 某些命令不支持,比如事务命令muti ? 国内开源产品,活跃度相对弱一些 Codis 架构 Codis 的性能(代理+两个 redis 节点 1. wget1. tar -zxvf1. wget zookeeper/ . 1. vi /.bash_profile 配置 go 环境变量还有 zk home html 1. vi /.bash_profile 1. PATH=$PATH:$HOME/bin2. 3. export PATH4. JAVA_HOME=/java/_76 5. PATH=$JAVA_HOME/bin:$PATH 6. CLA

15、SSPATH =.:$JAVA_HOME/lib/:$JAVA_HOME/lib/7. export JAVA_HOME 8. export CLASSPATH 9. 10. ZOOKEEPER_HOME=/java/11. 12. 13. GOROOT=/java/go14. exportGOPATH=/java/codis15. PATH=$PATH:$GOROOT/bin:$GOPATH/bin:$ZOOKEEPER_HOME/bin 16. export PATH 1. source /.bash_profile 1. mkdir codis 1. go get -u -d /CodisLabs/codis 进入到 coids 里面执行 make 编译代码

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 总结/报告

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号