zoukankan      html  css  js  c++  java
  • 微服务概览

    微服务架构遇到的问题

    1. 客户端如何访问这么多服务
      API 网关
    2. 服务与服务直接如何通信
      • 同步通信
        HTTP:Apache Http Client
        RPC:Dubbo,Apache Thrift
      • 异步通信
        消息队列:kafka,RabbitMQ,RocketMQ
    3. 这么多服务如何管理
      • 服务治理
        • 服务注册与发现
          • 基于客户端的服务注册与发现:Apache Zookeeper
          • 基于服务端的服务注册与发现:Netflix Eureka
    4. 服务挂了怎么办
      • 重试机制
      • 服务熔断
      • 服务降级
      • 服务限流

    一、三层架构 + MVC

    使用架构是为了解耦

    二、开发框架

    Spring

    • Ioc AOP
    • 是一个轻量级的 JavaEE 开源框架,主要是为了解决企业级开发的复杂度(耦合度)问题
    • 使用 Spring 容器来统一管理
    • 但使用 Java 开发仍然笨重

    Spring Boot

    新一代 JavaEE 开发标准,开箱即用

    三、微服务架构

    更好的进行分布式系统开发,拆分单体应用,将一个应用拆分成多个服务,每一个服务都是可以独立运行的项目

    分布式开发遇到的问题

    1. 客户端如何访问这么多服务
    2. 这么多服务如何治理
    3. 服务与服务直接如何通信
    4. 服务挂了怎么办

    四、解决方案

    Spring Cloud,是一套生态,是为了解决微服务架构遇到的问题,使用 Spring Cloud,必须基于 Spring Boot

    1. Spring Cloud Netflix

    • 客户端如何访问这么多服务
      • API 网关:Zuul 组件
    • 这么多服务如何治理
      • 服务注册与发现:Eureka
    • 服务与服务直接如何通信
      • Feign,是基于 Http Client的,所以是基于 Http 的通信方式:同步并阻塞
    • 服务挂了怎么办
      • 熔断机制:Hystrix

    2. Apache Dubbo Zookeeper

    • 客户端如何访问这么多服务
      • API 网关:没有,找第三方
    • 这么多服务如何治理
      • 服务注册与发现:Zookeeper
    • 服务与服务直接如何通信
      • Dubbo 是一个高性能的 Java RPC 通信框架
    • 服务挂了怎么办
      • 熔断机制:没有,借用 Hystrix

    3. Spring Cloud Alibaba

    没有修不好的电脑
  • 相关阅读:
    vue2.0动态添加组件
    Kali Linux信息收集工具全
    Kali Linux 弱点分析工具全集
    如何DIY一个简单的反弹Shell脚本
    深入理解DIP、IoC、DI以及IoC容器
    Intellij IDEA常用配置详解
    GIT 的常规操作
    Nodejs学习笔记(一)--- 简介及安装Node.js开发环境
    什么是“对用户友好”
    Facebook为什么使用PHP编程语言?
  • 原文地址:https://www.cnblogs.com/duniqb/p/12702457.html
Copyright © 2011-2022 走看看