单体式-微服务框架-分布式系统
⼀、单体式框架
最开始我们的应⽤都是放在⼀台机器上的,随着业务的增长,单体式存在硬件受限和⼀个故障可能整个停掉的风险,这⾥改进⽅式就是分布式系统,其实微服务框架是分布式的⼀种,下⾯介绍下微服务框架
⼆、微服务框架
1、
对于单体式的出现的问题,微服务的解决思想就是拆分,拆分的维度有三个:
负载
实现的是多web服务器
分布式和微服务的关系功能
以不同职能/服务划分,划分标准可能是⽤例或资源
数据库
通过分表的形式,将数据hash到不同的数据库上
PS:这⾥简单说下哈希数据,它的数据形式是key-value,以多个redis sever为例,如果有key1/key2/key3,如果只有⼀个sever则直接将所有key放⼊,如果有两个sever则通过hash函数将key进⾏映射,看映射在【sever1,sever2】区间的哪⾥,这⾥采⽤顺序查表的⽅式,分别将key映射到sever上,对于增加节点的话也是顺序查,⽐如加了key4可能只是key发⽣了变化,其他key不⽤动,即使新增或者挂掉服务器也不会影响全部,只要根据hash顺时针定位就可以了,对于数据发⽣变化各节点同步是通过⼀致性哈希来实现的。
2、
处理的问题
通信
对于C/S端通信,中间增加了API gateway(API⽹关主要是⽤来同意接⼊服务的)
对于内部通信:⼀是http(主要框架是REST/RPC,对于后者我们很熟悉了);⼆是队列(AMQP代表是kafka)
3、
优点:
微服务可以实现独⽴部署
独⽴扩展,主要是维护相互可⽤和通信
三、分布式框架
1、简介
我们集应⽤的就是分布式卡框架,主要是实现多台机器的同步可⽤。整体是⼀个集每个机器是其中的节点应⽤分布在节点上,彼此应⽤间的通信利⽤的是TCP模块和远程通信框架RPC
2、关键点
主要考虑的是性能、容错和通信。很容易理解⽐如应⽤层的故障,经常会有挂掉重启等故障,主要是想考察剩余节点是否能扛住流量的情况,这就是对性能和容错性的⼀种考察。对于通信的问题,长出现的故障数据传输的丢失(丢包)、⽹络卡住了(⽹络延迟)、服务器缓慢等等,也要注意之前说到的节点熔断现象
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论