一.微服务简介

1.演变过程:单体架构、SOA、微服务

2.单体架构:一个应用包含了应用之间所有的功能程序,通过打成war包的方式发布部署。

缺点:复杂性逐渐偏高、技术债务逐渐变慢、阻碍技术的创新扩展、无法按需求伸缩

3.SOA:面向服务的架构,是一个组件的架构模型,它将应用程序之间不同的功能单点通过服务之间的良好接口进行关联,接口采用中立的方式进行定义,以一种统一的方式进行交互。

特征:外部访问、随时可用、服务接口分级、松散耦合、可复用的服务、服务接口设计管理、标准化服务接口、支持消息模式

4.微服务:以开发一组小型应用的方式进行,开发一个完全独立的应用系统,独立运行自己的进程,并采用http资源API轻量的机制进行相互通信,并围绕业务功能进行设计。

特征:独立运行进程、独立的构建系统、轻量级通信、Rest API的方式应用调用

优点:易于开发、启动快、局部修改容易、技术不受限制、按需求伸缩、DevOps

带来的问题:运维、维护要求高、分布式复杂性、接口调整成本高、

设计原则:单一原则(只关注自己)、服务自理(独立)、明确接口、轻量通信

二.服务发现与注册

1.创建调用关系的微服务

服务提供者:负责提供Rest API的微服务

服务消费者:负责调用微服务的微服务

2、使用实现微服务注册与发现

三.微服务容错

实现容错机制:

1.超时机制:通过网络请求其他服务时,都必须设置超时。正常情况下,一个远程调用一般在一定的毫秒内得到请求的响应,如果超时了这个时间、依赖的服务不可用、网络有问题、响应的时间则会变得很长。通常情况下,一次请求对应着一个线程、进程。如果响应太慢就得不到这个线程的释放、又对应着系资源的释放。如果得不到、则会越积累越多,服务资源就会被耗尽,从而导致服务不可用。所以必须给每个请求都设置【超时机制】,让资源尽快的得到【释放】。

2.断路器:依赖的服务有大量的超时请求的时候,得不到资源的释放、积累越多、导致系统服务不可用,再去请求已经没有意义了。只能是无谓的消耗现有资源从而导致【其他的服务不可用】,例:设置超时机制2秒,如果在某个时间内100个请求在2秒钟得不到请求的响应,意味着这个服务发生异常。此时其他依赖的的请求再去请求已经没有意义了。

使用断路器实现快速失败,让资源得到快速的响应。例它在某个时间2秒内侦查到200个请求的失败、超时,就会强迫立即快速失败,不再请求所依赖的服务,从而防止应用程序不断的尝试执行可能会失败的操作,这样应用程序就会执行不用等待错误回调、或者去浪费cpu的时间去等待很长很长时间的超时。断路器也能实现程序的错误是否已经得到修复,如果已经修复、应用程序就会再次调用操作。

