阿里云代理商-阿里云服务器-阿里云数据库-重庆典名科技

微服务框架,容器云,ServiceMesh,传统API Gateway产品都提供注册发现适合什么场景?如何选型?

发布时间: 2020-08-03 11:18:43文章作者: 网站编辑阅读量: 214
  微服务框架,容器云,ServiceMesh、传统API Gateway产品都提供注册发现,它们各适合什么场景?如何选型?
  服务化架构中,服务注册和发现是重要的组件,微服务框架中有注册发现,比如Eureka, consul等,容器云也提供服务注册和发现,ServiceMesh、传统API Gateway产品也有注册发现,它们各适合什么场景?如何选型?
  服务注册是指服务提供者将自身信息上报至平台,服务发现是服务消费者到平台查找自己需要的服务。 
  1. 微服务框架中,服务是由自身启动,并将信息注册到注册中心,如果不加服务注册信息,那么平台将不知道也不能控制该服务。而且微服务框架下,平台是被动的,不能实现服务资源的主动调度。
  2. 容器云,现在一般都是使用 kubernetes 做为容器的调度,服务的启动都是以 pod 的形式,以 service 向外提供服务。从平台的角度来说无需服务注册与发现。kubernetes 具有强大的服务资源调度能力,所以服务的启停平台占据主动权。与微服务框架相比,服务原生的负载均衡、访问控制将被废除,而由 kubernetes 提供,但功能较弱。 
  3. ServiceMesh 可以说是微服务框架的一个升级版,让服务只专注于服务自身的功能,将其内部的服务注册、负载均衡、网络等功能,全部拆出来,以依赖服务的形式存在。其实这里的服务注册与发现,与微服务框架的理念没有太大差别。
  4.传统 API Gateway,在微服务框架中也是经常使用的组件,主要是用来控制服务访问的,不管是内部服务间,还是向外部提供业务,主要是用来做安全控制的,当然其他功能还有很多。
 微服务架构
  微服务架构是一项在云中部署应用和服务的新技术。大部分围绕微服务的争论都集中在容器或其他技术是否能很好的实施微服务,而红帽说API应该是重点。
  微服务可以在“自己的程序”中运行,并通过“轻量级设备与HTTP型API进行沟通”。关键在于该服务可以在自己的程序中运行。通过这一点我们就可以将服务公开与微服务架构(在现有系统中分布一个API)区分开来。在服务公开中,许多服务都可以被内部独立进程所限制。如果其中任何一个服务需要增加某种功能,那么就必须缩小进程范围。在微服务架构中,只需要在特定的某种服务中增加所需功能,而不影响整体进程的架构。
  微服务作为一项在云中部署应用和服务的新技术已成为当下最新的热门话题。但大部分围绕微服务的争论都集中在容器或其他技术是否能很好的实施微服务,而红帽说API应该是重点。
  企业和服务提供商正在寻找更好的方法将应用程序部署在云环境中,微服务被认为是未来的方向。通过将应用和服务分解成更小的、松散耦合的组件,它们可以更加容易升级和扩展,理论上是这样。Seneca是构建微服务框架的工具,然后把它们构建到测试和部署的devops工作流中。构建和部署基于服务的应用程序都很好,但却无法维护,这一点很折磨人。还要在服务周围实现一些 持续交付模型的形式,然后使用它来管理并发布更新——这是一个比编写代码更棘手的问题。
  使用微服务构建现代化应用程序是很有意义的,因为它让你既利用了扩展横向扩展架构,也利用纵向扩展架构;还额外得到API的组合,且在整个业务中可重复利用。可能,每一分钟构都在交付新服务,这样你就必须拥有一个敏捷的且响应的应用程序平台,这一平台一直在不断改进中。
联系客服免费领取更多阿里云产品新购、续费升级折扣,叠加官网活动折上折更优惠