分布式架构

优点:耦合度低, 便于扩展

缺点:架构复杂,运维成本大

  • 微服务治治理
  • 异步通信技术
  • 缓存技术
  • 搜索技术
  • devops

微服务

  • 微服务是分布式架构一种较好的实践,常见的微服务技术是springcloud

  • 单一职责: 每一个服务对应唯一的业务能力

  • 面向服务:微服务向外暴露接口

  • 自治:团队独立、技术独立、数据独立、部署独立

  • 隔离性强: 服务调用做好隔离、容错、降级、避免出现级联问题

springcloud介绍

  • springcloud是分布式的一种解决方案,它将项目拆分成一个个服务(降低耦合),目的是为了减轻服务器的压力,增加了部署难度
  • 拆分会造成使架构更复杂,造成更多的问题,中途又出现很多技术来解决问题,springcloud将这些技术整合起来

微服务组件

  • 微服务将业务进行拆分、解耦,不同业务单独建一个springboot,会造成一个个问题,主要有下面5中技术解决微服务出现的问题常常被叫做微服务治理
  • 注册中心
  • 服务远程调用
  • 配置中心
  • 服务网关
  • 服务监控与保护

服务调用层

  • rpc (remote process call) 远程过程调用

    • rpc是一种概念,为分布式设计,duboo、grpc可以实现
    • 保持长连接,从而效能高
    • rpc能够对服务进行解耦、耦合性高
      • 服务解耦:本地调用远程的方法,这个调用是透明的,并不知道这个调用的方法是部署哪里
      • 耦合性高: 调用者需要知道所调用接口的函数名、参数格式、参数顺序、参数名称等
    • rpc = socket + 动态代理

  • restful (representational state transfer) 性状态转移或表征状态转移

    • 是一种设计风格,基于http协议,可以使用xml格式定义或json格式定义
    • resource: 通过url、rui去标识、定位资源
    • representational:资源的表现形式,如json、xml
    • state transfer:http是一个无状态协议,所有状态保存在服务器端、客户端想要获取服务端信息,需要通过http的请求(get、post、put、delete等)获取,这种状态转移发生在osi模型的表现层,叫做无状态转移​
  • soap (Simple Object Access Protocol) 简单对象访问协议

    • 是一种交换数据的一种协议规范
    • 基于xml,实现技术是webService

  • dubbo:是基于rpc的,并发高的场景

  • openfeign: 基于restful的,并发低的场景

微服务远程调用

  • 这个业务需要另外一个业务的数据,这个时候就会涉及到远程调用,远程调用的技术要用到feign或者dubbo,feign是我们常见的restful风格的请求用的是http协议、dubbo着用的rpc协议

  • 跨服务的远程调用,实际上就是发送一个http请求,RestTemplate可以调用帮我们发送一个http请求,请求到别的业务的接口,并返回对应的数据对象例子:首先在启动类注册一个RestTemplate对象,然后使用 restTemplate.getObject(url, Entity.class); 缺点是这种方式是硬编码,不适用于与并发集群、profieles

  • 替代RestTemplate的有两种技术是:Dubbo、openfeign

Eureka(注册中心)

  • 服务之间存在服务之间互相调用的问题,它的角色是基于具体的业务,抛开业务,它既可以是提供者又可以是消费者

  • 解决消费者与提供者集群的问题,这个和nginx负载均衡是一样的,Eureka来记录生产者与消费者,它帮我们管理请求的接收与分发,提供者每个30s会向Eureka发送心跳,来确定这个提供者是否挂掉,如果挂掉会剔除掉这个提供者

  • Eureka-Server 服务端记录服务信息、心跳监控

  • EurekaClient

    • Provider: 服务提供者
    • Consumer: 服务消费者

网关

  • 没有网关,所有人都可以访问,为了安全加入了网关

  • 功能:身份认证和权限校验、服务路由、负载均衡、请求限流

  • 技术有: getway是spring5中WebFlux实现的是响应式的、zuul是Servlet实现(阻塞式)

  • 微服务5大组件: 注册中心、服务远程调用、配置中心、服务网关、服务监控和保护

  • 微服务技术体系: doubble、springcloud、springCloudAlibaba

Dubbo springCloud springCloudAlibaba
注册中心 zookeeper、Redis Eureka,Consul、zokeeper Nacos、Eureka
服务远程调用 Doubbo协议 Feign(http协议) Doubbo、openFeign
配置中心 SpringcloudConfig SpringCloudConfig、Nacos
服务网关 SpringCloudGateway、Zuul SpringCloudGateway、Zuul
服务监控和保护 dobbo-admin Hystrix Sentinel
服务总线 bus Nacos

springcloud与springBoot版本兼容问题

  • springcloud版本参考:https://spring.io/projects/spring-cloud#overview
  • springAlibaba版本参考:https://github.com/alibaba/spring-cloud-alibaba/wiki/%E7%89%88%E6%9C%AC%E8%AF%B4%E6%98%8E

微服务特点

约定 > 配置 > 编码

组件之间可以互相选择

