做网站的网址是哪里来的经营网站挣钱

pingmian/2025/10/9 10:31:03/文章来源:
做网站的网址是哪里来的,经营网站挣钱,网站安全检测产品优势,谷歌推广哪家好2018-07-16 23:59内容来源#xff1a;2017 年 10 月 20 日#xff0c;苏宁云商IT总部资深技术经理陈华军在“PostgreSQL 2017中国技术大会”进行《苏宁citus分布式数据库应用实践》演讲分享。IT 大咖说#xff08;微信id#xff1a;itdakashuo#xff09;作为独家视频合作…2018-07-16 23:59内容来源2017 年 10 月 20 日苏宁云商IT总部资深技术经理陈华军在“PostgreSQL 2017中国技术大会”进行《苏宁citus分布式数据库应用实践》演讲分享。IT 大咖说微信iditdakashuo作为独家视频合作方经主办方和讲者审阅授权发布。摘要本次分享主要介绍了如何通过Citus打造分布式数据库对具体的部署情况进行了讲解。嘉宾演讲视频回放及 PPT请复制链接http://t.cn/RdmlKXd粘贴至浏览器地址栏即可。业务场景上图的系统架构主要是做订单的分析它会定时的从其他的业务系统中抽取订单以及订单的更新信息。每5分钟进行一次批量的处理更新10张左右的明细表。在数据库中同样也是5分钟做一次处理首先会对明细表进行计算之后的计算结果会被放到报表中。架构外层还有一些其他系统比如 cognos、智能分析 等它们主要是用来从数据中查报表或明细表。这套系统中我们采用的数据库是 DB2平时的 CPU 负载都达到了 50% 左右大促期间更是超过了 80%可以算是不堪重负。DB负载在哪如此高的负载到底问题是出在那些地方其实主要是在明细更新、报表计算、报表查询/明细查询上。明细更新时是5分钟更新10张明细表这其中最宽的表有400字段大概每行2.5kB。每次更新最宽的表约10w记录总体上是30w。我们还要保持最近数天的数据。这样看下来其实主要的压力是在随机更新换算一下大概每秒要做5k条记录的更新关键是这 5K条记录还都是宽表。报表计算也是每5分钟计算30多张报表要求2分钟完成每个报表平均执行14次明细表集合查询。估算下来大概是每分钟200次明细表的聚合运算。报表查询/明细查询中要求的并发度是大于30但正常情况下没有这么高大概只有10个左右。同时要求的响应时间要小于3秒。由于我们的系统接入的业务需要扩张预计年内负载还会增加10倍也就是说原先的每秒5k的明细表随机更新和3000w明细表数据将提升为每秒5k的明细表随机更新和3亿明细表数据。这样的背景下基于单机的DB 2肯定是搞不定的我们需要的应该是一种分布式方案。方案选型上图列出的就是我们当时所考察的各种方案因为PG在分析上还是比较有优势所以这些方案都和PG相关。第一个Greenplum由于已经比较成熟了所以我们一开始就比较看好但是它更新慢、并发低的缺陷不符合明细更新的性能要求因此被排除在外。第二个postgres_fdw由于不支持聚合下推和并行查询所以不符合明细表查询性能要求。第三个PG_XL方案我们并没有做深入的评估但是GMT对性能是有影响的估计很难满足我们对随机更新的需求。最后的citus的优势在于它是一个扩展稳定性和可维护性都比较好同时分片表的管理也很方便最终我们选择的就是这个方案。Citus介绍Citus架构与原理这张是Citus的架构图可以看到它由1个maste和多个worker组成数据表通过hash或者append分片的方式分散到每个worker上。这里的表被分为分片表和参考表参考表只有一个分片并且每个worker上都有一份。在应用访问的时候master接收应用的查询SQL然后对查询SQL进行解析生成分布式执行计划再将子执行路径分发到worker上执行最后汇总执行结果返回给应用。Citus主要适用于两种环境一种是实时数据分析一种是多租户应用。案例演示这里演示的是Citus的使用过程。分片表的创建和普通表是一样的只不过完成之后需要设置分片数最后执行create_distributed_table函数参数为需要分片的表以及分片字段还可以指定分片方法默认是hash方式。参考表的不同在于函数换成了create_reference_table。这两个函数主要做了两件事首先是在每个worker上创建分片其次是更新元数据。元数据定义了分片信息。元数据pg_dist_partition中存放的是分片表和分片规则可以从图中看到h代表的hash分片n表示的是参考表。分片表中有一个partkey它用来指定哪个字段做分片以及分片类型。元数据- pg_dist_shard定义了每个分片以及分片对应的hash范围不过参考表由于只有一个分片所以没有hash范围。元数据-pg_dist_shard_placement定义了每个分片存放的位置第一列是分片的ID号后面是所在的worker节点位置和端口号。基于元数据master可以生成分布式执行计划比如聚合查询就会生成如上图所示的执行计划。上半部分是在每个worker上预聚合每个分片并行执行下面则是master对worker的结果做最终的聚合。SQL限制—查询Citus最大的缺陷在于有着SQL限制并不是所有SQL都支持。最典型的就是对Join的限制它不支持2个非亲和分片表的outer join仅task-tracker执行器支持2个非亲和分片表的inner join对分片表和参考表的outer join参考表只能出现在left join的右边或right join的左边。对子查询也有着限制子查询不能参与join不能出现order bylimit和offset。一些SQL特性Citus同样不支持比如CTE、Window函数、集合操作、非分片列的count(distinct)。最后还有一点需要注意即本地表不能和分片表(参考表)混用。这些限制其实都可以使用某些方法绕过比如通过Hll(HyperLogLog)插件支持count(distinct)对于其他的一些操作也可以通过临时表或dblink中转。不过临时表的问题在于会将一个SQL拆成多个SQL。SQL限制—更新在更新上也存在一些限制它不支持跨分片的更新SQL和事务‘insert into ... select ... from ...’的支持存在部分限制插入源表和目的表必须是具有亲和性的分片表不允许出现Stable and volatile函数不支持LIMITOFFSET窗口函数集合操作Grouping setsDISTINCT。当然这些限制也存在对应的回避方法首先是使用copy代替insert其次是用SELECT master_modify_multiple_shards(‘…’)实现扩分片更新。SQL限制—DDL上图展示的是对DDL的支持情况这里面大部分都是支持的对于不支持的可以通过创建对等的唯一索引代替变更主键或者使用run_command_on_placements函数直接在所有分片位置上执行DDL的方式来进行回避。两种执行器Citus有两种执行器通过set citus.task_executor_typetask-tracker|real-time进行切换。默认的real-time又分为router和非router方式。router适用于只需在一个shard上执行的SQL1个master后端进程对每个worker只创建一个连接并缓存连接。非route下master后端进程会对所有worker上的所有shard同时发起连接并执行SQLSQL完成后断开连接。如果使用task-tracker执行器。Master是只和worker上的task-tracker进程交互task-tracker进程负责worker上的任务调度任务结束后master从worker上取回结果。worker上总的并发任务数可以通过参数控制。这里对这两种执行器进行了比较。real-time的优势主要在于响应时间小。task-tracker则是支持数据重分布SQL支持也比real-time略好同时并发数资源消耗可控。部署方案痛点我们的系统中首先面临的痛点就是对随机更新速度要求高。上图左边是Citus官方展示的性能数据看似接近所需的性能要求实际上远远不够因为这里记录的是普通的窄表而我们的是宽表而且还有其他的负载。图中右边是我这边做的性能测试。单机状态下插入速度是每秒13万条使用Citus后下降到了5w多这主要是由于master要对SQL进行解析和分发。在尝试对Citus进行优化后使Citus不解析SQL提升也不是很明显。最后一种方式是不使用master将每个worker作为master这次的效果达到了每秒30万条。第二个痛点就是前面提到的SQL限制问题虽然这些限制都有方法回避但是对应用的改造量比较大。解决方案这是我们最终的解决方案。首先对于插入和更新数据慢的问题不在走master直接在worker上更新。在更新之前会现在worker上查询分片的元数据然后再进行更新。另外为了尽量减少SQL限制对应用的影响我们采用的策略是尽量少做分片只对明细表进行分片。应用在查询的时候会将报表和维表做join也会将明细表和维表做join那么这里就会出现问题因为本地表和参考表不能出现在同一个SQL里。所以我们做了N份参考表每个worker放一份同时再将一份本地维表放在master上由报表做join用最后在更新的时候通过触发器同步本地维表和参考表。辅助工具函数开发为了支撑前面提到的两个策略我们实现了两个函数。pg_get_dist_shard_placement()函数用来批量获取记录所在分片位置函数。create_sync_trigger_for_table()函数用来自动生成本地维表和参考维表同步触发器的函数。连接池因为业务对SQL的响应时间要求较高所以我们使用的是real time执行器。但是由于real time存在的缺陷因此我们在master上部署了两套pgbounce连接池。一个在PostgreSQL前面应用在连接PostgreSQL前先连接到pgbouncer。另一个在master和worker之间。实际的使用的时候由于pgbounce不支持prepare语句所以有些应用还是要直连到master。效果上图是POC压测的结果基本上明细更新和报表结算满足了性能要求。测试的时候我们使用的是8个worker而在部署的时候其实是先部署4台然后再扩容到8台。日常维护Citus的维护和普通的PG维护在大部分情况下区别不大不过有些有时候DDL执行会无法分发这时可以用它的一些公有函数来完成。另外更新多副本分片表的途中worker发生故障可能导致该worker上的副本没有被正确更新。此时citus会在系统表pg_dist_shard_placement 中将其标识为“失效”状态。使用master_copy_shard_placement() 函数就能够进行恢复。Citus对DDL、copy等跨库操作采用2PC保障事务一致2PC中途发生故障会产生未决事务。对每个2PC事务中的操作都记录到系统表pg_dist_transaction通过该表就能够判断哪些事务该回滚或提交。踩过的坑在实际的应用中我们并没有碰到什么大坑主要是一些小问题。第一个是由于master(real-time)到worker用的短连接pgbouncer默认记录连接和断连接事件导致日志文件增长太快。后来我们将其关闭了。第二个是master(real-time)会瞬间创建大量到worker 的并发连接而默认的unix套接字的 backlog连接数偏低 master节点的 PostgreSQL日志中经常发现大量连接出错的告警。对此的解决办法是修改修改pgbouncer的listen_backlog然后硬重启pgbouncer。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/90450.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

