微服务,spring boot,spring cloud

什么是微服务

  将复杂的业务系统根据业务拆分成多个子系统协同完成主体业务。

微服务的九大特性(根据Martin Fowler 在 Microservices 中的归纳)

  服务组件化(灵活拆装,低耦合)

  按业务组织团队(分工驱动团队的技术知识储备)

  做产品的态度,团队对整个生命周期负责,业务进行拆分后,每个模块的的业务小而精,更容易做纵向扩展,把小功能做精

  智能端点和哑管道,组件间从原先的方法调用的交互方式变为基于粗粒度的通信协议(Http的RESTful API,HSF,RabbitMQ)

  去中心化管理,不需要再为整个项目(诸多子业务的组合)定义统一的标准,意味着每个子模块要解决一些模块特有的问题可以灵活的引进一些技术,可以避免单体项目在整体的标准和框架限制下,一些技术无法引入,导致短板被放大,团队花大量的时间解决一些简单的问题(重复造轮子)

  去中心化管理数据,数据结构更优,性能提升空间更大。

  基础设施自动化,自动化测试、自动化部署

  容错设计,微服务的项目分部和部署比单体服务更加的复杂(整体项目协同角度看),需要更强的容错机制,不然一个服务的问题蔓延(错误自动回复,日志分析、监控(非常重要),断路器)。

  演进式设计,微服务的设计成本比较高,对团队来说要服务处更大的代价,不成熟的团队可以先以单体系统进行开发部署和实施,在后续业务扩展的过程中,再慢慢将一些模块进行抽离,围绕着住业务进行微服务改造。

微服务带来的问题

  事务,最终一致性(重新发起调用,日志分析,结果分析)

  容错,日志分析、监控

微服务解决方案

  spring cloud

  注册中心 Eureka Server

    服务管理,一个双层map管理注册过来的服务 Mao<ServerName,Map<InstanceName,Instance>>.

      注册功能

      注销功能

      按时剔除无心跳的服务

      剔除无效服务功能(一些服务虽然有心跳,但无法提供正常服务,通过调用spring boot整合的health监控端点实现)

        获取服务列表功能

      刷新心跳接口

  注册客户端 Eureka Client

    服务治理的客户端,集成到每个业务系统中,将业务系统提供的服务注册到注册中心。

      调用注册接口进行注册,维护心跳(定时任务)

      调用注销接口进行注销(服务正常关闭或重启)

      获取服务列表(定时任务)

  负载均衡 Ribbon

    对获取到的服务列表进行轮询选择(或者配置其他负载均衡方式)

  spring http

    发起调用

  

原文地址:https://www.cnblogs.com/jiangjil/p/9868583.html

时间: 2024-07-31 05:04:45

微服务,spring boot,spring cloud的相关文章

微服务为什么选Spring Cloud?

前言现如今微服务架构十分流行,而采用微服务构建系统也会带来更清晰的业务划分和可扩展性.同时,支持微服务的技术栈也是多种多样的,本系列文章主要介绍这些技术中的翘楚--Spring Cloud.这是序篇,主要讲述我们为什么选择Spring Cloud和它的技术概览. 1.为什么微服务架构需要Spring Cloud 简单来说,服务化的核心就是将传统的一站式应用根据业务拆分成一个一个的服务,而微服务在这个基础上要更彻底地去耦合(不再共享DB.KV,去掉重量级ESB),并且强调DevOps和快速演化.这

Spring Boot/Spring Cloud、ESB、Dubbo

如何使用Spring Boot/Spring Cloud 实现微服务应用spring Cloud是一个基于Spring Boot实现的云应用开发工具,它为基于JVM的云应用开发中的配置管理.服务发现.断路器.智能路由.微代理.控制总线.全局锁.决策竞选.分布式会话和集群状态管理等操作提供了一种简单的开发方式. Spring Cloud与Dubbo对比提到Dubbo,我想顺便提下ESB,目前央视新华社也在用ESB来做任务编排,这里先比较下Dubbo和ESB: ESB(企业数据总线),一般采用集中式

Spring -&gt; Spring Boot &gt; Spring Cloud

Spring -> Spring Boot > Spring Cloud 这几天刚刚上班,公司用的是Spring Cloud,接触不多.我得赶快学起来. 想学习就必须得知道什么是微服务,什么是Spring Boot,什么是Spring Cloud,以及两者之间有什么关系? 什么是微服务? 简而言之,微服务架构风格是一种将单个应用程序作为一套小型服务开发的方法,每种应用程序都在自己的进程中运行,并与轻量级机制(通常是HTTP资源API)进行通信. 这些服务是围绕业务功能构建的,可以通过全自动部署

