3000ok新开传奇网站,编程常用网站,昆明网站建设设计,设计类比赛网站一、目标
微服务框架通过组件化的方式提供微服务的开发部署、服务注册发现、服务治理与服务运维等能力。主流的微服务框架有开源的Spring Cloud、Dubbo与Service Mesh等#xff0c;各大云厂商也基于开源的微服务框架#xff0c;集成相关的云服务#xff0c;实现企业级的微服…一、目标
微服务框架通过组件化的方式提供微服务的开发部署、服务注册发现、服务治理与服务运维等能力。主流的微服务框架有开源的Spring Cloud、Dubbo与Service Mesh等各大云厂商也基于开源的微服务框架集成相关的云服务实现企业级的微服务框架如阿里云EDAS、腾讯云TSF、华为云CSE等。
二、主流框架
2.1、spring cloud
Spring Cloud提供一套基于Spring Boot快速构建的分布式系统/微服务的通用工具集合。通过Spring Boot对多个成熟的微服务框架再封装屏蔽掉复杂的配置和实现原理给开发者提供了一套简单易懂、易部署维护的微服务/云原生应用开发工具。利用Spring Boot可以简化微服务开发与治理实现微服务一键启动和部署。Spring Cloud 提供各种轻量化互相解耦可以快速启用的组件来实现各种功能如例如配置管理、服务发现、断路器、智能路由、微代理、控制总线、一次性令牌、全局锁、领导层选举、分布式会话、群集状态等。
2.2、Dubbo
Dubbo是一款高性能Java开源的微服务框架RPC框架提供三大核心能力面向接口的远程方法调用智能容错和负载均衡以及服务自动注册和发现。Dubbo 采用全Spring 配置方式透明化接入应用对应用没有任何API 侵入只需用Spring 加载Dubbo 的配置即可。如表3在功能特性服务通信与生态活跃度方面Spring Cloud比Dubbo存在比较明显的优势。
三、主流框架对比 四、微服务设计
4.1、服务拆分
高内聚、低耦合、轻量化。
4.1.1、单一职责
服务业务逻辑单一、功能单一只负责处理单一任务不相关的业务逻辑隔离。服务部署更新时影响较小。
4.1.2、降低依赖
减少服务之间不必要的依赖降低服务间的协作成本比如避免循环依赖避免核心服务对非核心服务的依赖。
4.1.3、服务自治
除了服务功能上的独立性还要保障服务提供团队小而全能够进行完整的服务生命周期管理包括需求、设计、开发、测试、发布、运维与运营等。
微服务拆分过程需要综合考虑各种因素不断迭代优化。根据业务需要可以参考以下一种或几种不同的拆分策略
基于业务功能按功能进行垂直拆分比如电商场景中的订单服务、商品服务、价格服务等。
基于数据模型确定数据模型及其依赖关系按数据关联紧密、一致性要求较高、数据访问或数据安全要求的关联性进行拆分。比如商品与商品项。
基于界限上下文跟进完整的业务场景相关的模型、关系和行为进行拆分比如商品服务定义商品模型、特性及其相关操作。
基于非功能因素基于服务可复用性、资源使用、交付频率、可伸缩性等进行拆分。