当前位置: 首页 > news >正文

什么网站程序可以做抽奖页面网站搜索优化官网

什么网站程序可以做抽奖页面,网站搜索优化官网,西安网络关键词排名,南京网站建设 seo1 微服务的发展 微服务倡导将复杂的单体应用拆分为若干个功能简单、松耦合的服务#xff0c;这样可以降低开发难度、增强扩展性、便于敏捷开发。当前被越来越多的开发者推崇#xff0c;很多互联网行业巨头、开源社区等都开始了微服务的讨论和实践。Hailo有160个不同服务构成…1 微服务的发展 微服务倡导将复杂的单体应用拆分为若干个功能简单、松耦合的服务这样可以降低开发难度、增强扩展性、便于敏捷开发。当前被越来越多的开发者推崇很多互联网行业巨头、开源社区等都开始了微服务的讨论和实践。Hailo有160个不同服务构成NetFlix有大约600个服务。国内方面阿里巴巴、腾讯、360、京东、58同城等很多互联网公司都进行了微服务化实践。当前微服务的开发框架也非常多比较著名的有Dubbo、SpringCloud、thrift 、grpc等。 2 微服务落地存在的问题 虽然微服务现在如火如荼但对其实践其实仍处于探索阶段。很多中小型互联网公司鉴于经验、技术实力等问题微服务落地比较困难。如著名架构师Chris Richardson所言目前存在的主要困难有如下几方面 1单体应用拆分为分布式系统后进程间的通讯机制和故障处理措施变的更加复杂。 2系统微服务化后一个看似简单的功能内部可能需要调用多个服务并操作多个数据库实现服务调用的分布式事务问题变的非常突出。 3微服务数量众多其测试、部署、监控等都变的更加困难。 随着RPC框架的成熟第一个问题已经逐渐得到解决。例如dubbo可以支持多种通讯协议springcloud可以非常好的支持restful调用。对于第三个问题随着docker、devops技术的发展以及各公有云paas平台自动化运维工具的推出微服务的测试、部署与运维会变得越来越容易。 而对于第二个问题现在还没有通用方案很好的解决微服务产生的事务问题。分布式事务已经成为微服务落地最大的阻碍也是最具挑战性的一个技术难题。 为此本文将深入和大家探讨微服务架构下分布式事务的各种解决方案并重点为大家解读阿里巴巴提出的分布式事务解决方案----GTS。该方案中提到的GTS是全新一代解决微服务问题的分布式事务互联网中间件。 3 传统分布式事务解决方案 3.1 基于XA协议的两阶段提交方案 交易中间件与数据库通过 XA 接口规范使用两阶段提交来完成一个全局事务 XA 规范的基础是两阶段提交协议。 第一阶段是表决阶段所有参与者都将本事务能否成功的信息反馈发给协调者第二阶段是执行阶段协调者根据所有参与者的反馈通知所有参与者步调一致地在所有分支上提交或者回滚。 两阶段提交方案应用非常广泛几乎所有商业OLTP数据库都支持XA协议。但是两阶段提交方案锁定资源时间长对性能影响很大基本不适合解决微服务事务问题。 3.2 TCC方案 TCC方案在电商、金融领域落地较多。TCC方案其实是两阶段提交的一种改进。其将整个业务逻辑的每个分支显式的分成了Try、Confirm、Cancel三个操作。Try部分完成业务的准备工作confirm部分完成业务的提交cancel部分完成事务的回滚。基本原理如下图所示。 事务开始时业务应用会向事务协调器注册启动事务。之后业务应用会调用所有服务的try接口完成一阶段准备。之后事务协调器会根据try接口返回情况决定调用confirm接口或者cancel接口。如果接口调用失败会进行重试。 TCC方案让应用自己定义数据库操作的粒度使得降低锁冲突、提高吞吐量成为可能。 当然TCC方案也有不足之处集中表现在以下两个方面 对应用的侵入性强。业务逻辑的每个分支都需要实现try、confirm、cancel三个操作应用侵入性较强改造成本高。 实现难度较大。需要按照网络状态、系统故障等不同的失败原因实现不同的回滚策略。为了满足一致性的要求confirm和cancel接口必须实现幂等。 上述原因导致TCC方案大多被研发实力较强、有迫切需求的大公司所采用。微服务倡导服务的轻量化、易部署而TCC方案中很多事务的处理逻辑需要应用自己编码实现复杂且开发量大。 3.3 基于消息的最终一致性方案 消息一致性方案是通过消息中间件保证上、下游应用数据操作的一致性。基本思路是将本地操作和发送消息放在一个事务中保证本地操作和消息发送要么两者都成功或者都失败。下游应用向消息系统订阅该消息收到消息后执行相应操作。 消息方案从本质上讲是将分布式事务转换为两个本地事务然后依靠下游业务的重试机制达到最终一致性。基于消息的最终一致性方案对应用侵入性也很高应用需要进行大量业务改造成本较高。 4 GTS--分布式事务解决方案 GTS是一款分布式事务中间件由阿里巴巴中间件部门研发可以为微服务架构中的分布式事务提供一站式解决方案。 更多GTS资料请访问研发团队微博。 4.1 GTS的核心优势 性能超强 GTS通过大量创新解决了事务ACID特性与高性能、高可用、低侵入不可兼得的问题。单事务分支的平均响应时间在2ms左右3台服务器组成的集群可以支撑3万TPS以上的分布式事务请求。 应用侵入性极低 GTS对业务低侵入业务代码最少只需要添加一行注解TxcTransaction声明事务即可。业务与事务分离将微服务从事务中解放出来微服务关注于业务本身不再需要考虑反向接口、幂等、回滚策略等复杂问题极大降低了微服务开发的难度与工作量。 完整解决方案 GTS支持多种主流的服务框架包括EDASDubboSpring Cloud等。 有些情况下应用需要调用第三方系统的接口而第三方系统没有接入GTS。此时需要用到GTS的MT模式。GTS的MT模式可以等价于TCC模式用户可以根据自身业务需求自定义每个事务阶段的具体行为。MT模式提供了更多的灵活性可能性以达到特殊场景下的自定义优化及特殊功能的实现。 容错能力强 GTS解决了XA事务协调器单点问题实现真正的高可用可以保证各种异常情况下的严格数据一致。 4.2 GTS的应用场景 GTS可应用在涉及服务调用的多个领域包括但不限于金融支付、电信、电子商务、快递物流、广告营销、社交、即时通信、手游、视频、物联网、车联网等详细介绍可以阅读 《GTS--阿里巴巴分布式事务全新解决方案》一文。 4.3 GTS与微服务的集成 GTS包括客户端GTS Client、资源管理器GTS RM和事务协调器GTS Server三个部分。GTS Client主要用来界定事务边界完成事务的发起与结束。GTS RM完成事务分支的创建、提交、回滚等操作。GTS Server主要负责分布式事务的整体推进事务生命周期的管理。GTS和微服务集成的结构图如下所示GTS Client需要和业务应用集成部署RM与微服务集成部署。 4.4 GTS的输出形式 GTS目前有三种输出形式公有云输出、公网输出、专有云输出。 4.4.1 公有云输出 这种输出形式面向阿里云用户。如果用户的业务系统已经部署到阿里云上可以申请开通公有云GTS。开通后业务应用即可通过GTS保证服务调用的一致性。这种使用场景下业务系统和GTS间的网络环境比较理想达到很好性能。 4.4.2 公网输出 这种输出形式面向于非阿里云的用户使用更加方便、灵活业务系统只要能连接互联网即可享受GTS提供的云服务与公有云输出的差别在于客户端部署于用户本地而不在云上。 在正常网络环境下以包含两个本地事务的全局事务为例事务完成时间在20ms左右50个并发就可以轻松实现1000TPS以上分布式事务对绝大多数业务来说性能是足够的。在公网环境网络闪断很难完全避免这种情况下GTS仍能保证服务调用的数据一致性。 具体使用样例使用参见4.7节GTS的工程样例。 4.4.3 专有云输出 这种形式主要面向于已建设了自己专有云平台的大用户GTS可以直接部署到用户的专有云上为专有云提供分布式事务服务。目前已经有10多个特大型企业的专有云使用GTS解决分布式事务难题性能与稳定性经过了用户的严格检测。 4.5 GTS的使用方式 GTS对应用的侵入性非常低使用也很简单。下面以订单存储应用为例说明。订单业务应用通过调用订单服务和库存服务完成订单业务服务开发框架为Dubbo。 4.5.1 订单业务应用 在业务函数外围使用TxcTransaction注解即可开启分布式事务。Dubbo应用通过隐藏参数将GTS的事务xid传播到服务端。 4.5.2 服务提供者 更新库存方法 4.6 GTS的应用情况 GTS目前已经在淘宝、天猫、阿里影业、淘票票、阿里妈妈、1688等阿里各业务系统广泛使用经受了16年和17年两年双十一海量请求的考验。某线上业务系统最高流量已达十万TPS每秒钟10万笔事务。 GTS在公有云和专有云输出后已经有了100多个线上用户很多用户通过GTS解决SpringCloud、Dubbo、Edas等服务框架的分布式事务问题。业务领域涉及电力、物流、ETC、烟草、金融、零售、电商、共享出行等十几个行业得到用户的一致认可。 ![](https://img.alicdn.com/tfs/TB1QpqNdFGWBuNjy0FbXXb4sXXa-1530-1140.png) 上图是GTS与SpringCloud集成应用于某共享出行系统。业务共享出行场景下通过GTS支撑物联网系统、订单系统、支付系统、运维系统、分析系统等系各统应用的数据一致性保证海量订单和数千万流水的交易。 4.7 GTS的工程样例 GTS的公有云样例可参考阿里云网站。在公网环境下提供sample-txc-simple和sample-txc-dubbo两个样例工程。 4.7.1 sample-txc-simple样例 4.7.1.1 样例业务逻辑 该样例是GTS的入门sample案例的业务逻辑是从A账户转账给B账户其中A和B分别位于两个MySQL数据库中使用GTS事务保证A和B账户钱的总数始终不变。 4.7.1.2 样例搭建方法 1) 准备数据库环境 安装MySQL创建两个数据库db1和db2。在db1和db2中分别创建txc_undo_log表SQL脚本见4.7.3。在db1库中创建user_money_a表在db2库中创建user_money_b表。 2) 下载样例 将sample-txc-simple文件下载到本地样例中已经包含了GTS的SDK。 3) 修改配置 打开sample-txc-simple/src/main/resources目录下的txc-client-context.xml将数据源的url、username、password修改为实际值。 4) 运行样例 在sample-txc-simple目录下执行build.sh编译本工程。编译完成后执行run.sh。 4.7.2 sample-txc-dubbo 样例 4.7.2.1 样例业务逻辑 本案例模拟了用户下订单、减库存的业务逻辑。客户端Client通过调用订单服务OrderService创建订单之后通过调用库存服务StockService扣库存。其中订单服务读写订单数据库库存服务读写库存数据库。由 GTS 保证跨服务事务的一致性。 4.7.2.2 样例搭建方法 1) 准备数据库环境 安装MySQL创建两个数据库db1和db2。在db1和db2中分别创建txc_undo_log表。在db1库中创建orders表在db2库中创建stock表。 2) 下载样例 将样例文件sample-txc-dubbo下载到本地机器样例中已经包含了GTS的SDK。 3) 修改配置 打开sample-txc-dubbo/src/main/resources目录将dubbo-order-service.xml、dubbo-stock-service.xml两个文件中数据源的url、username、password修改为实际值。 4) 运行样例 编译程序 在工程根目录执行 build.sh 命令编译工程。编译后会在 sample-txc-dubbo/client/bin 目录下生成 order_run.sh、stock_run.sh、client_run.sh 三个运行脚本对应订单服务、库存服务以及客户端。 运行程序 在根目录执行run.sh该脚本会依次启动order_run.sh(订单服务)、stock_run.sh(库存服务)和client_run.sh(客户端程序)。 4.7.2.3 其他说明 样例使用Multicast注册中心的声明方式。如果本机使用无线网络dubbo服务在绑定地址时有可能获取ipv6地址可以通过jvm启动参数禁用。 方法是配置jvm启动参数?-Djava.net.preferIPv4Stacktrue。 4.7.3 SQL 4.7.3.1 建表 txc_undo_log CREATE TABLE txc_undo_log ( id bigint(20) NOT NULL AUTO_INCREMENT COMMENT 主键, gmt_create datetime NOT NULL COMMENT 创建时间, gmt_modified datetime NOT NULL COMMENT 修改时间, xid varchar(100) NOT NULL COMMENT 全局事务ID, branch_id bigint(20) NOT NULL COMMENT 分支事务ID, rollback_info longblob NOT NULL COMMENT LOG, status int(11) NOT NULL COMMENT 状态, server varchar(32) NOT NULL COMMENT 分支所在DB IP, PRIMARY KEY (id), KEY?unionkey(xid,branch_id) ) ENGINEInnoDB AUTO_INCREMENT211225994 DEFAULT CHARSETutf8 COMMENT事务日志表; 4.7.3.2 建表 user_money_a CREATE TABLE user_money_a( id int(11) NOT NULL AUTO_INCREMENT, money int(11) DEFAULT NULL, PRIMARY KEY (id) ) ENGINEInnoDB AUTO_INCREMENT2 DEFAULT CHARSETutf8; 4.7.3.3 建表 user_money_b CREATE TABLE user_money_b ( id int(11) NOT NULL AUTO_INCREMENT, money int(11) DEFAULT NULL, PRIMARY KEY (id) ) ENGINEInnoDB AUTO_INCREMENT2 DEFAULT CHARSETutf8; 4.7.3.4 建表 orders CREATE TABLE orders ( id bigint(20) NOT NULL AUTO_INCREMENT, user_id varchar(255) NOT NULL, product_id int(11) NOT NULL, number int(11) NOT NULL, gmt_create timestamp NOT NULL, PRIMARY KEY (id) ) ENGINEMyISAM AUTO_INCREMENT351 DEFAULT CHARSETutf8 4.7.3.5 建表 stock CREATE TABLE stock( product_id?int(11) NOT NULL, price float NOT NULL, amount int(11) NOT NULL, PRIMARY KEY (product_id) ) ENGINEInnoDB DEFAULT CHARSETutf8 想要了解更多分布式知识点的可以关注我一下我后续也会整理更多关于分布式架构这一块的知识点分享出来另外顺便给大家推荐一个交流学习群650385180里面会分享一些资深架构师录制的视频录像有SpringMyBatisNetty源码分析高并发、高性能、分布式、微服务架构的原理JVM性能优化这些成为架构师必备的知识体系。还能领取免费的学习资源目前受益良多以下的课程体系图也是在群里获取。 5 总结 GTS已经在阿里内部广泛使用经过了双十一流量高峰的考验。内部成熟后在专有云和公有云服务了很多用户很多用户一天事务量在千万/亿级别解决了业务服务化改造后的分布式事务棘手技术难题。 在整个世界范围内既满足事务ACID特性又具备高性能、高可用、业务侵入性低的分布式事务中间件在GTS前是不存在的。让我们一起体验GTS带来的巨大变革吧
http://www.sadfv.cn/news/183414/

