分布式
文章平均质量分 91
Lamb!
这个作者很懒,什么都没留下…
展开
-
分布式架构高性能与可用性
分布式系统的高性能和可用性是构建稳定、高效的系统的关键要素。服务降级:通过划分降级等级和分类,可以减轻系统负载并提供更好的用户体验。在分布式系统中,可以根据服务的重要性和影响程度进行降级操作,保护核心功能,并根据实际需求灵活配置降级开关。服务熔断:通过应用隔离和熔断模式来保护系统稳定性和可用性。应用隔离可以通过线程池隔离和信号量隔离来限制资源使用和控制并发访问,避免故障服务对整个系统产生连锁效应。熔断模式定义了触发熔断操作的条件和行为,快速失败并逐渐恢复请求,以保护系统免受故障服务影响。高性能设计原则。原创 2023-12-27 17:58:17 · 1018 阅读 · 0 评论 -
什么是gRPC
使用 Protocol Buffers 进行接口定义,语法简洁清晰,易于阅读和维护。支持请求和响应中的复杂数据结构,并提供了方便的工具来生成客户端和服务端的代码。原创 2023-11-30 10:51:29 · 174 阅读 · 0 评论 -
实现流量控制和熔断降级
在 Sentinel 中,资源是你想要保护的对象,可以是接口、方法、HTTP 路由等。你需要为你的资源定义流量控制规则。假设你要保护一个函数 myFunction// 你的业务逻辑你可以在初始化代码中定义流量控制规则,以控制资源的访问速率。// 定义流量控制规则Count: 100, // 允许的最大 QPSControlBehavior: base.Reject, // 超出限制后的处理行为},})if err!= nil {// 处理规则加载错误panic(err)原创 2023-11-24 14:19:42 · 345 阅读 · 0 评论 -
分布式之消息队列精讲
只是不同的消息队列发送的确认信息形式不同,例如RabbitMQ是发送一个ACK确认消息,RocketMQ是返回一个CONSUME_SUCCESS成功标志,kafka实际上有个offset的概念,简单说一下(如果还不懂,出门找一个kafka入门到精通教程),就是每一个消息都有一个offset,kafka消费过消息后,需要提交offset,让消息队列知道自己已经消费过了。这个问题,没有固定回答的套路。同样的,如果可靠性传输在使用过程中,没有考虑到,这不是给公司挖坑么,你可以拍拍屁股走了,公司损失的钱,谁承担。原创 2023-09-18 16:30:04 · 297 阅读 · 0 评论 -
RabbitMQ生产故障问题分析
生产环境不建议使用自动ack模式,这样会使QOS无法生效。在使用手动ack的时候,需要非常注意消息签收,业务代码使用try-catch-finally处理结构,防止业务代码异常时无法签收。规范约束mq客户端代码,正确的使用Rabbitmq配置。不同业务项目设置不同的vhost可以隔离一些影响,提升rabbitmq资源使用。考虑设置,当设置了时,可以放入,可以快速排查定位问题。原创 2023-09-18 14:23:45 · 677 阅读 · 0 评论 -
CAP理论与MongoDB一致性,可用性的一些思考
大约在五六年前,第一次接触到了当时已经是hot topic的NoSql。不过那个时候学的用的都是mysql,Nosql对于我而言还是新事物,并没有真正使用,只是不明觉厉。但是印象深刻的是这么一张图片(后来google到图片来自):这张图片是讲数据库(包括传统的关系型数据库和NOSQL)与CAP理论的关系。由于并NoSql并没有实践经验,也没有去深入了解,对于CAP理论更是一知半解。因此,为什么某一款数据库被划分到哪一个阵营,并不清楚。原创 2023-08-11 16:24:58 · 1084 阅读 · 0 评论 -
带着问题学习分布式系统
听过很多道理,却依然过不好这一生。看过很多关于学习的技巧、方法,却没应用到自己的学习中。随着年纪变大,记忆力越来越差,整块的时间也越来越少,于是,越来越希望能够更高效的学习。学习是一种习惯也是一种能力,这种能力在上学期间养成是最好的,毕竟那个时候绝大部分时间都在学习。但很遗憾,我没有养成适合自己的、好的学习习惯。工作之后,除了在日常工作中用到的知识技术,很难通过自学掌握新的知识(偏向于专业知识,即技术)。原创 2023-08-11 16:22:52 · 231 阅读 · 0 评论 -
分布式学习:从分布式系统的特征开始
在延伸feature(分布式系统需要考虑的特性)的时候,我逐渐明白,这是因为要满足这些feature,才设计了很多协议与算法,也提出了一些理论。比如说,这是因为要解决去中心化副本的一致性问题,才引入了Paxos(raft)协议。而每一个分布式系统,如分布式存储、分布式计算、分布式消息队列、分布式RPC框架,根据业务的不同,会使用不同的方法来满足这些feature,对这些feature的支持也可能会有权衡,比如一致性与可用性的权衡。所有,我觉得从分布式的特性出发,来一步步学习分布式是一种可行的方式。原创 2023-08-11 16:21:04 · 356 阅读 · 0 评论 -
什么是分布式系统,如何学习分布式系统
分布式系统是由一组通过网络进行通信、为了完成共同的任务而协调工作的计算机节点组成的系统。分布式系统的出现是为了用廉价的、普通的机器完成单个计算机无法完成的计算、存储任务。其目的是利用更多的机器,处理更多的数据。首先需要明确的是,只有当单个节点的处理能力无法满足日益增长的计算、存储任务的时候,且硬件的提升(加内存、加磁盘、使用更好的CPU)高昂到得不偿失的时候,应用程序也不能进一步优化的时候,我们才需要考虑分布式系统。原创 2023-08-11 16:15:48 · 339 阅读 · 0 评论