f 性能优化-集群与分布式与微服务 - Powered by qidao123.com技术社区

集群与分布式与微服务

打印 上一主题 下一主题

主题 2171|帖子 2171|积分 6513

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
1.集群和分布式

1.1 集群是个物理形态,分布式是个工作方式



  • 分布式:一个业务分拆多个子业务(节点),摆设在差别的服务器上
  • 集群:同一个业务,摆设在多个服务器上
1)分布式是指将差别的业务分布在差别的地方。而集群指的是将几台服务器集中在一起,实现同一业务。分布式中的每一个节点,都可以做集群。而集群并不肯定就是分布式的。
2)简单说,分布式是以缩短单个任务的执行时间来提升服从的,而集群则是通过进步单位时间内执行的任务数来提升服从。
3)微服务是一种架构风格,一个大型复杂软件应用由一个或多个微服务组成。体系中的各个微服务可被独立摆设,各个微服务之间是松耦合的。每个微服务仅关注于完成一件任务并很好地完成该任务。在全部情况下,每个任务代表着一个小的业务能力。
1.2 演进路径

单体架构->分布式结构(缓存性能瓶颈)->微服务架构(实现业务敏捷性)
2.分布式和微服务

1).服务拆分粒度

分布式架构:
按功能模块拆分(如用户模块、订单模块),粒度较大且模块间存在肯定耦合。比方传统金融体系将焦点交易模块独立为Dubbo服务,其他模块仍保持单体结构共享数据库。
微服务架构:
按业务能力细粒度拆分(如支付服务拆分为支付路由、风控服务),每个服务实现单一职责。比方Netflix将体系拆分为1000+微服务,每个服务独立开辟摆设。
2).通讯方式与技术约束

分布式架构
依赖RPC(如Dubbo)或消息队列(如Kafka),通讯协议较重(如SOAP)。技术栈统一(如全Java体系),便于维护。
微服务架构
利用轻量级协议(REST/gRPC),避免中心化ESB。支持多语言开辟(如Go、Java、Python混合),比方Uber利用gRPC实现全球订单调理。
3). 数据管理

分布式架构:
允许共享数据库(如MySQL分库分表),依赖分布式变乱(如Seata)解决数据一致性,但对跨库JOIN容忍度较高。
微服务架构:
逼迫“Database per Service”原则,每个服务独立数据库(如MongoDB、Cassandra),通过变乱驱动(如Kafka变乱消息)实现终极一致性。
4). 摆设与扩展

分布式架构
模块级摆设,扩展需团体调解(如新增订单服务需同步扩容负载均衡器),资本较高。
微服务架构
容器化(Docker)+编排(Kubernetes)实现秒级扩缩容。比方电商大促时,推荐服务可单独横向扩展。
4).未来趋势

1. 混合架构:分布式与微服务融合,比方焦点交易模块利用分布式架构保证强一致性,边缘服务采用微服务实现快速迭代。
2. 服务网格:将通讯治理下沉至底子设施层(如Istio),降低业务代码侵入性。
3. 无服务器架构:联合Serverless(如AWS Lambda)进一步提升资源利用率。
5).总结

选择分布式架构:得当技术栈统一、运维能力有限的团队,应对中等复杂度业务。
选择微服务架构:得当追求极致弹性、技术自由度高且具备成熟DevOps能力的团队。
焦点差别:微服务是分布式架构的特例,但更夸大自治性、细粒度拆分和云原生适配。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

我可以不吃啊

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表