浅谈Web网站架构演变过程
<p style="margin-top: 0px; margin-bottom: 0px; padding: 0px 0px 15px; text-indent: 2em; color: rgb(51, 51, 51); font-family: &quot;Microsoft YaHei&quot;; font-size: 14px; white-space: normal; background-color: rgb(244, 244, 244);"><span style="line-height: 1.5;">阶段一:单机构建网站 我们以javaweb为例,来搭建一个简单的电商系统,看看这个系统可以如何一步步演变。 该系统具备的功能: 用户模块:用户注册和管理 商品模块:商品展示和管理 交易模块:创建交易和管理</span></p><p style="margin-top: 0px; margin-bottom: 0px; padding: 0px 0px 15px; text-indent: 2em; color: rgb(51, 51, 51); font-family: &quot;Microsoft YaHei&quot;; font-size: 14px; white-space: normal; background-color: rgb(244, 244, 244);">阶段二:应用服务器和数据库分离 网站的初期,我们经常会在单机上跑我们所有的程序和软件。 此时我们使用一个容器,如tomcat、jetty、jboos,然后 直接使用JSP/servlet技术,或者使用一些开源的框架 如maven+spring+struct+hibernate、maven+spring+springmvc+mybatis; 最后再选择一个数据库管理系统来存储数据,如mysql、sqlserver、oracle, 然后通过JDBC进行数据库的连接和操作。 把以上的所有软件都装载同一台机器上,应用跑起来了,也算是一个小系统了。此时系统结果如下:</p><p style="margin-top: 0px; margin-bottom: 0px; padding: 0px 0px 15px; text-indent: 2em; color: rgb(51, 51, 51); font-family: &quot;Microsoft YaHei&quot;; font-size: 14px; white-space: normal; background-color: rgb(244, 244, 244);"><span style="line-height: 1.5;">阶段三:应用服务器集群 随着访问量继续增加,单台应用服务器已经无法满足需求了。 在假设数据库服务器没有压力的情况下,我们可以把应用服务器从一台 变成了两台甚至多台,把用户的请求分散到不同的服务器中,从而提高负载能力。 多台应用服务器之间没有直接的交互,他们都是依赖数据库各自对外提供服务。 著名的做故障切换的软件有keepalived,keepalived是一个类似于layer3、4、 7交换机制的软件,他不是某个具体软件故障切换的专属品,而是可以适用于各种软件的一款产品。 keepalived配合上ipvsadm又可以做负载均衡,可谓是神器...</span></p><p style="margin-top: 0px; margin-bottom: 0px; padding: 0px 0px 15px; text-indent: 2em; color: rgb(51, 51, 51); font-family: &quot;Microsoft YaHei&quot;; font-size: 14px; white-space: normal; background-color: rgb(244, 244, 244);"><span style="line-height: 1.5;">阶段四:数据读写化分离 上面我们总是假设数据库负载正常,但随着访问量的的提高, 数据库的负载也在慢慢增大。那么可能有人马上就想到跟应用服务器一样, 把数据库一份为二再负载均衡即可。但对于数据库来说,并没有那么简单。 假如我们简单的把数据库一分为二,然后对于数据库的请求,分别负载到A机器和B机器, 那么显而易见会造成两台数据库数据不统一的问题。那么对于这种情况,我们可以先考虑使用读写分离的方式。 读写分离后的数据库系统结构如下: 这个结构变化后也会带来两个问题: 主从数据库之间数据同步问题 应用对于数据源的选择问题 解决问题方案: 我们可以使用MYSQL自带的master+slave的方式实现主从复制。 采用第三方数据库中间件,例如mycat。mycat是从cobar发展而来的,而cobar是阿里开源的数据库中间件,后来停止开发。mycat是国内比较好的mysql开源数据库分库分表中间件。</span></p><p style="margin-top: 0px; margin-bottom: 0px; padding: 0px 0px 15px; text-indent: 2em; color: rgb(51, 51, 51); font-family: &quot;Microsoft YaHei&quot;; font-size: 14px; white-space: normal; background-color: rgb(244, 244, 244);"><span style="line-height: 1.5;">未完待续...</span></p><p><br/></p>

CopyRight 2020 All Right Reserved 济南金付宝数字科技有限公司 鲁ICP备20031440号