昆山哪家做网站好网站 测速度

华子目录 实验要求实验步骤 实验要求 组建多个子目录网站www.openlab.com,该网站有2个子目录www.openlab.com/sxhkt和www.openlab.com/zywww.openlab.com/sxhkt使用http读取www.openlab.com/zy使用https读取 实验步骤 准备工作 [rootserver ~]# setenforce 0[ro…

自学做网站可以吗竞价推广的基本流程

C是一种功能强大的编程语言,被广泛应用于嵌入式系统的开发和物联网(IoT)应用程序的编写。C具有高性能、灵活性以及强大的硬件控制能力,使其成为嵌入式编程和物联网开发的理想选择。在本文中,我们将讨论C在硬件控制和物…

网站备案包括空间内容吗做网站 域名 最快要多久

paste命令会把每个文件以列对列的方式,一列列地加以合并 ,他就是相当于把两个不同的文件内容粘贴在一起,形成新的文件。注意:paste默认粘贴方式以列的方式粘贴,但是并不是不能以行的方式粘贴,加上-s选项就可…

企业做网站一般多少钱wordpress 页面宽度

状态模式指给对象定义不同的状态,并为不同的状态定义不同的行为,在对象的状态发生变换时自动切换状态的行为。 状态模式是一种对象行为型模式,它将对象的不同行为封装到不同的状态中,遵循了“单一职责”原则。同时,状…

