微服务解决方案调研

19人阅读 评论(0) 收藏 举报
分类:

微服务要点

微服务架构的各要点包括服务发现、负载均衡、高可用、集群容错、调度与部署、弹性伸缩、API网关、服务的故障隔离和熔断、配置管理、日志采集、分布式调用跟踪、监控告警。

方案一:kubernetes+springcloud+第三方套件

Spring Cloud 和 kubernetes 是基于不同视角的微服务框架,Spring Cloud是从java语言层面提供一整套微服务框架解决方案。kubernetes则是不拘于特定语言、从服务运行的平台层提供微服务框架需要的功能支持。
从应用的生命周期角度来看,K8S 覆盖了更广的范围,特别像资源管理,应用编排、部署与调度等,Spring Cloud 则对此无能为力。
从功能上看,两者存在一定程度的重叠,比如服务发现、负载均衡、配置管理、集群容错等方面,但两者解决问题的思路完全不同,Spring Cloud 面向的纯粹是开发者,开发者需要从代码级别考虑微服务架构的方方面面,而 kubernetes 面向的是 DevOps 人员,提供的是通用解决方案,它试图将微服务相关的问题都在平台层解决,对开发者屏蔽复杂性。
下面从微服务要点对比kubernetes和springcloud的功能支持

微服务要点 kubernetes springcloud 第三方套件
服务发现 kubernetes Service & kubernetes Ingress Resources Eureka Consul
负载均衡 kubernetes Service Ribbon -
高可用 kubernetes pod - -
集群容错 pod飘移 - -
调度与部署 kubernetes Scheduler & kubernetes deployment & docker - -
弹性伸缩 kubernetes Autoscale - -
API网关 kubernetes Ingress Controller zuul -
服务故障隔离与熔断 kubernetes pod Health Check Hystrix,Turbine&Ribbon -
配置管理 kubernetes ConfigMap & Secrets config Apollo,disconf,diamond
日志采集 - - 容器化部署EFK(Fluentd)或者ELK(LogStash)
分布式调用跟踪 - Sleuth 容器化部署Zipkin或者OpenTracing
监控 - Spectator&Atlas 容器化部署Heapster+Grafana或者Prometheus+Grafana

应用kubernetes和springcloud作为微服务解决方案,由kubernetes提供平台级的微服务框架要点功能支撑,针对java应用可以采用springcloud的组件来提供应用级别的服务故障隔离与熔断功能支持是一种优秀的方案。如果java应用强烈采用springcloud的应用级的微服务框架要点功能支撑,则将其不纳入kubernetes平台级的微服务管控,否则会出现管控混乱。

缺点:

  1. 微服务之间的认证授权需在API网关或应用程序内部实现,较难控制。
  2. 应用级别的服务故障隔离与熔断功能需在应用程序内部实现。
  3. kubernetes的配置管理对于configmap没有提供配置自动更新的功能。
  4. 采用第三方套件时有一定的学习成本。

方案二:kubernetes+serviceMesh+第三方套件

serviceMesh(服务网格):服务网格是一个用于处理服务间通信的基础设施层,它负责为构建复杂的云原生应用传递可靠的网络请求。在实践中,服务网格通常实现为一组和应用程序部署在一起的轻量级的网络代理,但对应用程序来说是透明的。
关于serviceMesh(服务网格)的介绍和开源组件对比见上篇博客《serviceMesh服务网格与开源工具》。
下面以serviceMesh开源组件Istio为例进行方案说明。
使用kubernetes加Istio方案可以从平台层面处理微服务架构要点,而不需要更改任何服务代码。应用开发者只需专注开发应用和服务,极大减少了应用程序的代码。

微服务要点 kubernetes Istio 第三方套件
服务发现 kubernetes Service & kubernetes Ingress Resources - Consul
负载均衡 kubernetes Service 支持 -
高可用 kubernetes pod - -
集群容错 pod飘移 - -
调度与部署 kubernetes Scheduler & kubernetes deployment & docker - -
弹性伸缩 kubernetes Autoscale - -
API网关 kubernetes Ingress Controller - -
服务故障隔离与熔断 kubernetes pod Health Check 支持 -
配置管理 kubernetes ConfigMap & Secrets - Apollo,disconf,diamond
日志采集 - Istio集成EFK(Fluentd) 容器化部署EFK(Fluentd)或者ELK(LogStash)
分布式调用跟踪 - Istio集成Zipkin 容器化部署Zipkin或者OpenTracing
监控 - Istio集成Prometheus+Grafana 容器化部署Heapster+Grafana或者Prometheus+Grafana

Istio的额外特性

