再看Spring Could微服务的关键组件
Consul是用go开发的开源注册中心服务,内置服务发现与注册、raft一致性协议实现、健康检查、多数据中心等方案。与Eurker相比,consul还能对异构服务如rpc提供支持。
作为微服务系统的核心组件,一旦consul挂掉,所有服务都将停止,因此生产环境中必须要用Consul高可用集群。在Consul集群中有server、client两种角色,集群状态信息都存在server节点,client角色是无状态的,它只是代理转发rpc请求到sever节点,起到缓冲的作用,从而减少server节点数量(server节点越多,达成共识、节点间同步代价越高,一般建议3-5台)。Consul通过集群设计,Raft选举算法,Gossip协议等机制来确保Consul服务的稳定与高可用,如果需要更高的容灾机制,可通过设计双数据中心异地搭建两个Consul数据中心,组成一个异地灾备Consul服务集群。
ConfigServer配置中心是对微服务应用配置管理的服务,如数据库、端口配置等,与Consul一样是一个重要的独立服务组件,所有的微服务应用都要调其服务获取配置信息。随着微服务配置越来越多,如何管好这些配置及它们的更新策略,搭建ConfigServer集群也是保证微服务体系稳定的重要方面。这样的关键组件应该搭建独立的集群、部署在物理机而不是容器里。因为ConfigServer主要是http配置文件访问服务,不涉及节点选举、一致性同步操作,可以按传统方式搭建高可用配置中心。可以单独通过git来管理应用配置文件,ConfigServer通过网关拉取git仓库的配置供服务获取就可以了。
与传统方案通过Nginx做负责均衡方案不同,Spring Could中微服务间调用的负载均衡默认是服务消费端通过Robbin代理实现的客户端负载均衡,同样的服务熔断、限流等机制也是基于Hystrix在消费端实现的,这都需要在消费端进程内部通过代码的方式实现,对消费端存在一定的代码侵入性,这也是后面出现Service Mesh(服务网格)概念的原因之一。
基于Spring Could的微服务体系,通过集成各种开源组件为整个体系服务支持,但在负载均衡、熔断、流控等方面需要对消费端业务进程侵入,于是出现了Service Mesh,其基本思路是通过主机独立的Proxy进行的部署来解耦业务系统流程,Proxy除了负责服务发现和负责均衡外,还负责动态路由、容错限流、监控度量和安全日志等功能。
基于 Spring Cloud 的微服务架构演变史?
再看Spring Could微服务的关键组件的更多相关文章
- spring cloud微服务实践七
在spring cloud 2.x以后,由于zuul一直停滞在1.x版本,所以spring官方就自己开发了一个项目 Spring Cloud Gateway.作为spring cloud微服务的网关组 ...
- spring cloud微服务实践二
在上一篇,我们已经搭建了spring cloud微服务中的注册中心.但只有一个注册中心还远远不够. 接下来我们就来尝试提供服务. 注:这一个系列的开发环境版本为 java1.8, spring boo ...
- 【原创】Docker容器及Spring Boot微服务应用
Docker容器及Spring Boot微服务应用 1 什么是Docker 1.1 Docker的出现 问题一:项目实施环境复杂问题 传统项目实施过程中经常会出现“程序在我这跑得好好的,在你那怎么就不 ...
- Spring Cloud微服务系列文,服务调用框架Feign
之前博文的案例中,我们是通过RestTemplate来调用服务,而Feign框架则在此基础上做了一层封装,比如,可以通过注解等方式来绑定参数,或者以声明的方式来指定请求返回类型是JSON. 这种 ...
- Spring Cloud 微服务
https://mp.weixin.qq.com/s?__biz=MzU0OTE4MzYzMw==&mid=2247486301&idx=2&sn=f6d45860269b61 ...
- 放弃Dubbo,选择最流行的Spring Cloud微服务架构实践与经验总结
http://developer.51cto.com/art/201710/554633.htm Spring Cloud 在国内中小型公司能用起来吗?从 2016 年初一直到现在,我们在这条路上已经 ...
- Spring Cloud 微服务的那点事
什么是微服务 微服务的概念源于2014年3月Martin Fowler所写的一篇文章“Microservices”. 微服务架构是一种架构模式,它提倡将单一应用程序划分成一组小的服务,服务之间互相协调 ...
- 全链路实践Spring Cloud 微服务架构
Spring Cloud 微服务架构全链路实践Spring Cloud 微服务架构全链路实践 阅读目录: 网关请求流程 Eureka 服务治理 Config 配置中心 Hystrix 监控 服务调用链 ...
- Spring Cloud微服务Sentinel+Apollo限流、熔断实战总结
在Spring Cloud微服务体系中,由于限流熔断组件Hystrix开源版本不在维护,因此国内不少有类似需求的公司已经将眼光转向阿里开源的Sentinel框架.而以下要介绍的正是作者最近两个月的真实 ...
随机推荐
- mongo数据库连接工具类(C#)
Framework版本:.Net Framework 4 using System; using System.Collections.Generic; using System.Linq; usin ...
- pyDay13
内容来自廖雪峰的官方网站. 1.把list.dict.str等Iterable变成Iterator可以使用iter()函数 >>> L = iter([1, 2, 3, 4, 5, ...
- 无界面Ubuntu服务器搭建selenium+chromedriver+VNC运行环境
搭建背景 有时候我们需要把基于selenium的爬虫放到服务器上跑的时候,就需要这样一套运行环境,其中VNC是虚拟的显示模式,用于排查定位线上问题以及实时运行情况. 搭建流程 安装虚拟输出设备:sud ...
- POJ 3259 Wormholes(最短路&spfa正权回路)题解
题意:给你m条路花费时间(双向正权路径),w个虫洞返回时间(单向负权路径),问你他能不能走一圈回到原点之后,时间倒流. 思路:题意有点难看懂,我们建完边之后找一下是否存在负权回路,存在则能,反之不能. ...
- 【Java----判断字符串是否乱码】
import java.util.regex.Matcher; import java.util.regex.Pattern; public class ChineseUtill { private ...
- 使用SpringBoot发送邮件
最后发送成功后,感觉SpringBoot真的很强大. http://www.ykmimi.com/email ↑待加入email输入的重载(可以不上传文件或可以不填写主内容) ↑待加入邮箱RegExp ...
- Bitmap 位图
转自: http://dongxicheng.org/structure/bitmap/ 1. 概述 位图(bitmap)是一种非常常用的结构,在索引,数据压缩等方面有广泛应用.本文介绍了位图的实现 ...
- UVa 10328 Coin Toss(Java大数+递推)
https://vjudge.net/problem/UVA-10328 题意: 有H和T两个字符,现在要排成n位的字符串,求至少有k个字符连续的方案数. 思路:这道题目和ZOJ3747是差不多的,具 ...
- UVa 12034 比赛名次(递推)
https://vjudge.net/problem/UVA-12034 题意: A.B两人赛马,最终名次有3种可能:并列第一:A第一B第二:B第一A第二.输入n,求n人赛马时最终名次的可能性的个数除 ...
- 在iframe外层head中插入link
let src = 'abc.css?v='+Math.random(); let link = window.parent.document.createElement('link'); link. ...