企业网站建设的基本原则为如何做网络营销推广南宁

需要点击File—>New—>Other…在Web文件夹下找到Dynamic Web Project—>Next修改server端口可以在启动项目后访问地址是端口号项目名转载于:https://juejin.im/post/5cb4999df265da037b610545

个人网站内容wordpress可以装在子目录下

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼为了给您带来更好的体验,《热血江湖》部分服务器将于6月2日进行合服。本次合服为多个服务器数据互通,合服后登录入口不变, 各位少侠登录原服务器即可正常游戏。合服时间:6月2日14:00-…

建设vip网站相关视频wordpress如何发邮件

题目链接 [NOIP2006 提高组] 金明的预算方案 题目描述 金明今天很开心,家里购置的新房就要领钥匙了,新房里有一间金明自己专用的很宽敞的房间。更让他高兴的是,妈妈昨天对他说:“你的房间需要购买哪些物品,怎么布置…

毕设做网站些什么比较简单有些网站域名解析错误

这篇文章主要给大家介绍了关于vue element-ui的table列表中展示多张图片(可放大)效果的相关资料,文中通过代码示例介绍的非常详细,需要的朋友可以参考下 一、效果图 二、代码部分 1、原理 使用 <el-table-column> 和 <el-image> 组件来在表格中插入缩略图 2、te…

打工网站校企合作建设微信电商小程序怎么做

1.count(*)函数用法COUNT(*) 函数返回表中的记录数&#xff0c;具体来说&#xff0c;返回值是一个数字。语法&#xff1a;返回表中所有记录的数量&#xff1a;SELECT COUNT(*) FROM table_name返回表中满足一定条件的记录的数量&#xff1a;SELECT COUNT(*) FROM table_name WH…

深圳企业企业网站建设应用商店搜索优化

