首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏JavaEdge

    可用系统架构(2)-Hystrix分布式系统可用

    进而组织某个依赖服务出现故障的时候,这种故障在整个系统所有的依赖服务调用中进行蔓延,同时Hystrix还提供故障时的fallback降级机制 总而言之,Hystrix通过这些方法帮助我们提升分布式系统的可用性和稳定性 2 发展史 NetflixAPI团队从2011年开始做一些提升系统可用性和稳定性的工作,Hystrix就是从那时候开始发展出来的。 3 设计哲学 Hystrix是为了保证分布式系统的可用性: 对依赖服务调用时出现的调用网络延迟和调用接口失败提供控制和容错保护 在复杂的分布式系统中,阻止某一个依赖服务的故障在整个系统蔓延 提供fail-fast 和快速恢复 提供fallback降级 支持近监控、报警以及运维 (1)阻止任何一个依赖服务耗尽所有的资源,比如tomcat中的所有线程资源 (2)避免请求排队和积压,采用限流和fail fast来控制故障

    43230编辑于 2022-11-30
  • 来自专栏JavaEdge

    可用架构设计(2) - hystrix

    Hystrix的历史 hystrix,一种可用保障的框架,Netflix API团队从2011年开始做一些提升系统可用性和稳定性的工作,Hystrix就是从那时候开始发展出来的。 要解决的问题在复杂的分布式系统架构中,每个服务都有很多的依赖服务,而每个依赖服务都可能会故障 如果服务没有和自己的依赖服务进行隔离,那么可能某一个依赖服务的故障就会拖垮当前这个服务 举例 某个服务有30个依赖服务,每个依赖服务的可用性非常 ,已经达到了99.99%的可用性 那么该服务的可用性就是99.99%的30次方,也就是99.7%的可用性 99.7%的可用性就意味着3%的请求可能会失败,因为3%的时间内系统可能出现了故障不可用了。 对于1亿次访问来说,3%的请求失败,也就意味着300万次请求会失败,也意味着每个月有2个小时的时间系统是不可用的。在真实生产环境中,可能更加糟糕。 上面也就是说,即使你每个依赖服务都是99.99%可用性,但是一旦你有几十个依赖服务,还是会导致你每个月都有几个小时是不可用的。

    32120编辑于 2021-12-07
  • 来自专栏宗恩

    OushuDB 管理指南 集群可用2

    中有关 oushum2 的配置。 向现有群集添加备用主节点 请确保备用主节点的主机已安装了 Oushu Database 并相应地进行了配置: ● 已创建 gpadmin 系统用户。

    28010编辑于 2023-05-08
  • 来自专栏从零学习云计算

    Spring Cloud学习(2)——可用Eureka Server

    让服务中心不注册自己: eureka.client.register-with-eureka=false eureka.client.fetch-registry=false 而实现Eureka Server的可用 ,实际就是把自己作为服务,向其他服务注册中心注册,形成一种互相注册的服务注册中心,以实现服务清单的互相同步,达到可用的效果。 之前设置的eureka.client.register-with-eureka=false eureka.client.fetch-registry=false会对下文的测试产生影响,让peer1和peer2都在不可用分区中 peer1 127.0.0.1 peer2 通过spring.profiles.active属性来分别启动peer1和peer2 java -jar demo-0.0.1-SNAPSHOT.jar - 这时,如果关闭peer2,刷新peer1,可以看见peer2变成了不可用分片(unavailable-replicas)。 ?

    52220发布于 2019-05-29
  • 来自专栏全栈程序员必看

    rabbitmq可用集群搭建_mongodb可用架构

    RabbitMQ 可用集群搭建 1 集群简介 1.1 集群架构 ​ 当单台 RabbitMQ 服务器的处理消息的能力达到瓶颈时,此时可以通过 RabbitMQ 集群来进行扩展,从而达到提升吞吐量的目的 一个可用,负载均衡的 RabbitMQ 集群架构应类似下图: 这里对上面的集群架构做一下解释说明: ​ 首先一个基本的 RabbitMQ 集群不是可用的,虽然集群共享队列,但在默认情况下,消息只会被路由到某一个节点的符合条件的队列上 HAProxy 同时支持四层和七层负载均衡,并基于单一进程的事件驱动模型,因此它可以支持非常的井发连接数。 ;如果连续 3 次的检查结果都不正常,则认为该节点不可用。 juejin.im/post/6844904071183220749 RabbitMQ 官方文档 —— 集群指南:www.rabbitmq.com/clustering.… RabbitMQ 官方文档 —— 可用镜像队列

    3K10编辑于 2022-09-30
  • 来自专栏IfDataBig

    2.基于Zookeeper搭建Kafka可用集群

    一、Zookeeper集群搭建 为保证集群可用,Zookeeper 集群的节点数最好是奇数,最少有三个节点,所以这里搭建一个三个节点的集群。 可以是任意有效数字,标识这是第几个服务器节点,这个标识要写到dataDir目录下面myid文件里 # 指名集群间通讯端口和选举端口 server.1=127.0.0.1:2287:3387 server.2= dataLogDir=/usr/local/zookeeper-cluster/log/02 clientPort=2182 server.1=127.0.0.1:2287:3387 server.2= dataLogDir=/usr/local/zookeeper-cluster/log/03 clientPort=2183 server.1=127.0.0.1:2287:3387 server.2= 三个副本,且三个副本都是可用副本,都在 ISR(in-sync Replica 同步副本) 列表中,其中 1 为首领副本,此时代表集群已经搭建成功。

    72220编辑于 2022-07-27
  • 来自专栏技术杂记

    Mycat HA(可用) 与 LB(负载均衡)2

    没有四层交换机的环境下,为了实现系统架构的扩展性,可以使用 LVS 或 HAProxy 替代 (开源软件最显著的好处就是便宜) ,不过引入了四层(TCP层)交换逻辑或服务后,又会增加此层的单点风险,为了有效规避 切换的过程中可能会有一次timeout,但自动重发请求就能恢复正常,一般应用也都有重发机制 ---- 下载安装keepalived keepalived 项目是为了结合 LVS 在Linux平台上构建简单而健壮的可用负载均衡系统而产生的 ,不过 keepalived 也可以单独出来作为构建可用系统的基础服务,对 浮动IP (VIP,也有叫服务IP)进行管理 keepalived 的 下载地址

    31920编辑于 2021-12-02
  • 来自专栏AustinDatabases

    谁说postgresql 没有靠谱的可用2

    2 关闭primary 的图 ? 3 切换成功,从库已经可以进行写操作 ? 好了到目前为止,POSTGRESQL 的可用,手动,自动 都是可以的,没有任何问题。 (这不是可用的内容,这是安装POSTGRESQL 是的一些配置,如不清楚,请自行翻看以前的安装文字或百度) 在使用repmgrd 进行主从切换的有几个需要注意的地方 (其实和MHA 差不多) 1 在主从切换的过程中 2 切换的过程如果不成功怎么办,什么可能的因素会导致切换失败 3 多节点,如果切换,其他的节点是否可以连接到新的主上,并继续工作 4 跨数据中心的怎么来进行可用的规划。 ,后续安排工作的自动化 4 跨数据中心的可用,在网络以及切换上的考量 这里基本上 repmgr 与 repmgrd 都有相关的安排和设置 1 主失败后等待切换时间的设置在 repmgr.conf 如果它可以看到见证而不是主节点,这证明不存在网络中断,主节点本身不可用。 这期就到这里,下期会开始进行实际的 postgresql 自动故障切换处理的设置,以及相关文字

    1.8K21发布于 2019-12-17
  • 来自专栏后台技术底层理解

    redis并发可用

    redis 可用,如果是做主从架构部署,那么加上哨兵就可以了,就可以实现,任何一个实例宕机,可以进行主备切换。 所以就有了几个问题? 什么是主从架构,主从如何备份? 协议同步节点信息 6、自动故障转移、Slot迁移中数据可用 缺点: 1、架构比较新,最佳实践较少 2、为了性能提升,客户端需要缓存路由表信息 3、节点发现、reshard操作不够自动化 加减节点: 每台主机优化下每一个增加几个槽 哨兵用于实现 redis 集群的可用,本身也是分布式的,作为一个哨兵集群去运行,互相协同工作。 哨兵 + redis 主从的部署架构,是不保证数据零丢失的,只能保证 redis 集群的可用性。 ==怎么保证redis是并发以及可用的==? sdown 和 odown 转换机制 sdown 是主观宕机,就一个哨兵如果自己觉得一个 master 宕机了,那么就是主观宕机。

    3.2K10发布于 2020-08-04
  • 来自专栏SY小站的专栏

    ingress可用

    2. 2、不创建svc,pod直接用hostport,效率等同于`hostNetwork`,如果不代理四层端口还好,代理了的话每增加一个四成端口都需要修改pod的template来滚动更新来让nginx bind kube-proxy转发到Ingress Controller的pod上,多走一趟路 4、不创建svc,效率最高,也能四层负载的时候不修改pod的template,唯一要注意的是`hostNetwork: true 可用选择第四种

    2.6K30发布于 2020-06-15
  • 来自专栏问天丶天问

    SkyWalking 可用

    生产环境中,后端应用需要支持吞吐量并且支持可用来保证服务的稳定,因此需要高可用集群管理。 可用需要: 至少一个 Nacos(可以是nacos集群) 至少一个 ElasticSearch / mysql(可以是es/msql集群) 至少2个skywalking oap服务; 至少1个UI(UI

    50010编辑于 2024-10-03
  • 来自专栏写代码和思考

    可用 - 简述

    背景 本文记录一些可用的内容,和数据库在可用方面的演进过程。 1. 概念 可用性: 即软件系统在一段时间内提供 有用资源 的能力。 53 分钟 四个9 99.999 5.26 5.3 分钟 五个9 99.9999 0.53 32 秒 六个9 表格展示了: 可用性占每年总正常运行时间的百分比 2. 如何设计来做到可用 保证系统可用,架构设计的核心准则是:冗余 和 故障转移。 单点系统的问题是,挂了就完全不可用了,服务会受影响。如果有冗余备份,其他后备的系统能够顶上,保证服务继续可用。 所以,又往往是通过“自动故障转移”来使得快速切换到备份系统来实现可用。 常见的互联网分布式架构是: 前端 ---> 反向代理 --> WEB应用 --> 服务 --> 数据库(及缓存) 其中,可用可涉及到上面每个节点的可用保障,我们看下数据的可用架构的演变过程。

    2.1K10发布于 2020-05-08
  • 来自专栏编程一生

    实践可用

        本篇文章是之前一篇《大话可用》的可用心法的案例篇。   说实践之前先说概念。    具体实践如下: 架构可用   交易这边进行在进行重构。将原有的核心交易从职责上划分为交易收单、交易保障和数据中心三个大块。   从高可用上,交易收单要保证实时交易现场的可用。 所以它才是对可用需要考虑最多的,对MTBF和MTTR都要考虑和权衡。但是在对可用要求上交易收单和交易保障是基本职责,指标就是稳定、稳定和稳定。 数据中心关乎的用户体验,是可以持续优化的,但是对可用是有一定容忍度的:比如页面会加载慢,或者第一次加载不了刷新就成功了。 原因:应对机房不可用和负载不绝对均匀问题 需小于压测峰值,大于2倍的月底预估容量 需大于目前最高峰的2倍 待下线接口维持当前最高峰值1.5倍 所有接口总阈值不得超出压测值.

    1.1K30发布于 2018-07-02
  • 来自专栏编程一生

    大话可用

      今天老大跟我讨论说,没有看到过一篇够全面体系的可用的文章。谈到可用,基本都是以偏概全的文章。今晚抽空想了一下这个问题。    可用我另一个更资深老大其实总结的很全面了:别人死我们不死,自己不作死,不被队友搞死。   然后就是怎么别人死我们不死:最好就是别人的东西和我们没关系,就是去依赖。如果实在有依赖呢,那就尽量弱依赖。

    1K20发布于 2018-07-02
  • 来自专栏院长运维开发

    ingress可用

    app.kubernetes.io/name: ingress-nginx app.kubernetes.io/part-of: ingress-nginx --- Ingress Contronler 可用 2、不创建svc,pod直接用hostport,效率等同于hostNetwork,如果不代理四层端口还好,代理了的话每增加一个四成端口都需要修改pod的template来滚动更新来让nginx bind 也就是使用了主机的dns,会导致svc的请求直接走宿主机的上到公网的dns服务器而非集群里的dns server,需要设置pod的dnsPolicy: ClusterFirstWithHostNet即可解决 可用选择第四种

    2.6K20发布于 2020-06-13
  • 来自专栏用户1337634的专栏

    可用 --- Redis

    因为Redis拥有诸多优秀的特性,使用范围越来越广,系统对其可用性的依赖也越来越重,当前绝大部分系统使用的Redis都实现了可用。 这里主要介绍Redis官方推荐的两种可用方案Sentinel和Redis Cluster。 (如有不明白可以参考《Redis设计与实现》) 可用 Redis实现可用主要有两种方式,一种是Sentinel(3.0之前),一种是3.0正式支持的Redis Cluster(推荐)。 如果集群里有N个具有投票权的主节点,那么当一个从节点收集到大于等于N/2+1张支持票时,这个从节点就会当选为新的主节点。 因为在每一个配置纪元里面,每个具有投票权的主节点只能投一次票,所以如果有N个主节点进行投票,那么具有大于等于N/2+1张支持票的从节点只会有一个,这确保了新的主节点只会有一个。

    1.2K40发布于 2019-03-27
  • 来自专栏about云

    构建并发可用的电商平台架构实践2

    2、 高性能、低延迟 从数据流入计算平台数据,到计算输出结果,需要性能高效且低延迟,保证消息得到快速的处理,做到实时计算。 3、 可靠性 保证每个数据消息得到一次完整处理。 而且journal的刷新时间是可以改变的,2-300ms的范围,使用 --journalCommitInterval 命令。 2) 关系型数据库 关系型数据库在满足并发性能的同时,也需要满足事务性,以mysql数据库为例,讲述架构设计原理,在性能方面的考虑,以及如何满足可用性的需求。 cache/buffer、Connection、IO d、应用级别(比如索引的考虑,schema的优化适当冗余;优化sql查询导致的CPU问题和内存问题,减少锁的范围,减少回表扫描,覆盖索引) Ø 在可用实践方面 ,后期要不断的进行迁移维护;对于可用和伸缩方面,传统数据采用的是主备、主从、多主的方案,但是本身扩展性比较差,增加节点和宕机需要进行数据的迁移。

    1.7K100发布于 2018-03-27
  • 来自专栏PHPer 进击

    MySQL - 可用性:少宕机即可用

    我们之前了解了复制、扩展性,接下来就让我们来了解可用性。归根到底,可用性就意味着 "更少的宕机时间"。 老规矩,讨论一个名词,首先要给它下个定义,那么什么是可用性? 1 什么是可用性 我们常见的可用性通常以百分比表示,这本身就有其隐藏的意味:可用性不是绝对的。换句话说,100% 的可用性是不可能达到的。没错,这里可以这么肯定的说。 到此为止,我们应该有个大致的印象,可用性与应用宕机有关系。接下来,让我们再深入一步,了解下应用宕机的原因。 2 导致宕机的原因 我们最常听到的数据库宕机原因可能是** SQL 性能很差**。 低性能 SQL;2. 服务器 BUG;3. 3 如何实现可用性 通过上面的分析,也许你已经发现了,我们可用性取决于两个时间: 应用的平均失效时间 应用的平均恢复时间 因此,提高可用性也可以从这两个方面入手。

    1.9K20发布于 2019-05-13
  • 来自专栏深入理解Android

    并发与可用实战

    可用 可用:相对于并发来说,可用并不是一个比较有规律的参数,7*24 是每个网站的梦想,但是你并不知道,在某一刻,他就没理由的宕机了。 并发设计原则 系统设计不仅需要考虑实现业务功能,还要保证系统并发、可用可靠等。 可用设计原则 通过负载均衡和反向代理实现分流。 通过限流保护服务免受雪崩之灾。 通过降级实现部分可用、有损服务。 通过隔离实现故障隔离。 降级 对于可用服务,很重要的一个设计就是降级开关,在设计降级开关时,主要依据如下思路: 1.开关集中化管理:通过推送机制把开关推送到各个应用。 这样就可以把一些同步调用改成异步调用,优先处理优先级数据或特殊特征的数据,合理分配进入系统的流量,以保障系统可用

    1.9K20编辑于 2022-06-22
  • 来自专栏后台技术底层理解

    redis 的并发可用

    redis 可用,如果是做主从架构部署,那么加上哨兵就可以了,就可以实现,任何一个实例宕机,可以进行主备切换。 所以就有了几个问题? 什么是主从架构,主从如何备份? 协议同步节点信息 6、自动故障转移、Slot迁移中数据可用 缺点: 1、架构比较新,最佳实践较少 2、为了性能提升,客户端需要缓存路由表信息 3、节点发现、reshard操作不够自动化 redis 哨兵 哨兵用于实现 redis 集群的可用,本身也是分布式的,作为一个哨兵集群去运行,互相协同工作。 哨兵 + redis 主从的部署架构,是不保证数据零丢失的,只能保证 redis 集群的可用性。 怎么保证redis是并发以及可用的? sdown 和 odown 转换机制 sdown 是主观宕机,就一个哨兵如果自己觉得一个 master 宕机了,那么就是主观宕机。

    1.8K00发布于 2020-08-04
领券