大型网站架构演变之9大阶段 什么是大型网站( 五 )

  • 如果需要分页查询,那就更加麻烦 。
  • 解决问题方案:
    • 我们还是可以通过可以解决第三方中间件,如MyCat 。MyCat可以通过SQL解析模块对我们的SQL进行解析,再根据我们的配置,把请求转发到具体的某个数据库 。
    • 我们可以通过UUID保证唯一或自定义ID方案来解决 。
    • MyCat也提供了丰富的分页查询方案,比如先从每个数据库做分页查询,再合并数据做一次分页查询等等
    阶段八、应用的拆分
    按微服务拆分应用
    随着业务的发展,业务越来越多,应用越来越大 。我们需要考虑如何避免让应用越来越臃肿 。这就需要把应用拆开,从一个应用变为俩个甚至更多 。还是以我们上面的例子,我们可以把用户、商品、交易拆分开 。变成“用户、商品”和“用户,交易”两个子系统 。
    问题:
    这样拆分后,可能会有一些相同的代码,如用户相关的代码,商品和交易都需要用户信息,所以在两个系统中都保留差不多的操作用户信息的代码 。如何保证这些代码可以复用是一个需要解决的问题 。
    解决问题:
    通过走服务化SOA的路线来解决频繁公共的服务 。
    走SOA服务化治理道路
    为了解决上面拆分应用后所出现的问题,我们把公共的服务拆分出来,形成一种服务化的模式,简称SOA
    优点:
    • 相同的代码不会散落在不同的应用中了,这些实现放在了各个服务中心,使代码得到更好的维护 。
    • 我们把对数据库的交互业务放在了各个服务中心,让前端的Web应用更注重与浏览器交互的工作 。
    问题:
    如何进行远程的服务调用?
    解决方法:
    可以通过下面的引入消息中间件来解决 。
    阶段九、引入消息中间件
    随着网站的继续发展,的系统中可能出现不同语言开发的子模块和部署在不同平台的子系统 。此时我们需要一个平台来传递可靠的,与平台和语言无关的数据,并且能够把负载均衡透明化,能在调用过程中收集并分析调用数据,推测出网站的访问增长率等等一系列需求,对于网站应该如何成长做出预测 。开源消息中间件有阿里的Dubbo,可以搭配Google开源的分布式程序协调服务Zookeeper实现服务器的注册与发现 。
    总结
    以上的演变过程只是一个例子,并不适合所有的网站,实际中网站演进过程与自身业务和不同遇到的问题有密切的关系,没有固定的模式 。只有认真的分析和不断地探究,才能发现适合自己网站的架构 。
    以上就是什么是大型网站(大型网站架构演变之9大阶段)的相关内容了,更多精彩请关注我们!!

    推荐阅读