很多台计算机(服务)组成一个整体,一个整体一致对外并且处理同一请求
内部每台计算机(服务)之间都可以互相通信(rest/rpc...)
客户端到服务端的一次请求到响应结束会经理多台计算机(服务)
例如互联网公司中,网盘、电商服务、打车服务等都采用分布式服务架构,对于用户来说是不透明的,但对于服务提供商来说,他们会将整个服务拆分成多个子服务或者是子模块,这些子服务独立运行于公司集群中的各个物理机(也可能会经过公网调用远程服务),当然每个子服务也可以做集群或者主备,并且通过某些技术是这些子服务协调分工,对外提供一致服务
分布式架构与集群
水平扩展与垂直扩展
假设程序A,通过水平扩展后,形成多个相同的程序集合,并且通过负载均衡技术对用户请求进行转发,这就是集群
将A拆分成不同模块,模块之间以http或者rpc通信等方式通信,以保证功能完整性,对外提供一致服务,从而形成了分布式的一个架构,这也是垂直拆分的结果
分布式系统下的session解决方案有ip hash
ip hsah:同一个ip经过负载均衡会请求后端同一个服务器,但是如果此服务器出问题,name这些用户将无法请求服务
分布式系统下的session解决方案另外一种解决方案是用一个撞门的服务保存session信息,其他服务需要session找它要,通常用redis集群实现