微服务简介

微服务简介

  • 微服务治理体系: 服务治理是主要针对分布式服务框架,微服务,处理服务调用之间的关系,服务发布和发现(谁是提供者,谁是消费者,要注册到哪里),出了故障谁调用谁,服务的参数都有哪些约束(尤其是dubbo.xml配置),如何保证服务的质量?如何服务降级和熔断?怎么让服务受到监控,提高机器的利用率?网关就是整个整体的守门人,日志采集,追踪工具,服务注册发现都是用来采集信息的,然后需要监控平台来展现这些采集的信息,并进行监控和分析。最后根据分析的结果采取治理策略,有的服务快撑不住了要限流,有的服务坏了要熔断,并且还能够及时的调整这些服务的配置。

    微服务简介
  • 微服务架构分类: 微服务架构这两年变得格外火热,它已经成为当前最主流的架构模式。提起微服务框架,我们可以自然地举出 Dubbo、gRPC 与 Spring Cloud 等众多的知名项目,依据是否支持服务治理和是否支持多语言两个维度可将这些微服务框架分为以下四类:

    微服务简介
  1. 只有服务调用没有服务治理类的框架。典型的代表有 gRPC、Thrift 等,他们很好地解决了服务间通信的问题,大部分也支持多语言,但使用这类框架时需要自己去解决服务治理问题。
  2. 带服务治理但支持单一语言的框架。典型的代表有 Spring Cloud 和 Dubbo,它们都是用 Java 实现的框架,用户整合多个开源项目一起并能满足服务治理等的需求。
  3. Service Mesh。它支持服务治理,并通过 Sidecar 模式解决框架对多语言支持,业务需要再封装一套通讯组件去解决通讯问题,以及异步调用等问题,同时会增加架构和维护的复杂度。
  4. 带服务治理并支持多语言的框架。目前业界比较少,除了 Tars 目前还没有发现其它具有代表性的框架。从上面的分析大概可以发现,Tars 是支持服务治理的同时又提供多语言支持的微服务框架,这是 Tars 的独特之处,也是其优势。

Tars

  • Tars 可以运行在物理机、虚拟机和容器,其协议主打的是基于 IDL 实现的 Tars 协议,它是一种二进制解析协议,与 pb 类似,同时 Tars 还扩展支持其它协议,乃至用户自定义。
  • 调用方式主要以 RPC 为主,支持同步、异步和单向调用几种方式。在服务治理方面除了支持服务注册、发现等业界常说的能力之外,还提供面对海量访问的一些其它治理能力,如 Set 模型、自动区域感知、过载保护等,语言上除了此次新支持的 Golang,目前已经支持了 C++、Java、NodeJS 与 PHP,同时整体框架可以和 DevOps 很好地协同工作。

微服务简介