springcloud+dubbo+nacos+sentinel+seata

springcloud+feign+nacos+sentinel+seata

分布式架构及微服务介绍相关推荐

  1. 单体架构、分布式架构、微服务概述

    单体架构.分布式架构.微服务概述 一.单体架构 二.分布式架构 三.微服务 总结 集群:同一个应用,部署在不同的服务器 服务:业务功能拆分独立成一个模块(业务模块) 一.单体架构 单体架构:将业务的所 ...

  2. 一文看懂Java微服务架构,WEB2.0,垂直架构,分布式架构,微服务架构

    Java微服务架构 目录: 了解开发环境&生成环境 WEB1.0 & WEB2.0 垂直架构 分布式架构 微服务架构 1.了解开发环境&生产环境 1.1 开发环境 平时在写代码 ...

  3. 分布式架构,微服务、限流、熔断....

    本文将介绍微服务架构和相关的组件,介绍他们是什么以及为什么要使用微服务架构和这些组件.本文侧重于简明地表达微服务架构的全局图景,因此不会涉及具体如何使用组件等细节. 要理解微服务,首先要先理解不是微服 ...

  4. JavaEE架构之传统三层架构,集群架构,分布式架构,微服务架构

    javaEE架构 1.传统三层架构(all in one项目) 传统三层架构大致可以分为表现层,业务层和持久层(数据访问层).其中表现层负责接受请求和转发请求.业务层负责处理请求(注:事务管理,日志记 ...

  5. 微服务【分布式架构认识微服务SpringCloud】第1章

    目录 1,认识微服务 1.1,单体架构 1.2,分布式架构 1.3,微服务 1.4,SpringCloud 1.5,总结

  6. 分布式与微服务——Iaas,Paas和Saas、单体应用和缺点、微服务概念、传统 分布式 SOA 架构与微服务架构的区别、微服务实战、什么是RPC、CAP定理和BASE理论、唯一ID生成、实现分布式

    文章目录 1-什么是Iaas,Paas和Saas 一 IaaS基础设施服务 二 paas平台即服务 三saas软件即服务 四 总结 2-单体应用和缺点 一 单体应用 二 单体应用的缺陷 3-微服务概念 ...

  7. SOA架构和微服务架构之间的关系

    写在前面: 你好,欢迎你的阅读! 我热爱技术,热爱分享,热爱生活, 我始终相信:技术是开源的,知识是共享的! 博客里面的内容大部分均为原创,是自己日常的学习记录和总结,便于自己在后面的时间里回顾,当然 ...

  8. 从单体架构到微服务架构的拆分

    目录 一.概述 二.微服务拆分 三.微服务项目架构图 一.概述 单体架构.分布式架构和微服务架构是三种不同的软件架构模式,它们各有特点和适用场景. 单体架构(Monolithic Architectu ...

  9. 【架构】分布式服务架构与微服务架构

    文章目录 0)服务相关架构的演变 *关于面向对象.面向组件.面向服务 1)面向服务架构(SOA) 1.1 什么是面向服务架构(SOA)? 1.2 为什么需要SOA? 1.3 SOA 的特征 1.4 S ...

最新文章

  1. RDD基本转换操作:zipWithIndex、zipWithUniqueId
  2. STM32H743+Cube-Keil上移植RTX5实时系统
  3. python获取上个月最后一天_在Python中获取本月的最后一天
  4. 国内pinterest模式昙花一现 社交电商不该这么玩
  5. 计算机代数与密码学,代数曲线与密码学
  6. hls ask 调制
  7. 如何利用ikuai将闲置电脑配作软路由器?
  8. 大数据产品推荐:Stratifyd大数据智能分析平台
  9. PNG图片背景透明-简单方法
  10. JAVA导出EXCEL——POI(转)
  11. PPT柱形统计图制作详情——小白秒变大神
  12. filebeat报错:Harvester could not be started on exist file
  13. 脱不花《沟通的方法》读书笔记(一):学会倾听
  14. AToken全观:情人节妹子收了520个BTC,成吨狗粮灌到饱
  15. 网上书城(搜索页,购物车)
  16. 【CF#715C】Digit Tree 点分治+乘法逆元
  17. c语言延时时间计算器,RC延时电路延时时间计算
  18. 7-3 学习打卡(11.28)
  19. 从冷战到深度学习:一篇图文并茂的机器翻译史
  20. 香港电讯及华为完成全球首个HSS/VoLTE系统转移

热门文章

  1. REMIND Your Neural Network to Prevent Catastrophic Forgetting 翻译
  2. 微信三级分销系统有哪些内容
  3. linux中.bashrc 等文件中的rc是什么意思
  4. [渝粤教育] 西南科技大学 人因工程 在线考试复习资料
  5. 苹果seo_SEO文章关键词如何优化?
  6. easypoi 列合并_EasyPOI
  7. vue 移动端ui框架
  8. 红薯微剧场 | 开源众包发包记第一集 —— 前端篇
  9. 神秘永远的《加州旅馆》
  10. 微带线宽与承受功率的关系