Dubbo 帮助我们解决了什么问题呢?
随着互联网的发展,网站的规模越来越大,用户数量越来越多。单一应用架构 、垂直应用架构无法满足我们的需求,这个时候分布式服务架构就诞生了。
分布式服务架构下,系统被拆分成不同的服务比如短信服务、安全服务,每个服务独立提供系统的某个核心服务。
但是!当服务越来越多之后,服务调用关系越来越复杂。当应用访问压力越来越大后,负载均衡以及服务监控的需求也迫在眉睫
Dubbo 的出现让上述问题得到了解决。
- 负载均衡 : 同一个服务部署在不同的机器时该调用那一台机器上的服务。
- 服务调用链路生成 :随着系统的发展,服务越来越多,服务间依赖关系变得错踪复杂,甚至分不清哪个应用要在哪个应用之前启动,架构师都不能完整的描述应用的架构关系。Dubbo可以为我们解决服务之间互相是如何调用的。
- 服务访问压力以及时长统计、资源调度和治理 :基于访问压力实时管理集群容量,提高集群利用率。 …
什么是分布式?
简单的分布式就是我们把整个系统拆分成不同的服务然后将这些服务放在不同的服务器上减轻单体服务的压力提高并发量和性能。比如电商系统可以简单地拆分成订单系统、商品系统、登录系统等等,拆分之后的每个服务可以部署在不同的机器上,如果某一个服务的访问量比较大的话也可以将这个服务同时部署在多台机器上。
为什么要分布式?
- 每个团队可以负责一个服务的开发,这样提升了开发效率。另外,代码根据业务拆分之后更加便于维护和扩展。
- 把整个系统拆分成不同的服务/系统,然后每个服务/系统 单独部署在一台服务器上,很大程度上提高了系统性能。
Dubbo具有4个特点,分别是连通性、健壮性、伸缩性、以及向未来架构的升级性。
-
连通性说明他们之间都存在着关系,比如说Provider,Consumer和Registry三者之间都是长连接,而Provider,Consumer向Registry注册服务以及订阅服务的时间都得向Monitor汇报。
-
而jian壮性说明具有稳定性,比如说注册中心对等集群中的任意一台宕掉后,将自动切换到另一台。就算注册中心全部宕掉,服务者和消费者仍可以通过本地缓存进行通讯。
-
而伸缩性就是可以通过增加机器部署实例进行添加新的注册中心和服务提供者。
-
而升级性是文档中提到的对未来架构的设想,比起目前框架它的特点是可以实现自动部署服务的本地代理以及可以通过访问压力来自动增减服务提供者。