Neal's Space
  • Introduction
  • Algorithm
    • 数学基础
    • Normal
      • 一致性哈希分布
      • A star 寻路
      • 蓄水池抽样 Reservoir Sampling
    • Machine Learning
      • k-近邻算法
      • k-平均演算法
      • kd-Tree算法
      • TF-IDF 特征加权
      • 机器学习模型评价
      • 数据的归一化和标准化
      • 线性回归 - "模型之母"
      • 逻辑回归 - "出场率最高算法"
      • 决策树
  • Programming Language
    • Java
      • Lombok
      • 多数据源分页查询拼接订单
      • 集群 分布式 微服务
      • 反射
      • JAVA类加载器
      • JVM内存
      • Garbage Collection(JVM的垃圾回收机制)
      • Synchronized
      • Java跨域访问
    • Scala
      • Scala使用
  • MySQL
    • MySQL事务
    • MySQL插入多条数据时遇到的问题
    • MySQL经典50题
  • Linux
    • Linux
      • Vim
      • Ubuntu换源
      • Linux内存
    • Docker
      • Docker
      • Docker容器
      • Docker镜像
      • Docker创建本地镜像
  • Data
    • DataWarehouse
      • Sqoop
      • 多维计算
    • Hadoop
      • Hadoop
        • Docker运行Hadoop
      • Hdfs
        • HDFS块丢失过多导致进入安全模式
        • NameNode内存解析
        • HDFS的Router-Based Federation
    • Hive
      • Hive安装配置
      • Hive使用DDL
      • Hive引擎Tez
      • Sqoop与Hive出现的问题
      • Hive与Hook
    • Flume
    • Hbase
      • Hbase安装配置
      • Hbase的Bloom Filters
    • Spark
      • Spark基础
      • Spark SQL
      • Spark Streaming
      • Spark On Yarn
      • Tuning Spark 数据序列化和内存调整
      • Tuning Spark Job
    • Kafka
      • Kafka文件存储
      • 偏移量提交 与 分区再平衡
    • Flink
      • Flink遇到的坑
Powered by GitBook
On this page

Was this helpful?

  1. Programming Language
  2. Java

集群 分布式 微服务

现在随着互联网的发展,流量成为互联网产品存活的关键,但是随着流量的提高,对服务器的承受能力是一种极大的挑战。单机结构的服务器承载能力上限较低,整个项目都由这一台服务器提供服务,处理能力有限,业务量增长到一定程度时很容易就出现无法满足业务需求的情况。

之前在的项目组中转型微服务架构,使用Spring全家桶。

本文就是关于微服务的一些基本概念的学习笔记。

微服务的优势和不足:

  1. 系统体量大:内部多个模块耦合,出问题会影响整个项目的运行

  2. 扩展提升难:部署后出现问题时提升比较困难,只能加配置或者加集群,并且容易出现资源分配不均匀的情况

  3. 运维困难:系统功能变更或者升级时需要整个包进行发布,一个小功能的升级就要大费干戈,并且容易导致整个应用运行出现问题

1。集群是什么

電腦叢集(英語:computer cluster)是一組鬆散或緊密連接在一起工作的電腦。由於這些電腦協同工作,在許多方面它們可以被視為單個系統。與網格電腦不同,電腦叢集將每個節點設定為執行相同的任務,由軟體控制和排程。

-------- 維基百科,自由的百科全書

简单的说,就是

  • 一台服务器性能不够,加一台服务器一起来承担流量;

  • 其中一台死机时,另一台可以访问,不易产生宕机的情况。

2。分布式是什么

在電腦科學中,分散式運算(英語:Distributed computing),又譯為分布式計算。這個研究領域,主要研究分散式系統(Distributed system)如何進行計算。分散式系統是一組電腦,透過網路相互連接傳遞訊息與通訊後並協調它們的行為而形成的系統。元件之間彼此進行互動以實現一個共同的目標。把需要進行大量計算的工程資料分割成小塊,由多台電腦分別計算,再上傳運算結果後,將結果統一合併得出資料結論的科學。分散式系統的例子來自有所不同的面向服務的架構,大型多人線上遊戲,對等網路應用。

-------- 維基百科,自由的百科全書

白话文如下:

  • 当服务器集群性能不够的时候,更改组织架构,通过合理的资源分配,使集群得到充分的利用;

  • 每个模块之间互相协作的同时,独立运行,便于扩展;

  • 复杂业务拆分出多个子业务,同一任务在不同的服务器上同时运行,效率更高。

3。集群/分布式

都是多个计算机共同协作实现同一目标,集群和分布式并不冲突,也可以共同实现,分布式集群

区别是集群为多个计算机做同样的功能和业务,分布式则为把一个业务拆分为多个子业务部署到不同的计算机上。

4。微服务

微服务则为分布式架构的实现方式,把整个的项目拆分为一个个业务模块,每个业务模块可以独立运行,一般来说微服务之间通过API接口进行互相通信以达到协作的能力。

SpringCloud

SpingCloud提供了对于微服务的分布式架构的一系列完整的解决方案,微服务拆分出多个模块以后,会出现各种不同的问题。

比如服务治理:Eureka;负载均衡:Ribbon;容错保护:Hystrix;声明式服务调用:Feign;API网关服务:Zuul;配置中心:Config;消息总线:Bus;消息驱动的服务:Stream;服务跟踪:Sleuth。

Eureka

可以显式配置健康检查,

Previous多数据源分页查询拼接订单Next反射

Last updated 5 years ago

Was this helpful?