Dubbo,SpringCloud,ServiceMesh

微服务

微服务(Microservices)是一种架构风格,一个大型复杂软件应用由一个或多个微服务组成。系统中的各个微服务可被独立部署,各个微服务之间是松耦合的。每个微服务仅关注于完成一件任务并很好地完成该任务。在所有情况下,每个任务代表着一个小的业务能力。

微服务的优点:

1.降低复杂度

将原来偶合在一起的复杂业务拆分为单个服务,规避了原本复杂度无止境的积累。每一个微服务专注于单一功能。

2.可独立部署

由于微服务具备独立的运行进程,所以每个微服务可以独立部署。当业务迭代时只需要发布相关服务的迭代即可,降低了测试的工作量同时也降低了服务发布的风险。

3.容错

在微服务架构下,当某一组件发生故障时,故障会被隔离在单个服务中。 通过限流、熔断等方式降低错误导致的危害,保障核心业务正常运行。

4.扩展

单块架构应用也可以实现横向扩展,就是将整个应用完整的复制到不同的节点。

 

微服务的缺点:

1.团队沟通的过载

微服务架构降低了团队管理的难度,但是确不能降低团队沟通的需求。

2、正式文档的过载

每一个独立的运行部件需要持续维护其规格和接口文档,这些文档是其它团队使用这些部件的必要条件。

3、不一致性

我们可以为每一个组件选择不同的技术栈。这导致了不一致的应用设计和架构,而这会在更长期的运维期间增加系统维护成本。

4、DevOps的复杂度

我们需要拥有一支成熟的DevOps团队去处理微服务架构的应用的复杂性。

5、资源使用

运行这些微服务架构的应用的初始投资会比较大。

6、网络通信开销

分布式系统的产生的网络开销比单机应用多很多。需要更加可靠和快速的网络连接。

7、编码和解码

这个容易理解,也会产生性能问题。

8、网络安全

通过网络进行通信的系统更容易产生安全缺陷。

9、测试

测试微服务架构的应用绝对比单体应用难很多。

10、产品监控

监控微服务架构应用的成本会更高,很难获得合适的工具,需自研。

 

Dubbo

Dubbo 是一个分布式服务框架,致力于提供高性能和透明化的 RPC 远程服务调用方案,以及 SOA 服务治理方案。简单的说,Dubbo 就是个服务框架,说白了就是个远程服务调用的分布式框架。

模块注解

Provider: 暴露服务的服务提供方。

Consumer: 调用远程服务的服务消费方。

Registry: 服务注册与发现的注册中心。

Monitor: 统计服务的调用次调和调用时间的监控中心。

Container: 服务运行容器。

流程详解

0.服务容器负责启动,加载,运行服务提供者(Standalone 容器)。

1.服务提供者在启动时,向注册中心注册自己提供的服务(Zookeeper/Redis)。

2.服务消费者在启动时,向注册中心订阅自己所需的服务。

3.注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者。

4.服务消费者,从提供者地址列表中,基于软负载均衡算法,选一台提供者进行调用,如果调用失败,再选另一台调用。

5.服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据到监控中心(根据数据可以动态调整权重)。

 

Dubbo优点

1.Dubbo 支持 RPC 调用,服务之间的调用性能会很好。

2.支持多种序列化协议,如 Hessian、HTTP、WebService。

3.Dobbo Admin后台管理功能强大,提供了路由规则、动态配置、访问控制、权重调节、均衡负载等功能。

4.在国内影响力比较大,中文社区文档较为全面。

5.阿里最近重启维护。

 

Dubbo问题

1.注册中心严重依赖第三方组件(zookeeper 或者 redis),当这些组件出现问题时,服务调用很快就会中断。

2.Dubbo 只支持 RPC 调用。使得服务提供方(抽象接口)与调用方在代码上产生了强依赖,

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值