用Nginx作为微服务核心

Spring下面提供了完整的微服务核心Enureka、zuul,Herix,从服务注册、发现、路由、断路都有。缺点是都是Java平台的,但大型系统又往往不是单一技术平台,除了netfix这样的。(是否可以为单一技术平台这里不讨论)。Nginx是最流行的http反向代理,如果作为微服务组件有什么优势劣势呢?

优势

  • 本身就是个路由器的功能
  • 可以通过规则把功能路由到不同模块
  • 高性能,和语言无关
  • 有一定断路器功能,服务不可用会移除,根据某个地址进行测试。

缺点

  • 缺乏服务注册发现功能,服务器不能动态增减。
  • 服务规则是静态的,修改还需要重新加载配置

改进

  • 增加服务注册发现功能,在反向代理中,可以支持路由到服务而非地址。
  • 注册发现功能开发各个语言的Api。

给nginx装上一个服务注册管理功能,并支持集群数据共享,这样nginx的反向代理可以映射到在nginx上注册的一个服务上并自动轮询,同时支持故障检测,又具有跨语言的特性。

你可能感兴趣的:(Web后端)