zoukankan      html  css  js  c++  java
  • 梦易购商城_项目简介

    分布式概念基础

      微服务(架构风格):把一个单独的应用程序开发为一小套的小服务,每一个小服务运行在自己的进程中,并使用轻量级的通信机制,通常是HTTP、API,围绕业务那里来构建并通过完全的自动化部署来独立部署,这些服务使用不同的编写语言书写,已不同的数据存储技术,并保持最低限度的集中式管理

      概括:把大的应用拆分一个个的小的服务,每一个服务互不干扰,独立运行

      好处:每一个服务足够内聚,足够小,代码容易理解,这样能聚集一个指定的业务功能需求。开发简单、开发效率提供,一个服务器可能就是专一的只干一件事,微服务能够被小团队单独开发

      缺点: 1. 开发人员要处理分布式的复杂性

          2. 多服务运维艰难,随着服务的增加,运维的压力也在增大

          3. 系统部署互相依赖

          4. 服务间通讯成本

          5. 数据一致性

          6.系统集成测试

          7.性能监控

    集群、分布式、节点

    • 集群:物理形态,将几台服务器集中在一起,实现同一业务,一组计算机,作为一个整体向用户提供一组网络资源,分布式中的每一个节点,都可以做集群,而集群不一定是分布式的
    • 分布式:工作方式,将不同的业务分布在不用的地方
    • 节点:集群里的一个服务器

    远程调用:在分布式系统中,每一个服务在不同的主机,但服务之间需要互相调用SpringCloud中使用HTTP+JSON的方式完成远程调用

    负载均衡:为了使每一个服务器不要太忙或者太闲,负载均衡的调用每一个服务器,提高网站的健壮性

      常见的负载均衡的算法

               轮询:为一个请求选择健康池中的第一个后端服务器,然后按顺序依次选择,循环    

               最小连接:优先选择连接数量连接最少,压力最小的后端服务器,会话较长的情况下会考虑采取这种方式

               散列:根据请求源的ip的散列(hash)来选择要转发的服务器,可以一定程度的保证特定用户能连接到相同的服务器,应用需要处理状态而要求用户连接到之前相同的服务器,采用这种方式

    注册中心:实时的感知到其他服务器的状态,从而避免调用不可用的服务

    配置中心:用来集中管理微服务的配置信息

    服务熔断、服务降级

        服务熔断:

            a)      设置服务的超时,调用服务经常失败到达某个阈值,可以开启断路保护机制,后来的请求不再去调用这个服务,本地直接返回默认数据

        服务降级:

            a)      在运维期间,当系统处于高峰期,系统资源紧张,可以让非核心业务降级运行

            降级:当某些服务不处理,或者简单处理(抛异常,返回null,调用Mock数据,调用Fallback处理逻辑 )

    API网关:抽象了微服务中需要的公共功能,同时提供了客户端负载均衡,服务自动熔断,灰度发布,统一认证,限流流控,日志统计等丰富的功能,解决很多的API管理难题 

    微服务架构图:

  • 相关阅读:
    configure.ac:91: error: possibly undefined macro: AC_SEARCH_LIBS
    debian上安装tmux
    ssh: Bad configuration option: usedns
    mysql启动失败“MySQL Daemon failed to start”
    批量查询文件的编码格式
    mysql计算QPS
    网络资源汇总
    jQuery Mobile + HTML5
    配置SQL Server 2008 R2 Reporting Services
    分享一个C#创建Barcode的DLL
  • 原文地址:https://www.cnblogs.com/gujy/p/13793609.html
Copyright © 2011-2022 走看看