一.微服务简介

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. Network Embedding

    网络表示 网络表示学习(DeepWalk,LINE,node2vec,SDNE) https://blog.csdn.net/u013527419/article/details/76017528 网 ...

  2. linux 设置开机启动项两种方式

    原文链接:http://blog.csdn.net/karchar/article/details/52489572 有时候我们需要Linux系统在开机的时候自动加载某些脚本或系统服务. 在解问题之前 ...

  3. LeetCode解题报告—— Unique Binary Search Trees & Binary Tree Level Order Traversal & Binary Tree Zigzag Level Order Traversal

    1. Unique Binary Search Trees Given n, how many structurally unique BST's (binary search trees) that ...

  4. Maximum Subarray——经典

    Find the contiguous subarray within an array (containing at least one number) which has the largest ...

  5. 关于k8s里的service互访,有说法

    昨天,测试了一个项目的接入.明白了以下几个坑: 1,traefik有可能有性能问题,如果daemonset安装,可重建.也需要通过8580端口查看性能. 2,集群中的service访问自己时,好像性能 ...

  6. nginx 开启 gzip

    gzip on; gzip_min_length 1k; gzip_buffers 4 16k; gzip_comp_level 2; gzip_types text/plain applicatio ...

  7. Linux搭建主从数据库服务器(主从复制)

    配置主机数据库: 1.克隆linux操作系统 2.修改Linux系统主机IP地址 主机IP:192.168.247.150 从机IP:192.168.247.151 3.通过xshell连接Maste ...

  8. python全局变量被覆盖的问题

    下面的情况,foo全局变量会被局部变量覆盖掉,这样在其它地方使用的值就是空值. g_foo = '' #全局变量 def set(): g_foo = 'abc' # 给全局变量赋值 def use_ ...

  9. thinkjphp 模板中获取url中的action

    <if condition="ACTION_NAME eq 'add'">新增<else/>编辑</if>

  10. 洛谷P4302 [SCOI]字符串折叠 [字符串,区间DP]

    题目传送门 字符串折叠 题目描述 折叠的定义如下: 一个字符串可以看成它自身的折叠.记作S = S X(S)是X(X>1)个S连接在一起的串的折叠.记作X(S) = SSSS…S(X个S). 如 ...