3个点说清楚分库分表扩容问题

  • 时间:
  • 浏览:4
  • 来源:uu快3手机版_uu快3走势图_网游

大伙儿发现,问题报告 是出在“每个 RPC 应用就有连所有的库”,是是因为扩容应用的同去,每个数据库连接数就要增加。就算增加数据库,或者能处里连接数的问题报告 。

那为什么在么在么办呢?

欢迎大伙儿关注我的公种浩【线程员追风】,文章一定会在底下更新,下发的资料也会装进底下。

这下应该没问题报告 了吧。任凭你用户再多,并发再高,我假使 无限扩容数据库,无限扩容应用,就都可以 了。

这也是本文的标题,分库分表就能处里无限扩容吗?

实际上,像底下的架构,不多能处里。

我我虽然,你你你这个问题报告 和 RPC 的问题报告 很糙类式:数据库连接不多!!!

通常,大伙儿的 RPC 应用是是因为着是使用底下件进行访问数据库,应用实际上是真不知道到底要访问哪个数据库的,访问数据库的规则由底下件决定,类式 sharding JDBC。这只是是因为,你你你这个应用需要和所有的数据库连接,就像大伙儿底下的架构图一样,一一个多 RPC 应用需要和 3 个 mysql 连接,是是因为着是 100 个 RPC 应用,每个 RPC 的数据库连接池大小是8 ,每个 mysql 需要维护 240 个连接,大伙儿知道,mysql 默认连接数是 100,最大连接数是 16384,也或者说,假设每个应用的连接池大小是 8 ,超过 2048 个应用就无法再继续连接了,也就无法继续扩容了。

注意,是是因为着每个物理库有只是逻辑库,加带带微服务运动如火如荼, 2048 并那末看起来那末大。

是我不好是我不好,让我应该 通过前面加一一个多 proxy 来处里连接数的问题报告 ,实际上,代理的性能也会成为问题报告 ,为你你你这个?代理的连接数也是只能超过 16384 的,是是因为着并发超过 16384,变成 163840,那末 proxy 也处里不了问题报告 。

为什么在么在么办?让大伙儿再看看底下的架构图:

最后

欢迎大伙儿同去交流,喜欢文章记得点个赞哟,感谢支持!

像我事先的菜鸟,总会有各种问题报告 ,刚刚刚结速是对 JDK API 的问题报告 ,对 NIO 的问题报告 ,对 JVM 的问题报告 ,当工作几年后,对服务的可用性,可扩展性就有了新的问题报告 ,你你你这个问题报告 呢?我我虽然是老生常谈语句题:服务的扩容问题报告 。

本文从单体应用刚刚刚结速,逐步讲述了一一个多正常后台的演进历程,知道了分库分表不多能处里“无限扩容” 的问题报告 ,只能单元化不都可以 处里这问题报告 。而单元化则带来更多的复杂化性。或者好处未必。

单元化带来的更多的思路。

有了单元化,处里了无限扩容的问题报告 ,或者大伙儿还那末考虑单点的问题报告 ,即服务的可用性。要知道,大伙儿这里的数据库就有单点的。

我相信大帕累托图公司就有在你你你这个阶段。Dubbo 或者为了处里你你你这个问题报告 而生的。

是是因为着你的公司产品很受欢迎,业务继续高速发展,数据不多,SQL 操作那末慢,那末数据库就会成为瓶颈,那末你肯定会想到分库分表,不论通过 ID hash 是是因为着 range 的最好的法子都都可以 。如下图:

当业务又那末大,大伙儿的服务关系复杂化化,同去,有只是服务访问就有需要连接 DB 的,只需要连接缓存即可,那末就都可以 做成分离的,减少 DB 宝贵的连接。如下图:

单元化,听起来高大上,通常在你你这个 XXX 大会上,分享“关于两地三中心”,“三地五中心”,“异地多活”等等牛逼的名词的事先,单元化也会同去出现。

这里大伙儿不讨论那末牛逼的,就只说“数据库连接数不多” 的问题报告 。

实际上,思路很简单:大伙儿不会应用连接所有的数据库就都可以 了。

假设大伙儿根据 range 分成了 10 个库,现在有 10 个应用,大伙儿让每个应用只连一一个多库,当应用增多变成 20个,数据库的连接缺陷用了,大伙儿就将 10 个库分成 20 个库,事先,无论你应用扩容到有几个个,都都可以 处里数据库连接数不多的问题报告 。

注意:做这件事的前提是:你需要保证,访真不知道你你你这个应用的 request 请求的数据库一定是在你你你这个应用的。s

换个说法,当用户从 DNS 那里进来的事先,就知道本人要去那个应用了,只是,规则在 DNS 事先就定好了,我虽然这很糙夸张,但肯定在进应用事先就知道要去哪个库了。

只是,这通常需要一一个多规则,类式通过用户 ID hash,由配置中心广播 hash 规则。事先,所有的组件都能保持一致的规则,从而正确的访问到数据库。如下图:

让大伙儿从最初刚刚刚结速。

单体应用 每个创业公司基本就有从类式 SSM 和 SSH 你你你这个架构起来的,没你你你这个好讲的,基本每个线程员都经历过。

RPC 应用 当业务那末大,大伙儿需要对服务进行水平扩容,扩容很简单,假使 保证服务是无状态的就都可以 了,如下图:

到这里,大伙儿终于处里了无限扩容的问题报告 。