摘要: 1 每个上游都保存了自己的配置文件 出现的问题:1)上游痛:扩容是下游,凭什么让我修改配置文件和重启,这就是反向依赖了 2) 下游痛:不知道谁依赖了自己。 解决办法: 1 全局配置文件: 存在的问题,不是动态的发现扩容,需要重启 为了解决这个问题 使用filemonitor,监控配置文件的修改 再结 阅读全文
posted @ 2020-11-06 15:57 一天的PHP之路 阅读(286) 评论(0) 推荐(0)
摘要: 缓存读写删除,要注意的几个点: 1 修改缓存时用删除,别用set,因为在特殊情况下会出现不一致 2 先改数据库再删除缓存 并发写时,写操作1,写操作2过来,但是写缓存2先执行,再执行的缓存1,这样就会导致缓存的数据是旧的 !!!谈谈缓存不一致 什么时候会出现缓存一致 答:主从同步或者主主同步时。比如 阅读全文
posted @ 2020-11-05 15:53 一天的PHP之路 阅读(88) 评论(0) 推荐(0)
摘要: 哪些扩展? 1 数据库结构改变,直接改结构的话,在并发量大时,会锁表 2 水平扩展,分多个库, 3 底层存储介质变更,比如从myqsl变到mongodb 解决方案: 1 停服务迁移 2 数据库结构变更可以用online-schema-change,不用停服就能修改的方案(注意在流量少的时候做) 3 阅读全文
posted @ 2020-11-05 13:44 一天的PHP之路 阅读(256) 评论(0) 推荐(0)
摘要: 当主从同步有延时时,怎么保证读的数据是最新的 比如主从同步的延时是1秒钟,把写操作的那条数据,操作的库+操作的表+操作的那条数据主键id,合起来设置为缓存的key,失效时间为1秒钟 这样读数据时,先查缓存,缓存有,就读写库,没有就读从库 主主不一致怎么解决? 两个主库同时对外提供服务时,会出现主主不 阅读全文
posted @ 2020-11-05 11:13 一天的PHP之路 阅读(3535) 评论(0) 推荐(0)
摘要: 如果自动载入新服务的节点配置 1 监控配置文件,重新载入 伪代码 2 配置中心回调,并重新载入 阅读全文
posted @ 2020-11-05 10:10 一天的PHP之路 阅读(78) 评论(0) 推荐(0)
摘要: 主要是通过客户端的连接池做负载昀衡 1 静态权重: 2 动态权重:比如,成功处理一个请求加1分,失败处理1个请求扣10分 3 过载保护:单台服务器达到极限之后把请求转移到其他节点,如果达到了集群的总极限值,就放弃多余的请求 阅读全文
posted @ 2020-11-04 14:59 一天的PHP之路 阅读(74) 评论(0) 推荐(0)
摘要: 核心思路是:冗余和服务机器的自动转移 1 客户端到反向代理 用keepalived +vip(虚拟ip) 2 反向代理到web_server层 nginx自带转移 3 web_server层到服务层(微服务) 通过微服务客户端的连接池自动转移 4 服务层到缓存 1)memache不支持集群,封装客 阅读全文
posted @ 2020-11-04 14:28 一天的PHP之路 阅读(216) 评论(0) 推荐(0)
摘要: 服务化不是你看别人公司用了,你就用 服务化的坏处 在没有服务化之间的痛点: 1 多个业务方,都写sql来调用数据, 2 底层数据库要扩展时,多个业务方都要改,比如我分库分表,比如我加了缓存了 3 如果用公共类库来解决呢,会出现耦合的问题,比如业务1的逻辑要放在公共库里面,业务2的逻辑也要放在公共库里 阅读全文
posted @ 2020-10-30 17:07 一天的PHP之路 阅读(99) 评论(0) 推荐(0)
摘要: 三大方案: 1 动静分离,包括生成静态文件 页面静态化适合:数据量不是特别大,返回结果集有限的场景 2 读写分离 读写分离解决读性能瓶颈的问题, 数据库水平切分,对架构的影响改动更大,解决的问题是数据量大 3 前后台分离 这种情况一般是后台写数据会对前端的数据有大的影响时,我们就把前后台分离,这样 阅读全文
posted @ 2020-10-30 14:50 一天的PHP之路 阅读(64) 评论(0) 推荐(0)
摘要: 阅读全文
posted @ 2020-10-30 14:26 一天的PHP之路 阅读(132) 评论(0) 推荐(0)