「这是我参与11月更文挑战的第23天,活动详情查看:2021最后一次更文挑战」
分布式基础理论
分布式系统是若干个独立计算机的集合,这些计算机对于用户来说就像单个相关系统
互联网发展,网站应用的规模不断扩大,常规的垂直架构无无法应对
应用架构的演变
单一架构
扩展不容易
协调开发不容易
垂直应用架构
把一个大应用拆成几个小应用
\
1.缺点,每一个应用都是完整的,包括界面,页面逻辑,无法实现分离
2.应用之间需要交互,不能完全独立,比如订单需要查询用户应用
分布式服务架构
把页面和核心业务逻辑服务
不同服务器不同tomcat之间怎么调用服务
分布式架构架构下最核心的是如何进行远程过程调用,如何拆分业务
分布式服务框架(RPC)帮我们解决这个问题
基于访问压力的调度中心,基于访问压力实时管理集群容量,提高集群利用率
决定rpc框架的通信速度
1.能否快速建立连接
2.传输数据的序列化和反序列化效率
dubbo
什么是dubbo?
Apache Dubbo(incubating)是一款高性能、轻量级的开源Java RPC框架,它提供了三个核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现。
什么是灰度发布?
比如需要做用户服务的升级,一共有100台机器,先让其中的20台使用新服务,80台使用旧服务,(20台用的没问题)然后慢慢过渡到所有机器使用新服务
通过配置路由规则,请求进来的时候一部分请求请求新服务,一部分请求旧服务,慢慢从旧服务过渡到新服务的过程
-
面向接口代理的高性能RPC调用
-
智能负载均衡
-
服务自动注册与发现
-
高度可扩展能力
-
运行期流量调度
-
可视化的服务治理和运维
注册中心
-
容器启动的时候,服务提供者会向注册中心进行注册并且说明自己能够提供的服务
-
服务消费者启动的时候就会从注册中心订阅它所需要服务
-
服务提供者信息发生变更的时候,注册中心会和服务消费者会变更基于长连接通知,
-
调度信息一定时间会定时统计发布到监控中心,服务消费者调用服务提供者的服务是一个同步的过程
-
服务提供方有好几台相同的服务,会根据负载均衡算法进行选择