企业级基础框架搭建-前期准备

主流框架调研

主流微服框架

sofa

开源地址:https://github.com/alipay/sofa-boot

开源公司:蚂蚁金服

框架简介:sofa是一系列基础组件统称,底层sofa-boot是以Spring Boot研发,提供健康检查、日志隔离、类隔离等能力;sofa-rpc高可扩展性、高性能、生产级的 Java RPC 框架,提供了丰富的微服务治理方案;sofa-tracer分布式系统调用跟踪的组件,透视化网络调用;sofa-mosn Service Mesh 基础架构提供安全、快速、可靠、智能的服务间通讯等一些基础组件

dubbo

开源地址:https://github.com/apache/incubator-dubbo

开源公司:阿里巴巴

框架简介:Dubbo是一款高性能、轻量级的开源Java RPC框架,它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现。

spring cloud

开源地址:https://github.com/spring-cloud

开源公司:主要有netflix,阿里巴巴等

框架简介:Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智能路由,微代理,控制总线)。主要有netflix提供了注册中心eureka,熔断hystrix、网关zuul、ribbon等,现在eureka和zuul已经处于维护期;现在比较流行的是alibaba提供的组件,包含Sentinel服务降级,Nacos服务注册配置等一些组件

ServiceComb

开源地址:https://github.com/apache/servicecomb-java-chassis

开源公司:华为

框架简介:ServiceComb是以java底座为基础,包括一站式的服务注册、服务治理、动态配置功能,具备服务化契约增强、多语言SDK支持、多通信协议支持等优势特性, 并提供SAGA数据最终一致性方案解决微服务架构。之前是纯java写的框架,为了迎合主流框架做了springboot和springcloud的融合,也因此框架的分层结构比较明显,但是扩展比较不方便。

主流微服务框架对比分析

框架SofadubboSpringCloudServiceComb
开源公司蚂蚁金服阿里巴巴Netflix、Alibaba等华为
开发框架spring bootSpringSpring Cloudjava
服务调用方式RPC、RESTRPCRESTREST
注册中心ZK、NacosZK、rediseureka、ZK、Nacosservicecomb-service-center
特有组件sofaRpc、sofameshrpceureka、gateway、Nacos、Sentinel等saga、service-center
优势springboot增强、丰富了行业经验、基础组件全家桶,强大社区轻量级、智能容错提供各种优秀的组件框架分层结构明显、网路编程经验丰富、性能优秀
劣势只开源了部分组件、其它组件需要收费少量的组件,需要扩展没有持续的开发阶段,到一定阶段就到维护期以java为底座,开发起来比较重

微服务基于业务的可扩展性

框架的定位

目的:搭建一个带有自己企业特性的框架,符合微服务理念、能够快速入手开发,而且能迎合当前主流框架,能和不同的框架做适配;基础组件可以用当前比较活跃的基础组件;能够根据业务的调整,框架最小改造化。

标准:服务粒度小,可独立部署扩展、独立开发和演化、独立团队和自治

开发:能够快速上手,对于有springboot基础的人低门槛

框架的拆分和组合

1、对不同规模的项目做不同的组合,比如做一个门户网站,只需要简单的一两个微服务,此时的网站规模小,用不到数据治理;对应规模比较大的项目的,要考虑容错、服务注册、api治理、网关、监控、日志链路等,需要做到不强绑定。

2、对服务的伸缩性,每个微服务都可以横向和纵向上扩展,每个服务可以按照硬件资源需求独立扩容和升级。

版本管理

1、对所有第三方依赖和自研的基础组件版本进行统一管理,便于依赖版本统计和版本修复和升级;

2、版本定义规则,按照统一规则定义版本[主版本号].[次版本号].[修订号]。


微服务架构设计

整体架构设计

1、参考华为的ServiceComb不同结构分层:参考http://servicecomb.apache.org/cn/users/,不同的层次之间可以灵活组合:


  • 编程模型:provider-xxx,提供不同的编程模型,例如rpc和mvc;


  • 通讯模型:transport-xxx,基于http、私有通讯协议、web容器开发;


  • 运行模型:handler-xxx,服务治理相关的功能,例如隔离、熔断、容错、日志链路等功能;


  • 基础增强模型:base-xxx,boot公共增强。例如健康检查、日志隔离等,类似用sofa-boot,和通用机制管理,类似sofa-common-tools;

2、底层基于springboot作为基础框架做开发,sofa以boot为基础开发,spring cloud也是也boot做为基础框架;便于扩展和迎合主流框架演化;

3、便于对接一些开源组件注册中心、网关、链路、日志、rpc,mesh架构等;

4、支持容器化部署k8s+docker。

5、平台化组价沉淀,对于一些基础的业务,如隔离、熔断、容错等可以做成平台化组件,到一定程度向中台化进阶。

框架分层

640?wx_fmt=png


-------------------------------------------------------------------

我的公众号

640?wx_fmt=jpeg


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值