分布式的意义(分布式概念)

集群与分布式区别

集群:复制模式,每台机器做一样的事。

分布式:两台机器分工合作,每台机器做的不一样。

分布式的意义(分布式概念)(1)

分布式好处:

独立开发,部署,测试

易于扩展

复用性高,例如:所有的产品都可以使用该系统作为用户系统,无需重复开发。

架构演进

架构演进一: 早期雏形

特征:应用程序主要做静态文件读取,返回内容给浏览器。

架构演进二: 数据库开发(LAMP特长)

特征:应用程序主要主要读取数据表值,填充html模块。业务逻辑简单,写sql处理。

主要:增删改查

主要压力:来自查询,多表联合,数据量膨胀。

架构演进三: javaweb的雏形

tomcat servlet jsp mysql。一个war包打天下

项目结构:ssh/ssm三层结构。

架构演进四: javaweb的集群发展

硬件机器的横向复制,对整个项目结构无影响。

分布式的意义(分布式概念)(2)

架构演进五: javaweb的分布式发展

特征:将Service层单独分离出去,成为一个单独的项目jar。单独运行。

Web服务器通过rpc框架,对分离出去的service进行调用。

分布式的意义(分布式概念)(3)

架构演进六: javaweb的微服务发展

从业务角度,细分业务为微服务,每一个微服务是一个完整的服务(从http请求到返回)。在微服务内部,将需要对外提供的接口,包装成rpc接口,对外部开放。

分布式的意义(分布式概念)(4)

服务治理:

1、无论是分布式拆分,还是微服务拆分,最后形成的服务层应用,都需要相互之间调用。

2、这种服务间调用是跨系统的。跨系统调用rpc有很多协议: RMI,webservice,http请求,网络达到服务间访问。

dubbo:很多,dubbo协议

springcloud:使用http协议通信

3、服务集群,有负载路由。需要服务发现–zookeeper。

4、数据积累大:订单服务—积累。

分库/分表 -----需要修改业务sql语句。(有侵入性)----------->mycat中间件。

/分区。 -------》对sql语是没有侵入性。------------》对库没办法减压。

架构一个系统依据

1、系统目标是并发数(tps)多少:tomcat的安全连接数在500tps上下

2、系统要承受的数据量级:mysql — 单表到达 700W,性能会急剧下降。

3、并发数(tps) transation per seconds:每秒钟的访问—每秒处理事务数。

架构方案:

1、首先考虑缓存方案解决性能问题

2、集群模式------比较重的模式:浪费成本

3、用分布式

分布式的意义(分布式概念)(5)

缓存解决方案:

缓存服务器:redis、memcache。

一般缓存方案

1、先到缓存中查,有值直接返回

2、无值(缓存穿透、击穿)则调用接口或者查库,并将值补入缓存区

3、缓存区数据与db中可能不一致,使用过期时间调节

4、若缓存区数据集中在某一短时刻失效,将导致大量的缓存击穿(雪崩)

永不过期方案

1、不设置过期时间,数据永久有效,避免雪崩

2、需要额外机制来实现数据的同步更新(参照数据同步)

集群引起的负载问题方案,如何session共享

1、tomcat自己插件,能够session共享

2、spring-session插件,实现session共享。

大数据量的切片方案

数据分片:数据的路由保持不变

1、设置数据片数量,比如100个柱

2、当前库,均分这100个柱

3、当加库扩容时,这100个柱动态迁移

前端演进:

1、一个url > 一个html页面 > 点击按钮跳转 > 页面跳转。

2、页面,ajax方式刷新页面

3、mvvm的开发流程:

分布式的意义(分布式概念)(6)

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页