相关文章:

  • 广东外贸网站建设企业wordpress页面内导航
  • 设计一个简单的旅游网站电脑网络服务在哪里
  • 理财网站如何做推广方案一流设计网站
  • 国内设计网站大全软件工程的八个步骤
  • 站长统计免费下载wordpress 教程
  • 江门官网建站公司如何利用网站赚钱
  • php 向网站发送数据大连城乡建设网官网
  • 郑州网站建设哪家好怎么样福建建筑人才服务中心档案
  • 朝阳区网站建设公司html小清新类型网站
  • 做阿里巴巴网站装修要多久广州网站改版 网站建设
  • 北京住房城乡建设部网站开发一个app大概要多少钱
  • wordpress个人网站主题WordPress打开 速度
  • 基于多站点的网站内容管理平台的管理与应用平阴网站建设
  • 学校网站设计及代码福建住房和建设网站
  • 卖文章的网站源码公司名字大全列表
  • wordpress 内容 管理郑州百度网站快速优化
  • wordpress后台登录地址改搜索引擎优化师工资
  • 平湖市网站建设app推广的网站
  • 长沙房地产网站设计佛山网站推广怎么做
  • 网站开发的工作总结中世纪变装小说wordpress
  • 石佛营网站建设网站建设会面临些什么问题
  • 商丘做网站用什么程序中建八局第二建设有限公司
  • 郑州做网站 熊掌号wordpress 百度知道主题
  • 全网网站推广手机端网站建设郑州
  • 注册网站入口网站维护员工作内容
  • 韩国网站域名分类wordpress登录几天退出账号
  • 合肥网站建设公司自动推广软件下载
  • 做服装店网站的素材北京价格网
  • 表格模板免费下载网站漕泾网站建设
  • 安卓网站客户端制作软件网页游戏交易平台官网