网站要想加载快无非就是减少http请求次数&#xff0c;下面说一下具体做法&#xff1a; 1&#xff1a;字符集声明 如果<head>部分未定义字符集&#xff0c;将增加页面渲染次数&#xff0c;速度减慢。 2&#xff1a;Meta信息完善程度 建议网站meta信息填写完整 3&…

公司做的网站过期了wordpress后台打开超慢

前言 为了解决单体应用的缺点&#xff0c;工程师们想到将原来大的单体应用进行拆分&#xff0c;化整为零形成独立的应用&#xff0c;不过此时这些应用没有直观的入口&#xff0c;因此用传统应用的概念来定义就不太妥当。于是诞生了“服务”&#xff0c;通过服务来描述这种功能…

做网站按什么收费多少网站活跃度怎么做

一、inflate简介 inflate这个方法总共有四种形式&#xff08;见下面&#xff09;&#xff0c;目的都是把xml表述的layout转化为View对象。 其中有一个比较常用&#xff0c;View inflate(int resource, ViewGroup root)&#xff0c;另三个&#xff0c;其实目的和这个差不多。 …

马关网站建设科技公司注册经营范围

第01题 下面关于OSPF邻居关系和邻接关系描述正确的是 A、邻接关系由 OSPF的 DD 报文维护 B、OSPF 路由器在交换 Hello 报文之前必须建立邻接关系 C、邻居关系是从邻接关系中选出的为了交换路由信息而形成的关系 D、并非所有的邻居关系都可以成为邻接关系 答案&#xff1a;D 解析…

网站和网页不同吗音乐自助建站

反射是指在运行时动态地获取和操作类的信息&#xff08;如类的属性、方法、构造函数等&#xff09;&#xff0c;以及对对象进行动态调用和操作的能力。通过反射&#xff0c;可以在编译时无法确定的情况下&#xff0c;获取、操作和创建类的实例。 适用场景&#xff1a; 编写通用…

蔚县网站建设自己网站做问卷调查问卷

文章目录 9.1 维护大型项目的 CSS9.1.1 基础知识9.1.2 重点案例&#xff1a;构建一个可复用的 UI 组件库9.1.3 拓展案例 1&#xff1a;优化现有项目的 CSS 结构9.1.4 拓展案例 2&#xff1a;实现主题切换功能 9.2 BEM、OOCSS 和 SMACSS 方法论9.2.1 基础知识9.2.2 重点案例&…

南京建设网站首页抖音粉丝购买网站

文章目录 概述一、使用Gitee1. 注册账号2. 绑定邮箱3. 新建仓库4. 查看项目地址 二、安装配置Git1. 下载安装包2. 校验是否安装成功。3. 配置Git4. Git命令5. Git实操 三、PyCharmGit1. 配置Git2. Clone项目3. 提交文件到服务器4. 从服务器拉取文件 概述 持续集成&#xff08;…

沈阳网站开发公司电话机关门户网站建设要求

编辑&#xff1a;小君君技术校对&#xff1a;星空下的文仔、bot在 Kubernetes 中&#xff0c;ConfigMap 是允许管理员将配置组件与镜像内容解耦&#xff0c;使容器化应用程序产生可移植性的一种资源。ConfigMap 可以与 Kubernetes Pod 一起使用&#xff0c;用于动态添加或更改容…

网站建设约谈表态发言宁波企业网站制作推荐

1.MyBatis-Plus的代码生成器快速生成后端代码 实体类 持久层代码 注意&#xff1a;mapper接口都继承于BaseMapper 服务层代码 注意&#xff1a;service接口都继承于IService&#xff0c;service实现类都继承ServiceImpl 控制层代码 注意&#xff1a;只有类&a…

app网站制作软件有哪些重庆网站建设有限公司

摘要&#xff1a; 在日前结束的云栖大会深圳峰会上&#xff0c;除了阿里云全面进军IoT的战略宣布之外&#xff0c;持续不断的生态签约成了另一大亮点&#xff1a;全天的IoT合伙作伴签约&#xff0c;围绕“ET大脑”的千里马计划&#xff0c;以及司法领域重要IT服务商通达海的合作…

个人网站建设小江北京品牌建设网站公司排名

1. 介绍 登录 GitHub 官网&#xff0c;会提示要开启双因子认证。 但推荐的 APP 都是国外了&#xff0c;国内用不了。 可以使用 “腾讯身份验证器” 微信小程序。 2. 操作 开启双因子认证&#xff1a; 打开 “腾讯身份验证器” 微信小程序&#xff0c;扫描 GitHub 那个二维…