尚好家装饰(学习笔记——尚好房:Apache Dubbo)
导读:2023-02-12 1、软件架构的演进过程...
2023-02-12
1 、软件架构的演进过程
单体架构 、垂直架构 、SOA架构到微服务架构的演进过程
2 、单体架构
(1)含义:全部功能集中在一个项目内
(2)优点:架构简单 ,前期开发成本低 、开发周期短 ,适合小型项目 。
(3)缺点:复杂性高 、技术债务逐渐上升 、部署速度逐渐变慢 、扩展能力受限 ,无法按需伸缩 、
阻碍技术创新
(4)总结:
①全部功能集成在一个工程中 ,对于大型项目不易开发 、扩展和维护 。
②技术栈受限 ,只能使用一种语言开发 。
③系统性能扩展只能通过扩展集群节点 ,成本高 。
3 、垂直架构
(1)含义:按照业务进行切割 ,形成小的单体项目 。
(2)说明: 垂直MVC项目主要有表现层 ,业务逻辑层 ,数据访问层组成的MVC架构 ,整个项目打包放在一个tomcat里面 。适合于 访问量小 ,用户数不多的业务 。
(3)优点:技术栈可扩展
(4)缺点:项目的部署效率很低 、团队协作难度高
(5)总结:
①功能集中在一个项目中 ,不利于开发、扩展 、维护 。
②系统扩张只能通过集群的方式 。
③项目之间功能冗余 、数据冗余、耦合性强 。
4 、SOA架构(Service-Oriented Architecture)
(1)含义:面向服务的架构 。它可以根据需求通过网络对松散耦合的粗粒度应用组件(服务)进行分布式部署 、组合和使用 。一个服务通常以独立的形式存在于操作系统进程中。
(2)目的:把原先固有的业务功能转变为通用的业务服务,实现业务逻辑的快速复用 。
(3)优点:重复功能或模块抽取为服务 ,提高开发效率 。可重用性高。可维护性高 。
(4)缺点:各系统之间业务不同 ,很难确认功能或模块是重复的 。抽取服务的粒度大 。系统和服务之间耦合度高 。
5 、微服务架构
(1)含义:与SOA 架构类似,微服务是在 SOA 上做的升华,微服务架构强调的一个重点是“业务需要彻底的组件化和服务化 ” ,原有的单个业务系统会拆分为多个可以独立开发 、设计 、运行的小应用 。这些小应用之间通过服务完成交互和集成 。
(2)说明:
①将系统服务层完全独立出来 ,抽取为一个一个的微服务 。
②抽取的粒度更细 ,遵循单一原则 。
③ 采用轻量级框架协议传输 。
(3)优点:
服务拆分粒度更细 ,有利于提高开发效率 。
可以针对不同服务制定对应的优化方案 。
适用于互联网时代 ,产品迭代周期更短 。
(4)缺点:
粒度太细导致服务太多 ,维护成本高。
分布式系统开发的技术成本高 ,对团队的挑战大 。
二 、Apache Dubbo概述
1 、Dubbo简介
Apache Dubbo是一款高性能的Java RPC框架 。可以和Spring框架无缝集成。
2 、RPC
RPC并不是一个具体的技术 ,而是指整个网络远程调用过程 。
RPC是一个泛化的概念 ,严格来说一切远程过程调用手段都属于RPC范畴 。
Java中的RPC框架比较多 ,广泛使用的有RMI 、Hessian 、Dubbo等 。
3 、Dubbo提供的三大核心能力
(1)面向接口的远程方法调用
(2)智能容错和负载均衡
(3)服务自动注册和发现
4 、Dubbo官网地址
http://dubbo.apache.org
5、Dubbo架构
在官网中有
三 、服务注册中心Zookeeper
1 、Zookeeper介绍
Zookeeper 是 Apache Hadoop 的子项目 ,是一个树型的目录服务 ,支持变更推送,适合作为 Dubbo 服务的注册中心 ,工业强度较高 ,可用于生产环境,并推荐使用 。
2、安装Zookeeper
下载地址:
http://archive.apache.org/dist/zookeeper/
声明:本站所有文章 ,如无特殊说明或标注 ,均为本站原创发布 。任何个人或组织 ,在未征得本站同意时 ,禁止复制 、盗用 、采集 、发布本站内容到任何网站 、书籍等各类媒体平台 。如若本站内容侵犯了原著者的合法权益 ,可联系我们进行处理 。
创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!