
架构设计
文章平均质量分 96
架构设计
码农兴哥
纸上得来终觉浅,绝知此事要躬行。
展开
-
怎么保证微服务应用的高可用性?
早期某个系统调用第三方接口的时候,缺乏监控和告警,只有等用户出现问题联系客服的时候,或者业务方发现出现故障报告过来的时候才知道出问题了,这样对用户体验很不好。后面接入了监控和告警之后,在第三方接口出问题的短时间内,就能得到通知,然后快速启动各种容错预案,并且通知业务方和第三方。原创 2024-03-11 19:35:19 · 1350 阅读 · 1 评论 -
微服务架构中的 隔离和超时控制
如果要构建高可用和高性能的微服务架构,依然少不了“隔离”的使用。因为 在出现故障的时候,隔离可以把影响限制在一个可以忍受的范围内。一般的原则是 核心与核心隔离,核心与非核心隔离。隔离应该怎么样做才能做到 提升可用性、提升性能和提升安全性的目标呢?其实可以采取如下的措施:机房隔离、实例隔离、分组隔离、连接池隔离和线程池隔离、第三方依赖隔离等。超时控制是指在规定的时间内完成操作,如果不能完成,那么就返回一个超时响应。比如这个问题:调用某个接口时的超时时间应该设定为多久?以及你为什么认为这个超时设置是合理的?原创 2024-02-26 18:58:08 · 1223 阅读 · 0 评论 -
微服务架构中的 限流和压测
限流是为了保证系统可用性,防止系统因为流量过大而崩溃的一种服务治理手段。从算法上来说,有令牌桶、漏桶、固定窗口和滑动窗口算法。还有动态限流算法,或者说自适应限流算法,比较有名的就是参考了 TCP 拥塞控制算法 BBR 衍生出来的算法。这些算法之间比较重要的一个区别是能否处理小规模的突发流量。从限流对象上来说,可以是集群限流或者单机限流,也可以是针对具体业务来做限流。比如说在登录的时候,可以针对 IP 进行限流。又或者在一些增值服务里面,非付费用户也会被限流。触发限流之后,具体的措施也可以非常灵活。原创 2024-01-02 11:57:44 · 1440 阅读 · 0 评论 -
微服务架构中的 熔断和降级
微服务架构中,如果需要保障可用性,其中一个方式就是 熔断。熔断在微服务架构里面是指 当微服务本身出现问题的时候,它会拒绝新的请求,直到微服务恢复。通过熔断机制可以给服务端恢复的时间,比如 CPU 使用率已经超出负载了,此时服务端触发了熔断,那么新来的请求就会被拒绝,因此,服务端的 CPU 使用率就会在一段时间内降到100%以内。原创 2023-11-20 18:13:18 · 1218 阅读 · 0 评论 -
微服务的注册发现和微服务架构下的负载均衡
为什么需要服务注册与发现?一般来说,服务集群会部署在不同的机房和不同的机器上,监听不同的端口。当客户端收给服务端发送请求,怎么知道应该发送给哪个机器?这就需要用到“注册中心”。 最少连接数、最少活跃请求数和最快响应时间,都可以看作是选择了单一的指标来代表一个节点的负载,在实际工作中可以利用这个思路来设计自己的负载均衡算法。比如说在 CPU 密集型的应用里面可以设计一个负载均衡算法,每次筛选 CPU 负载最低的节点,但是难点是需要考虑 怎么采集到所有服务端节点的 CPU 负载数据。原创 2023-11-14 13:20:58 · 846 阅读 · 0 评论 -
分布式系统和高可用架构设计方案
传统单体服务架构代码数量庞大,牵一发而动全身,一个很小的改动都可能影响整个服务。正所谓不要把所有的鸡蛋装在一个篮子里,代码和数据库不在一个项目里,尽可能的避免了冲突和改动带来的风险。随着集群规模大了之后,很有可能出现集群宕机和磁盘损坏,分布式系统就是将大的服务拆分成很多个微小的服务,将数据库(存储介质)和代码(计算能力)分布到不同的服务器上,目的在于解决单台机器计算和IO性能问题,以及单机存储空间不足的问题。微服务是分布式系统的一种具体落地方案。原创 2023-06-10 20:30:00 · 1401 阅读 · 0 评论 -
微服务的使用场景和架构设计方案
微服务:字面意思是微小的服务, 较小且独立的功能单元。把一个大的复杂的项目(服务)拆分成多个小而简单的项目,然后各个项目之间通过HTTP接口来调用。比如可以将与业务无关的公用服务抽取出来,下沉成单独的服务。服务拆分单独部署后,引入的服务跨网络通信的问题; 在拆分成多个小服务之后,服务如何治理的问题。需要使用RPC 框架。原创 2023-05-01 18:00:28 · 1678 阅读 · 1 评论 -
PHP中接入consul,实现微服务的注册发现和配置中心
在PHP中如何接入微服务框架?这里实际操作一下consul微服务组建的搭建,使用ThinkPHP6.0框架接入consul微服务组件,实现简单的微服务的注册发现和配置中心,快来跟着练一遍吧。原创 2023-05-02 11:33:09 · 1068 阅读 · 0 评论 -
后端系统高并发解决方案分析
多进程: 同一时间里,同一个计算机系统中如果允许两个或者两个以上的进程处于运行状态,这就是多进程;多线程: 把一个进程分成很多片,每一片都可以是一个独立的流程;与多进程的区别是只会使用一个进程的资源,线程之间可以通信;[举例说明]单进程单线程:一个人在一个桌子上吃饭单进程多线程:多个人在同一个桌子上吃饭多进程单线程:多个人每个人在自己的桌子上吃饭。原创 2023-05-01 10:52:07 · 781 阅读 · 0 评论