专栏名称: java一日一条
主要是讲解编程语言java,并且每天都推送一条关于java编程语言的信息
目录
相关文章推荐
芋道源码  ·  Spring Boot 中使用 JSON ... ·  2 天前  
芋道源码  ·  Java面试,问八股文的面试官水平很次? ·  2 天前  
Java编程精选  ·  手把手教你Java文件断点下载 ·  3 天前  
Java编程精选  ·  阿里员工吐槽:80%以上的leader认为, ... ·  4 天前  
51好读  ›  专栏  ›  java一日一条

『文末送书』Spring Cloud 微服务的那点事

java一日一条  · 公众号  · Java  · 2018-09-21 08:03

正文

请到「今天看啥」查看全文


微服务强调更深层次的组件化和服务化,每个微服务都可以拥有独立的运行空间,确保每一个服务组件可以作为单独的产品进行发布。

微服务抛弃了传统SOA笨重的企业服务总线,对外发布强调使用HTTP REST API的接口发布形式。

微服务的切分粒度大。

了解了架构的发展过程,我们来认识一下Spring Cloud。

Spring Cloud来源于Spring,利用Spring Boot进行快捷开发。由于目前Spring Cloud社区的维护和支持的人员数量众多,相信Spring Cloud会有很好的发展。而且Spring Cloud基本上都是使用了现有的开源框架进行的集成,学习的难度和部署的门槛就比较低,对于中小型企业来说,更易于使用和落地。

Spring Cloud主要解决了什么问题?

1、对于企业级的SOA框架来说,服务与服务间的解耦是一项巨大的难题,随着功能服务的不断增加,多服务间的相互调用频繁,调用过程就像一个杂乱无章的毛线球,很容易导致牵一发而动全身的情况,经常会由于在服务更新的过程中,没有合理通信,导致数据的丢失。

这时候就应该进行服务治理,将服务之间的直接依赖转化为服务对服务中心的依赖。Spring Cloud 核心组件Eureka就是解决这类问题。

Eureka

Eureka是Netflix开源的一款提供服务注册和发现的产品,它提供了完整的Service Registry和Service Discovery实现。也是Spring Cloud体系中最重要最核心的组件之一。

用大白话讲,Eureka就是一个服务中心,将所有的可以提供的服务都注册到它这里来管理,其它各调用者需要的时候去注册中心获取,然后再进行调用,避免了服务之间的直接调用,方便后续的水平扩展、故障转移等。如下图:

当然服务中心这么重要的组件一但挂掉将会影响全部服务,因此需要搭建Eureka集群来保持高可用性,生产中建议最少两台。

随着系统的流量不断增加,需要根据情况来扩展某个服务,Eureka内部已经提供均衡负载的功能,只需要增加相应的服务端实例既可。

那么在系统的运行期间某个实例挂了怎么办?Eureka内容有一个心跳检测机制,如果某个实例在规定的时间内没有进行通讯则会自动被剔除掉,避免了某个实例挂掉而影响服务。

因此使用了Eureka就自动具有了注册中心、负载均衡、故障转移的功能。

Hystrix

在微服务架构中通常会有多个服务层调用,基础服务的故障可能会导致级联故障,进而造成整个系统不可用的情况,这种现象被称为服务雪崩效应。







请到「今天看啥」查看全文