PolarDB集群原生支持读写分离方式接入业务 但是在真实业务中 经常出现节点上负载不均情况 严重的话可能导致单节点承担大量的流量被拖跨 最终整个集群雪崩影响业务。
本文主要描述PolarDB代理的配置方法以及流量不均时如何定位。
数据库代理基本信息在RDS MySQL产品中 数据库代理需要单独购买并配置 而在PolarDB M集群中 默认即开启数据库代理功能 同时功能也比 MySQL的数据库代理更为强大。
主地址 读写 直接指向主节点 只能配置连接名 无法配置代理功能集群地址 读写方式可配置 支持标准代理配置 不可删除自定义地址 读写方式可配置 支持标准代理配置 可删除地址配置(ENDPOINT)只读类型在选定读写模式是【只读】类型的情况下 配置项比较少 需要注意的是只读类型的endpoint如果只使用单节点 尽量不要应用在生产环境中。
另外可调整的参数是【并行查询】 此配置只在只读endpoint中可配置 在PolarDB 8.0 中支持了并行查询 如果只读endpoint承接一些AP类业务流量 可以单独提供只读节点给此endpoint 并且尽量和TP业务节点不要重合 同时对并行查询的并行度单独调整 以充分利用CPU资源执行并行查询。
读写类型中需要注意的点主要是
一致性级别最终一致性 不考虑数据的同步情况 按负载进行节点请求的调度 会出现写入的数据未同步完成 只读节点上读取不到的情况 抽象如图 会话一致性 简单理解就是指在同一个连接里的前后请求 一般在写入后立即请求数据时使用 也是PolarDB推荐的一致性配置 抽象如图 全局一致性 每一个会话都要判断只读节点是否已经同步到最新数据 对一致性要求最高的场景下启用 抽像如图 以上三种一致性级别 需要根据业务需求配置。主库不接受读 满足一致性需求的前提下 将读请求全部分流到只读节点执行 如果不满足一致性需求 只读同步完成 流量还是会路由到主实例。事务拆分 将事务头部的读取语句拆分到只读节点上以承担主节点压力 如图 连接池会话级连接池 用以缓存连接信息 主要是连接风暴的场景下使用 例如PHP大量短连接的场景下 无法控制连接到实例的总连接数事务级连接池 标准连接池方案 对长连接进行复用 类似Druid等连接池中间件 控制连接实例的总连接数select * from information_schema.processlist;读写模式下 即使没有配置主节点 写请求会自动路由到主节点如果对一致性有要求 推荐使用会话一致性 可以满足大部分业务场景 如果小部分业务的一致性要求不能在同一会话中完成 dml - select) 可以考虑使用hint方式强制读主节点 例如
/*FORCE_MASTER*/ select * from information_schema.processlist;流量定位
有时观察实例性能 会发现实例的流量不均匀 需要定位原因 防止流量倾斜导致的实例性能问题。
以上两种都是预期内的负载分配 但有可能负载情况不在预期 如集群地址中有多个只读节点 但只有某个节点负载非常高 此类情况就需要定位是否有流量异常或者实例性能异常的情况。
一、PostgreSQL行业位置 一 行业位置 首先我们看一看RDS PostgreSQL在整个行业当...
很长时间没有更新原创文章了,但是还一直在思考和沉淀当中,后面公众号会更频繁...
定义 this是函数运行时自动生成的内部对象,即调用函数的那个对象。(不一定很准...
2020年对于云计算行业来说是突破性的一年,因为公共云供应商增加了收入,而疫情...
在TOP云(zuntop.com)科技租赁过服务器的站长都知道独立服务器在价格上比VPS主...
查看表结构,sbtest1有主键、k_1二级索引、i_c二级索引 CREATE TABLE `sbtest1` ...
本文转载自网络,原文链接:https://mp.weixin.qq.com/s/vlOUg46B5bcmToX-fjavJQ...
中国最?好的一朵云飘进了华瑞银行。阿里云将进一步助力华瑞银行All in Cloud。 -...
最近,DevOps的采用导致了企业计算的重大转变。除无服务器计算,动态配置和即付...
9月17日,2020云栖大会上,阿里云正式发布工业大脑3.0。 阿里云智能资深产品专家...