Spring boot +Spring Security + Thymeleaf 认证失败返回错误信息

spring boot以其众多友谊的特性,如零配置.微服务等,吸引了很多的粉丝.而其与Spring Security安全框架的无缝结合,使其具备的安全的特性.在此基础上使用Thymeleaf模板引擎进行渲染,静动态结合,让页面开发更加简单.直观. 通过表单提交登录的用户名和密码是登录接口比较常见的一种设计.在初学的过程中,我也不例外的采用个这种方式.表单设计见下图. 登录成功,完成正常的主页面跳转,这个不存在问题.存在问题的是,登录失败了该咋办呢?我就在考虑,由于thymeleaf的局部刷新操作

255.Spring Boot+Spring Security:使用md5加密

说明 (1)JDK版本:1.8 (2)Spring Boot 2.0.6 (3)Spring Security 5.0.9 (4)Spring Data JPA 2.0.11.RELEASE (5)hibernate5.2.17.Final (6)MySQLDriver 5.1.47 (7)MySQL 8.0.12 需求缘起 很多时候,我们自己已经有现成的一套系统在运行了,这时候要接入spring security的话,那么难免会碰到一个问题:就是自己设计的密码加密方式和spring secur

256.Spring Boot+Spring Security: MD5是加密算法吗?

说明 (1)JDK版本:1.8 (2)Spring Boot 2.0.6 (3)Spring Security 5.0.9 (4)Spring Data JPA 2.0.11.RELEASE (5)hibernate5.2.17.Final (6)MySQLDriver 5.1.47 (7)MySQL 8.0.12 前言 有网友在公众号留言:准确的说md5是摘要算法不是加密算法 针对这个问题,当时也没有仔细的思考,空下来的时候,对于这个问题整理了下思路. 一.加密算法 1.1 加密和解密 1.1

Angular集成Spring Boot,Spring Security,JWT和CORS

本文介绍了Spring Boot的基本配置,Angular集成Spring Boot.Spring Security的方法.当前流行的JWT更适合与Angular集成,优于Spring Secuity提供的CSRF.另外引入了springfox-swagger和spring-boot-starter-actuator,演示了如何利用Swagger生成JSON API文档,如何利用Actuator监控应用. 本文前端基于Angular官方样例Tour of Heroes,请先到官网下载. 技术堆栈

Spring Boot + Spring Cloud 构建微服务系统(七):API服务网关(Zuul)

技术背景 前面我们通过Ribbon或Feign实现了微服务之间的调用和负载均衡,那我们的各种微服务又要如何提供给外部应用调用呢. 当然,因为是REST API接口,外部客户端直接调用各个微服务是没有问题的,但出于种种原因,这并不是一个好的选择. 让客户端直接与各个微服务通讯,会有以下几个问题: 客户端会多次请求不同的微服务,增加了客户端的复杂性. 存在跨域请求,在一定场景下处理会变得相对比较复杂. 实现认证复杂,每个微服务都需要独立认证. 难以重构,项目迭代可能导致微服务重新划分.如果客户端直接

微服务中基于Spring Boot的maven分布式项目框架的搭建

项目介绍 这里搭建的是基于 maven 的分布式工程,因为在一个项目中,多个微服务是属于同一个工程,只不过是提供不同的服务而已,再加上 IDEA 是默认一个窗口打开一个项目工程(这点和 eclipse 不同),如果项目大,不用 maven 聚合工程的话,那估计会打开十几个窗口--会崩溃--而且在架构上,也应该使用 maven 分布式工程来搭建微服务架构.这里手把手教大家在 IDEA 中搭建基于 maven 分布式的 Spring Cloud 微服务工程架构. maven分布式工程架构首先来看一下

微服务架构之spring cloud 介绍

在当前的软件开发行业中,尤其是互联网,微服务是非常炽热的一个词语,市面上已经有一些成型的微服务框架来帮助开发者简化开发工作量,但spring cloud 绝对占有一席之地,不管你是否为java开发,大部分都应该听说过,因为他实现了微服务所必备的功能. Spring cloud总体概览,这是我用了近3个小时的成果,也是实际项目的总结. a)         Spring cloud gateway 是网关,起到总管的作用,也是终端调用服务的第一道门槛,统一的入口. b)        Spring