springCloud微服务使用的更多相关文章

  1. 【微服务】之二:从零开始,轻松搞定SpringCloud微服务系列--注册中心(一)

    微服务体系,有效解决项目庞大.互相依赖的问题.目前SpringCloud体系有强大的一整套针对微服务的解决方案.本文中,重点对微服务体系中的服务发现注册中心进行详细说明.本篇中的注册中心,采用Netf ...

  2. 【微服务】之三:从零开始,轻松搞定SpringCloud微服务-配置中心

    在整个微服务体系中,除了注册中心具有非常重要的意义之外,还有一个注册中心.注册中心作为管理在整个项目群的配置文件及动态参数的重要载体服务.Spring Cloud体系的子项目中,Spring Clou ...

  3. 从零开始,轻松搞定SpringCloud微服务系列

    本系列博文目录 [微服务]之一:从零开始,轻松搞定SpringCloud微服务系列–开山篇(spring boot 小demo) [微服务]之二:从零开始,轻松搞定SpringCloud微服务系列–注 ...

  4. 【微服务】之四:轻松搞定SpringCloud微服务-负载均衡Ribbon

    对于任何一个高可用高负载的系统来说,负载均衡是一个必不可少的名称.在大型分布式计算体系中,某个服务在单例的情况下,很难应对各种突发情况.因此,负载均衡是为了让系统在性能出现瓶颈或者其中一些出现状态下可 ...

  5. 【微服务】之五:轻松搞定SpringCloud微服务-调用远程组件Feign

    上一篇文章讲到了负载均衡在Spring Cloud体系中的体现,其实Spring Cloud是提供了多种客户端调用的组件,各个微服务都是以HTTP接口的形式暴露自身服务的,因此在调用远程服务时就必须使 ...

  6. 【微服务】之六:轻松搞定SpringCloud微服务-API网关zuul

    通过前面几篇文章的介绍,我们可以轻松搭建起来微服务体系中比较重要的几个基础构建服务.那么,在本篇博文中,我们重点讲解一下,如何将所有微服务的API同意对外暴露,这个就设计API网关的概念. 本系列教程 ...

  7. java~springcloud微服务目录索引

    回到占占推荐博客索引 最近写了不过关于java,spring,微服务的相关文章,今天把它整理一下,方便大家学习与参考. java~springcloud微服务~目录索引 springcloud~服务注 ...

  8. SpringCloud微服务负载均衡与网关

    1.使用ribbon实现负载均衡ribbon是一个负载均衡客户端 类似nginx反向代理,可以很好的控制htt和tcp的一些行为.Feign默认集成了ribbon. 启动两个会员服务工程,端口号分别为 ...

  9. SpringCloud微服务之跨服务调用后端接口

    SpringCloud微服务系列博客: SpringCloud微服务之快速搭建EurekaServer:https://blog.csdn.net/egg1996911/article/details ...

  10. springcloud微服务实战:Eureka+Zuul+Feign/Ribbon+Hystrix Turbine+SpringConfig+sleuth+zipkin

    相信现在已经有很多小伙伴已经或者准备使用springcloud微服务了,接下来为大家搭建一个微服务框架,后期可以自己进行扩展.会提供一个小案例: 服务提供者和服务消费者 ,消费者会调用提供者的服务,新 ...

随机推荐

  1. 3:django models Making queries 高级进阶--聚合运算

    在前一遍文章django models Making queries里面我们提到了django常用的一些检索数据库的内容, 下面我们来看一下更为高级的检索聚合运算 这是我们要用到的模型 class A ...

  2. CentOS7.5安装配置conky(极简)

    1.安装epel源 下载地址:http://dl.fedoraproject.org/pub/epel/ 找到epel-release-XXXXXXX.rpm文件,下载解压 rpm -ivh epel ...

  3. RHEL7删除yum命令后如何恢复

    楼主也是不小心删除了rhel7上的yum命令,后来通过安装centos7的yum命令解决 1.首先下载yum相关的rpm包 http://mirrors.163.com/centos/7/os/x86 ...

  4. BotFramework Nodejs示例

    关于Bot Framework知识,可以参考<Nodejs Bot学习> 本文是根据bot framework sample<https://github.com/Microsoft ...

  5. 洛谷——P1276 校门外的树(增强版)

    P1276 校门外的树(增强版) 题目描述 校门外马路上本来从编号0到L,每一编号的位置都有1棵树.有砍树者每次从编号A到B处连续砍掉每1棵树,就连树苗也不放过(记 0 A B ,含A和B):幸运的是 ...

  6. Linux用户密码文件/etc/shadow相关

    (1).密码文件 [root@xuexi ~]# head -3 /etc/shadow root:$6$kcgcu794R0VP3fDL$aYN8XUbtWvZ4QQtT2xVW.N2CgE3YLP ...

  7. CUPOJ6242: LHC的二进制升级版

    6242: LHC的二进制升级版 时间限制:1秒 内存限制:128MB Special Judge 提交:6 正确:3 题目描述 在发现了3的二进制特殊性质后,LHC认为形如1.3.7.15..... ...

  8. Linux含交互的自动登录脚本

    近来经常要通过ssh登录服务器,每次输入命令和密码很麻烦,查资料发现有两种解决,一种是本地创建密钥直接登录,另一种是写个脚本. 这里介绍第二种方法,第一种资料也很多,但是觉得没啥意思. 先上脚本: # ...

  9. 设计模式-状态模式(State Pattern)

    本文由@呆代待殆原创,转载请注明出处:http://www.cnblogs.com/coffeeSS/ 状态模式简介 状态模式允许一个对象在其内部状态改变的时候改变它的行为,他的内部会存着好几种状态, ...

  10. FlowPortal BPM官网改版了,推出20个流程免费基础版

    我一直使用的FlowPortal BPM官网网站近期改版了,看起来更加高大上了.不仅美感提高了,所传递的信息,特别是新老用户所需要的信息也更多了. 对于新版网站,我觉得比较赞的地方: 1.新增开发者中 ...