springCloud微服务使用
一.微服务简介
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微服务使用的更多相关文章
- 【微服务】之二:从零开始,轻松搞定SpringCloud微服务系列--注册中心(一)
微服务体系,有效解决项目庞大.互相依赖的问题.目前SpringCloud体系有强大的一整套针对微服务的解决方案.本文中,重点对微服务体系中的服务发现注册中心进行详细说明.本篇中的注册中心,采用Netf ...
- 【微服务】之三:从零开始,轻松搞定SpringCloud微服务-配置中心
在整个微服务体系中,除了注册中心具有非常重要的意义之外,还有一个注册中心.注册中心作为管理在整个项目群的配置文件及动态参数的重要载体服务.Spring Cloud体系的子项目中,Spring Clou ...
- 从零开始,轻松搞定SpringCloud微服务系列
本系列博文目录 [微服务]之一:从零开始,轻松搞定SpringCloud微服务系列–开山篇(spring boot 小demo) [微服务]之二:从零开始,轻松搞定SpringCloud微服务系列–注 ...
- 【微服务】之四:轻松搞定SpringCloud微服务-负载均衡Ribbon
对于任何一个高可用高负载的系统来说,负载均衡是一个必不可少的名称.在大型分布式计算体系中,某个服务在单例的情况下,很难应对各种突发情况.因此,负载均衡是为了让系统在性能出现瓶颈或者其中一些出现状态下可 ...
- 【微服务】之五:轻松搞定SpringCloud微服务-调用远程组件Feign
上一篇文章讲到了负载均衡在Spring Cloud体系中的体现,其实Spring Cloud是提供了多种客户端调用的组件,各个微服务都是以HTTP接口的形式暴露自身服务的,因此在调用远程服务时就必须使 ...
- 【微服务】之六:轻松搞定SpringCloud微服务-API网关zuul
通过前面几篇文章的介绍,我们可以轻松搭建起来微服务体系中比较重要的几个基础构建服务.那么,在本篇博文中,我们重点讲解一下,如何将所有微服务的API同意对外暴露,这个就设计API网关的概念. 本系列教程 ...
- java~springcloud微服务目录索引
回到占占推荐博客索引 最近写了不过关于java,spring,微服务的相关文章,今天把它整理一下,方便大家学习与参考. java~springcloud微服务~目录索引 springcloud~服务注 ...
- SpringCloud微服务负载均衡与网关
1.使用ribbon实现负载均衡ribbon是一个负载均衡客户端 类似nginx反向代理,可以很好的控制htt和tcp的一些行为.Feign默认集成了ribbon. 启动两个会员服务工程,端口号分别为 ...
- SpringCloud微服务之跨服务调用后端接口
SpringCloud微服务系列博客: SpringCloud微服务之快速搭建EurekaServer:https://blog.csdn.net/egg1996911/article/details ...
- springcloud微服务实战:Eureka+Zuul+Feign/Ribbon+Hystrix Turbine+SpringConfig+sleuth+zipkin
相信现在已经有很多小伙伴已经或者准备使用springcloud微服务了,接下来为大家搭建一个微服务框架,后期可以自己进行扩展.会提供一个小案例: 服务提供者和服务消费者 ,消费者会调用提供者的服务,新 ...
随机推荐
- 关于自适应屏幕,设置子元素浮动,父div不能包裹子div,子元素中内容溢出的问题。
设置HTML适应不同分辨率的屏幕. 需求结构如下: HTML结构代码如下(只是其中一条): <body> <div class="content">< ...
- IntelliJ IDEA SpringBoot 使用第三方Tomcat以及部署
花了半天时间终于成功,记录以备查阅. 一.第三方Tomcat部署 部署部分参考的是:把spring-boot项目部署到tomcat容器中 目标:把spring-boot项目按照平常的web项目一样发布 ...
- 熟悉并了解uml的使用(一)
本资料对UML各种模型图的构成和功能进行说明,通过本资料的学习达到可以读懂UML模型图的目的.本资料不涉及模型图作成的要点等相关知识. UML简介 UML (Unified Modeling Lang ...
- ejs模板在express里的默认文件夹路径修改
默认的是这句: app.set('view engine','ejs') ===>/views文件夹 我想要变成/websong app.set('views','webosg'); app.s ...
- 六十四 asyncio
asyncio是Python 3.4版本引入的标准库,直接内置了对异步IO的支持. asyncio的编程模型就是一个消息循环.我们从asyncio模块中直接获取一个EventLoop的引用,然后把需要 ...
- OpenStack 认证服务 KeyStone连接和用户管理(五)
一) 创建环境变量链接keyston vim adminrc export OS_USERNAME=admin export OS_PASSWORD=redhat export OS_PROJECT_ ...
- sql几种删除语句的联系与区别
DELETE.TRUNCATE.DROP三种删除语句联系与区别 相同点: 1.truncate和不带where子句的delete.以及drop都会删除表内的数据. 2.drop.truncate都是D ...
- python的ipython manage.py shell 引发的 No module named _argparse
环境是:Centos6.6 ,python 2.6 今晚,shell 中输入: # ipython manage.py shell 报错,说找不到命令: 我当时,觉得,我有可能没有安装ipython ...
- 【前端必备】二、CSS篇
1.CSS盒模型 当对一个文档进行布局的时候,浏览器的渲染引擎会根据盒模型将所有元素表示为一个个矩形的盒子,CSS 决定这些盒子的大小.位置以及属性(例如颜色.背景.边框尺寸-) 每个盒子有4个区域: ...
- js for循环的陷阱
☞问题概述 一页面有三个按钮,点击提示相应内容.相应内容已从后台获取,并转化成json数组. var content = ["提示1", "提示2", &quo ...