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

    没有修不好的电脑
  • 相关阅读:
    sql中where和having的区别
    mysql中locate和substring函数使用
    使用jdk进行数据迁移(sqlite迁移mysql)
    mysql数值函数
    mysql字符串函数
    zabbix-2.2.2(Ubuntu 14.04 LTS/OpenLogic 7.2)
    Piwik-2.16.1 (OpenLogic CentOS7.2)
    Nagios-4.1.1 (OpenLogic CentOS 7.2)
    Bugzilla-5.0.3 (OpenLogic CentOS 7.2)
    GitLab-CE-8.9.4 (OpenLogic CentOS 7.2)
  • 原文地址:https://www.cnblogs.com/duniqb/p/12702457.html
Copyright © 2011-2022 走看看