栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

商城-集群高可用

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

商城-集群高可用

集群概述

什么是集群

集群概念

集群是一种计算机系统, 它通过一组松散集成的计算机软件和/或硬件连接起来高度紧密地协作完

成计算工作。在某种意义上,他们可以被看作是一台计算机。集群系统中的单个计算机通常称为节

点,通常通过局域网连接,但也有其它的可能连接方式。集群计算机通常用来改进单个计算机的计

算速度和/或可靠性。一般情况下集群计算机比单个计算机,比如工作站或超级计算机性能价格比

要高得多。

集群的特点

集群拥有以下两个特点:

可扩展性:集群的性能不限制于单一的服务实体,新的服务实体可以动态的添加到集群,从而增强

集群的性能。

高可用性:集群当其中一个节点发生故障时,这台节点上面所运行的应用程序将在另一台节点被自

动接管,消除单点故障对于增强数据可用性、可达性和可靠性是非常重要的。

集群的两大能力

集群必须拥有以下两大能力:

负载均衡:负载均衡把任务比较均匀的分布到集群环境下的计算和网络资源,以提高数据吞吐量。

错误恢复:如果集群中的某一台服务器由于故障或者维护需要无法使用,资源和应用程序将转移到

可用的集群节点上。这种由于某个节点的资源不能工作,另一个可用节点中的资源能够透明的接管

并继续完成任务的过程,叫做错误恢复。

负载均衡和错误恢复要求各服务实体中有执行同一任务的资源存在,而且对于同一任务的各个资源

来说,执行任务所需的信息视图必须是相同的。

集群与分布式的区别

说到集群,可能大家会立刻联想到另一个和它很相近的一个词—“分布式”。那么集群和分布式是一

回事吗?有什么联系和区别呢?

相同点:

分布式和集群都是需要有很多节点服务器通过网络协同工作完成整体的任务目标。

不同点:

分布式是指将业务系统进行拆分,即分布式的每一个节点都是实现不同的功能。而集群每个节点做

的是同一件事情。


Eureka集群

什么是Eureka

​Eureka是一种基于REST(Representational State Transfer)的服务,主要用于AWS,用于定位

服务,以实现中间层服务器的负载平衡和故障转移。我们将此服务称为Eureka Server。Eureka还

附带了一个基于Java的客户端组件Eureka Client,它使与服务的交互变得更加容易。客户端还有一

个内置的负载均衡器,可以进行基本的循环负载均衡。在Netflix,一个更复杂的负载均衡器包装

Eureka,根据流量,资源使用,错误条件等多种因素提供加权负载平衡,以提供卓越的弹性。

理解:

​Eureka是一个服务注册与发现的注册中心。类似于dubbo中的zookeeper

官网地址:

​https://github.com/Netflix/eureka/wiki/Eureka-at-a-glance

搭建Eureka集群

配置host文件C:WindowsSystem32driversetchosts文件,添加映射

127.0.0.1 eureka-server1
127.0.0.1 eureka-server2
127.0.0.1 eureka-server3

application.yml配置

第1台application.yml:

server:
  port: 8761
eureka:
  instance:
    hostname: eureka-server1
  client:
    register-with-eureka: false
    fetch-registry: false
    service-url:
      defaultZone: http://eureka-server2:8762/eureka/,http://eureka-server3:8763/eureka/

第2台application.yml:

server:
  port: 8762
eureka:
  instance:
    hostname: eureka-server2
  client:
    register-with-eureka: false
    fetch-registry: false
    service-url:
      defaultZone: http://eureka-server1:8761/eureka/,http://eureka-server3:8763/eureka/

第3台application.yml:

server:
  port: 8763
eureka:
  instance:
    hostname: eureka-server3
  client:
    register-with-eureka: false
    fetch-registry: false
    service-url:
      defaultZone: http://eureka-server1:8761/eureka/,http://eureka-server2:8762/eureka/

http://localhost:8761/

http://localhost:8762/

http://localhost:8763/

项目中使用的时候,将多个写到一起,隔开即可,代码如下: 

eureka:
  client:
    service-url:
      defaultZone: http://eureka-server1:8761/eureka/,http://eureka-server2:8761/eureka/,http://eureka-server3:8763/eureka/

Redis Cluster​​​​​​​

为何要搭建Redis集群。Redis是在内存中保存数据的,而我们的电脑一般内存都不大,这也就意味

着Redis不适合存储大数据,适合存储大数据的是Hadoop生态系统的Hbase或者是MogoDB。

Redis更适合处理高并发,一台设备的存储能力是很有限的,但是多台设备协同合作,就可以让内

存增大很多倍,这就需要用到集群。

Redis集群搭建的方式有多种,例如使用客户端分片、Twemproxy、Codis等,但从redis 3.0之后版

本支持redis-cluster集群,它是Redis官方提出的解决方案,Redis-Cluster采用无中心结构,每个节

点保存数据和整个集群状态,每个节点都和其他所有节点连接。其redis-cluster架构图如下:

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/603142.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号