分布式系统
文章平均质量分 90
系统分布式设计
October-
多学习
展开
-
国内外大型系统架构设计准则和设计案例
ContentPrinciple Scalability Availability Stability Performance Intelligence Architecture Interview Organization Talk BookPrincipleLessons from Giant-Scale Services - Eric Brewer, UC Berkeley & Google Designs, Lessons and Advice from转载 2021-08-21 14:17:29 · 2535 阅读 · 0 评论 -
微服务 ---- 不同软件平台的重试策略对比
目录1、微软云重试策略1.1、重试的应用场景:1.2 不同组件的重试策略:1.3、重点看下 :REST接口的重试策略2、qubole的重试策略2.1 、服务器端错误(5xx系列)2.2、客户端错误(4xx系列)2.3 使用指数回退重试失败的请求3、servicenow4、amazon5、dubbo的集群策略6、spring retry6.1 重试策略定义6.2 回退策略重试是微服务中非常重要的设计概念,不同软件平台都有自己的重试策略,这里做下简单对原创 2020-09-06 19:07:49 · 1224 阅读 · 1 评论 -
NewSQL ---- Mysql.8.0 与 MemSQL 7.0 大数据量查询性能对比
目录1测试环境以及测试用例设计1.1测试环境1.2测试用例设计2 千万级数据量性能测试对比2.1 MemSQL时间范围分页查询2.1.1 性能测试数据2.2任务信息查询2.2.1 性能测试数据2.3 执行批次范围查询2.3.1 性能测试数据2.4 批次任务查询2.4.1 性能测试数据2.5 聚合查询2.5.1 性能测试数据2.5 系统资源监控数据2.6总结2.7 图表性能分析2.7.1查询时间对比2.7.2吞吐量对比3 稳定性测原创 2020-08-16 15:40:22 · 1304 阅读 · 0 评论 -
kudu ---- 集群一键部署
这个简单部署脚步过程适用于开发。但是要先安装docker 和docker-compose。#创建工作目录mkdir -p /home/kuducd /home/kudu## 获取镜像docker pull apache/kudu:latest## 获取compose 编排文件wget https://github.com/apache/kudu/blob/master/do...原创 2020-04-18 16:44:37 · 1418 阅读 · 2 评论 -
优先使用服务层而不是数据库做耗时计算(二)
最近梳理业务代码 ,在考虑一个问题,是不是可以去掉所有的关联查询。1、尽可能利用数据库的关联查询,避免在业务层增加过多的业务逻辑。优点:这么做,业务代码 相对比较简洁,开发效率也比较高。尤其是在多个微服务共享共享数据库的情况下,这种方式 开发还是比较方便的。缺点:但是如果开发人员不注意SQL的优化,很容易容易出现慢查询,甚至很多表关联到一起的情况。后期做微服务拆分,也会非...原创 2020-03-14 10:50:47 · 347 阅读 · 0 评论 -
优先使用服务层而不是使用数据库做耗时计算(一)
为什么一方面是数据库服务器的计算能力是有限的,另一个很重要的方面是一般数据库的分区容错性要比微服务要差很多。微服务可以很容易的水平扩展。但是数据库水平扩展一般都比较麻烦,且容易出问题,尤其是SQL类的数据库。下面对数据库做一个简单的分析。SQL 类数据库: 像MYSQL、PostSql等数据库,都是CA类型(CAP理论)的数据,如果要对它们进行水平扩展,往往都要对系统架构做出很大的调整。所...原创 2020-03-05 20:27:52 · 484 阅读 · 0 评论 -
只要做到这 20%,你就可以成为一名高效开发者
目录10% 知识5% 使巧劲,而不是蛮劲5% 的创造力80% 点滴积累全部加起来才是 100%帕累托法则,也被称为 80/20 法则,已经在主流互联网上风靡了一阵时间,尤其在讨论生产力和激励动机等话题的圈子更是被人熟知。这个法则的大意是说,通常 80% 的产出是由 20% 的投入产出的。这一 80/20 规则广泛适用于多个学科,包括但不限于:收入分配、经济学、销售、管理...转载 2019-09-20 13:36:58 · 204 阅读 · 0 评论 -
NewSQL ---- MYSQL与TiDB 简单的性能测试对比
目录摘要1测试环境以及测试用例设计1.1测试环境1.2测试用例设计2百万级数据量性能测试对比2.1数据总量2.2性能测试报告2.3图表分析摘要对于百万级数据,mysql足够了,没必要使用TiDB或者MongoDB等Nosql 数据库。1测试环境以及测试用例设计1.1测试环境Mysql 和 TiDB 都是 4C/8G,测试接口都是通过Spring ...原创 2019-11-17 12:52:04 · 7118 阅读 · 0 评论 -
NewSQL---- MYSQL 数据迁移到 TiDB 的几种方式
目录1、使用MYSQL数据库的管理工具1.1数据传输1.2 备份1.3 转储SQL的功能2、mysqldump3、mydumper(官方推荐)4、简单测试1、使用MYSQL数据库的管理工具以最常用的Navicat为例。类似的还有phpMyAdmin等。1.1数据传输Navicat 11以及之前的版本都有,数据传输的功能。对于数据量比较小的库,比如...原创 2019-11-15 19:46:47 · 3002 阅读 · 0 评论 -
Mysql.8.0 与 MongoDB.4.2大数据量查询性能对比
目录摘要1测试环境以及测试用例设计1.1测试环境1.2测试用例设计2百万级数据量性能测试对比2.1数据总量2.2性能测试报告2.3图表分析与总结3 千万级数据量性能测试对比3.1 数据总量3.2 性能测试报告3.1数据总量3.2性能测试报告3.3图表分析4 总结摘要项目中使用MySQL存储采集的数据,但是查询遇到了性能瓶颈,前一段...原创 2019-11-03 09:23:36 · 12635 阅读 · 9 评论 -
openresty简单部署
安装#依赖包:yum install readline-devel pcre-devel openssl-devel gcc# 确保yum周边工具已经安装:yum install yum-utils -y# 添加仓库: yum-config-manager --add-repo https://openresty.org/package/centos/openresty.repo#...原创 2019-10-10 18:36:31 · 415 阅读 · 0 评论 -
使用Zipkin-SourceMonitor-AliCheck代码优化
微服务拆分后的代码优化摘要:工具组合简单介绍ZipkinSourceMonitorAliCheck工具使用ZipkinSourceMonitor函数圈复杂度(Function Complexity)函数深度(Block Depth)AliCheck总结摘要:系统做微服务拆分后,有很多业务流程比较慢,这时我们需要使用有效的方法来定位那些地方有问题。其实最好的方法还是利用系统化的检查工具来做这件事...原创 2019-04-09 21:13:06 · 1060 阅读 · 0 评论 -
RocketMQ 最新版本PushConsumer配置参数详解
基于RocketMQ 4.3,PushConsumer配置参数详解原创 2018-12-21 19:50:42 · 6008 阅读 · 1 评论 -
MYSQL的TPS优化
系统优化-优化TPS 提升系统吞吐量摘要统计数据统计SQL执行次数general_log慢查询日志:binlog统计20181107-1757-1758文件中SQL执行次数统计insertupdate分析哪些SQL执行频率比较高。优化方式摘要系统初期使用的是分布式微服务,但是所有业务模型都在同一个数据库实例上,数据库的压力会非常大,这时需要找出系统执行频率比较高的SQL,进行优化。这里重点描述...原创 2018-11-08 20:09:20 · 4841 阅读 · 0 评论 -
微服务的重试和幂等
系统架构优化-重试和幂等摘要重试常见的重试场景幂等页面 和API 幂等实现定时任务幂等mq的幂等消费微服务框架遗留问题摘要重试是一种保障业务运行的容错机制,比如页面查询、数据导出等业务场景,如果某个微服务出现异常,可以将请求动态路由到其他的服务。但是对于写的业务场景,就会导致很多问题,比如重复订购,重复生成记录,甚至重复扣费。本文重点讨论如果避免写的重试重试常见的重试场景(1)页面操作...原创 2018-11-06 19:06:08 · 5010 阅读 · 0 评论 -
复杂业务流程的分析与拆分
使用索引解决MySQL死锁问题摘要问题描述解决方法遗留问题摘要如果系统各个模块还没有拆分,这时对于一些很复杂的业务,其中任何一个业务流程可能会多次操作数据库,尤其是当业务流程中多次出现update 或者insert的时候,如果事务处理不好就会影响性能。以下针对我们业务系统中的一个案例分析一些解决方法。问题描述当时系统使用事务管理器是:org.springframework.jdbc.dat...原创 2018-10-12 13:43:29 · 2730 阅读 · 0 评论