本文作者:cysgjj

电子产品下单员,电子产品下单员工作内容

cysgjj 2024-05-22 33
电子产品下单员,电子产品下单员工作内容摘要: 大家好,今天小编关注到一个比较有意思的话题,就是关于电子产品下单员的问题,于是小编就整理了1个相关介绍电子产品下单员的解答,让我们一起看看吧。什么是系统架构的高可用?需要从哪些方面...

大家好,今天小编关注到一个比较有意思的话题,就是关于电子产品下单员的问题,于是小编就整理了1个相关介绍电子产品下单员的解答,让我们一起看看吧。

  1. 什么是系统架构的高可用?需要从哪些方面去提高系统的高可用?

什么系统架构的高可用需要从哪些方面去提高系统的高可用?

从各个节点去考虑高可用,先从最底层机器就保证高可用,可以通过机器冗余方式;然后机器上层一般数据层,比如mysql可以通过双主双活集群方式,在往大一点讲就是建立多数据中心,比如二地三中心,同城多活,这二种方式成本都很高,要看业务系统的战略性;在数据层上面就是服务层,服务层本身就是服务化架构,前提条件服务要是无状态服务,并且建立集群分布式服务,这样在服务不可用时候,其他服务可以接管,以及可以保障性能;应用层要解决的问题就是分布式session,这样话应用层也能集群化部署。

高可用性(HA),顾名思义,就是尽可能地减少系统不能提供服务的时间如果一个系统能够一直保持工作状态,可以对外提供服务,那么我们就说系统的可用性是100%;大部分公司不会把话说这么满,所以经常会提出三个9、四个9的目标,也就是全年系统可用性为99.9%、99.99%。

电子产品下单员,电子产品下单员工作内容
图片来源网络,侵删)

那么如何保证系统的高可用呢?我认为核心的思想就是【防止单点,增加冗余】,先让我们看看传统的架构是什么样的,哪里会有风险。

可以看到,架构的每一个部分都是单点的话,简直是风险重重,任何一个环节出现了问题,可能会造成整个系统垮掉(缓存部分可能不会直接影响系统,但往往缓存失去效果之后,会拖垮数据库),解决方法也很容易,其实就是把系统的每个部分都增加冗余:

客户端到Web应用:要增加Web应用,首先要增加反向代理层,也就是负载均衡,比如Nginx;不过如果只部署一个Nginx的话,它又是一个单点了,通常我们会部署多台,一台提供服务,另外的相当于“备胎”,通过keepalived的方式监控工作中的Nginx是否存活,当主服务器发生故障无法对外提供服务时,动态将virtual IP(虚IP)切换到备用机,继续提供服务。

电子产品下单员,电子产品下单员工作内容
(图片来源网络,侵删)

负载均衡到Web应用:搭建多个Web应用,在负载均衡如Nginx中配置多个Web端的地址,并且可以监控多个Web端的存活性,当监控到某台应用挂掉,那么Nginx不在将请求分发到这台机器上。

Web应用到服务层:这里有很多种实现方式,比如服务层前端也挂负载均衡,或者走客户端内的负载均衡(这里Web应用就是客户端,相当于配置多个服务层的地址,每次请求按照一定规则,选取连接来访问下游服务,并使用service-connection-pool监控服务层应用的存活性);也可以使用服务注册发现的方式(可提供服务的应用才会出现在注册中心)。

服务层到缓存:缓存的存在,本身就是一种冗余;缓存层也可以通过集群来解决缓存层的高可用问题。以Redis为例,支持主从同步,而且有sentinel哨兵机制,来做Redis的存活性检测

电子产品下单员,电子产品下单员工作内容
(图片来源网络,侵删)

服务层到数据库:数据库一般会***用主从架构;数据库【读】的高可用,通常使用db-connection-pool来保证自动故障转移;而【写】操作,通常需要keepalived+virtual IP(虚IP)自动切换。

高可用(High Availability),主要是指减少系统的故障时间,保持系统的高度可用性。下面说一下个人的一些理解:

一、很多系统架构的高可用性,理解为双机热备。当然双机热备又可以分为主备方式,双主方式,双主方式主要是指互为主备。例如,使用比较多的是keepalived,通过keepalived配置双机热备的最大好处是,你无须对你的软件系统做任何代码改动,即可实现双机热备。

二、当然借助负载均衡实现系统高可用性。实现负载均衡的第三方软件也较多。例如LVS,Engix等。这方面的配置方式的资料也比较多,有兴趣的同学,可以直接从网上查阅,此处不做详细介绍。

三、混合方式。双机热备+负载均衡的方式。例如keepalived+LVS实现更加好的高可用性。如下例所示:主要增加了负载均衡器的双机热备功能,避免了负载均衡器的单点故障,增加了系统的高可用性。

四、借助zookeeper分布式框架,实现高可用。现在好多框架借助zookeeper实现高可用。例如Dubbo微服务架构,HADOOP等,都***用zookeeper这种轻量级的分布式框架实现高可用。这种方式就需要涉及到代码编程。

看一下Dubbo:

上图是Dubbo的框架,主要是使用zookeeper实现注册器功能,生产者通过zookeeper的api接口向注册器写入服务提供者信息消费者同样通过zookeeper的api接口从注册中心获取服务信息,借助zookeeper的分布式,实现Dubbo的高可用,这就涉及到代码的层面的实现。

当然,实现层面不止这些,欢迎大家评论,提出更好建议。

什么是高可用?

高可用描述的是一个系统在大部分时间都是可用的,可以为我们提供服务的。高可用代表系统即使在发生硬件故障或者系统升级的时候,服务仍然是可用的。

一般情况下,我们使用多少个 9 来评判一个系统的可用性,比如 99.9999% 就是代表该系统在所有的运行时间中只有 0.0001% 的时间都是可用的,这样的系统就是非常非常高可用的了!当然,也会有系统如果可用性不太好的话,可能连 9 都上不了。

黑客攻击;

硬件故障,比如服务器坏掉。

并发量/用户请求量激增导致整个服务宕掉或者部分服务不可用。

代码中的坏味道导致内存泄漏或者其他问题导致程序挂掉。

网站架构某个重要的角色比如 Nginx 或者数据库突然不可用。

自然灾害或者人为破坏。

注重代码质量测试严格把关

我觉得这个是最最最重要的,代码质量有问题比如比较常见的内存泄漏、循环依赖都是对系统可用性极大的损害。大家都喜欢谈限流、降级、熔断,但是我觉得从代码质量这个源头把关是首先要做好的一件很重要的事情。如何提高代码质量?比较实际可用的就是 CodeReview,不要在乎每天多花的那 1 个小时左右的时间,作用可大着呢!

到此,以上就是小编对于电子产品下单员的问题就介绍到这了,希望介绍关于电子产品下单员的1点解答对大家有用。

文章版权及转载声明

[免责声明]本文来源于网络,不代表本站立场,如转载内容涉及版权等问题,请联系邮箱:83115484@qq.com,我们会予以删除相关文章,保证您的权利。转载请注明出处:http://www.garycaplaninc.com/post/30536.html发布于 2024-05-22

阅读
分享