特色功能 Istio
服务安全 支持服务间双向TLS认证
生成服务图展示 Istio集成ServiceGraph
服务间流量管控 支持流量百分比拆分,可应用于金丝雀部署;支持为服务设置带条件的流量速率限制
服务间访问策略管控 支持ACL检查,Istio的路由规则可以在路由请求到后端服务时获取更大的控制度,例如为服务上的指定URL的所有请求设置4秒的超时时间

缺点

  1. Istio是一个较新的服务网格开源组件,目前还没有在生产环境部署。
  2. 开发人员对Istio相关经验较少,有一定的学习成本。
  3. kubernetes的配置管理对于configmap没有提供配置自动更新的功能。
  4. 采用第三方套件时有一定的学习成本。
查看评论

微服务架构的分布式事务解决方案(Dubbo分布式事务处理)

微服务架构的分布式事务解决方案(Dubbo分布式事务处理)网盘地址:https://pan.baidu.com/s/1c3EGLMw 密码: kmd7备用地址(腾讯微云):https://share....
  • qq_41747749
  • qq_41747749
  • 2018年02月28日 09:08
  • 489

微服务架构的分布式事务的几个解决方案

微服务架构的分布式事务的几个解决方案 在网上看了很多的关于分布式事务的文章,在此总结下微服务架构下的分布式事务的几个方式 一、尽量在业务上和技术上避免分布式事务          显而易见,微服务...
  • qq_17805795
  • qq_17805795
  • 2017年02月07日 15:38
  • 2272

《微服务架构的分布式事务解决方案》视频教程--课程列表

为了解决大家在实施分布式服务化架构过程中关于分布式事务问题的困扰,本教程将基于支付系统真实业务中的经典场景来对“可靠消息的最终一致性方案”、“TCC两阶段型事务方案”和“最大努力通知型方案”这3种柔性...
  • wushuicheng
  • wushuicheng
  • 2016年08月04日 22:16
  • 6580

微服务架构的分布式事务解决方案

分布式系统架构中,分布式事务问题是一个绕不过去的挑战。而微服务架构的流行,让分布式事问题日益突出! 下面我们以电商购物支付流程中,在各大参与者系统中可能会遇到分布式事务问题的场景进行详细的分析!...
  • sundehui01
  • sundehui01
  • 2016年07月27日 10:25
  • 426

【备忘】2017年7月最新微服务架构的分布式事务解决视频教程

2017年7月最新微服务架构的分布式事务解决视频教程
  • qq_38472241
  • qq_38472241
  • 2017年11月13日 12:55
  • 532

微服务架构的分布式事务解决方案[转]

地址:http://www.roncoo.com/article/detail/124243 微服务架构本质上就是分布式服务化架构,微服务架构的流行,让分布式事务问题日益突出!尤其是在订单业务...
  • jianfengwen
  • jianfengwen
  • 2017年01月07日 15:42
  • 1168

微服务架构的分布式事务场景及解决方案分析

分布式系统架构中,分布式事务问题是一个绕不过去的挑战。而微服务架构的流行,让分布式事问题日益突出! 下面我们以电商购物支付流程中,在各大参与者系统中可能会遇到分布式事务问题的场景进行详细的分析!...
  • wushuicheng
  • wushuicheng
  • 2016年07月16日 22:04
  • 12862

微服务架构(三):微服务重构应用及IBM解决方案

解析微服务架构系列文章将分几篇描述微服务的定义、特点、应用场景、企业集成架构的演进以及微服务转型思路和技术决策考虑等内容,并以IBM技术为例介绍如何实现微服务架构转型。 上一篇文章介绍了融入微服...
  • fly_zhyu
  • fly_zhyu
  • 2017年07月30日 23:05
  • 1244

GTS来了!阿里微服务架构下的分布式事务解决方案

阿里妹导读:分布式事务已经成为微服务落地最大的阻碍,也是非常具有挑战性的一个技术难题。 为此,今天我们邀请阿里高级技术专家于皋,和大家深入探讨微服务架构下,分布式事务的各种解决方案,并重点为大家解读阿...
  • b0Q8cpra539haFS7
  • b0Q8cpra539haFS7
  • 2018年03月09日 00:00
  • 321

微服务现状综述

近日, Adrian Cockcroft在荷兰阿姆斯特丹举办的Docker大会上谈到,随着组织向持续交付的不断迈进,变更会不断增加,但同时变更所带来的代价、规模与风险却在不断降低,DevOps与敏捷转...
  • ricohzhanglong
  • ricohzhanglong
  • 2015年01月14日 14:01
  • 1353
    个人资料
    持之以恒
    等级:
    访问量: 62万+
    积分: 7405
    排名: 3731
    最新评论