Closed littlefisher666 closed 6 years ago
@litttlefisher 非常感谢反馈,以下是针对你提问的回答,希望能有所帮助。
使用 SOFABoot 2.x 升级到 SOFABoot 3.x 的成本?
SOFABoot 2.x 是基于 Spring Boot 1.4.3,SOAFBoot 3.x 是基于 Spring Boot 2.x 版本;SOFABoot 3.x 和 SOFABoot 2.x 本身在功能和使用上并没有不兼容性,但是因为 Spring Boot 2.x 和 Spring Boot 1.x 的不兼容,比如 Endpoint ,如果升级到 SOFABoot 3.x,需要改造业务代码。总体来说,相比 Spring Boot 1.x 升级到 Spring Boot 2.x , SOFABoot 2.x 升级到 3.x 并不会增加成本,两者需要的改造基本一致。
类隔离的使用场景
类隔离的使用和应用的微服务化并没有太大的冲突;首先应用微服务拆分之后,诸如 rpc,zk 这些基础中间件依然需要引入,这些都是有可能导致依赖冲突的,尤其是具有技术栈历史包袱的应用,不会轻易升级依赖包版本;其次应用微服务拆分并不万能,过度的模块拆分会增加运维成本,因此应用本身也可能很复杂。从目前蚂蚁内部使用场景以及现有的外部用户反馈来看,类隔离依然有着它特有的使用场景。
SOFAMesh 的使用,目前没有 release 版本
关于 SOFAMesh 这块,我们正在做紧锣密鼓的开发,在近几个月内会 Release 出 1.0 的版本。
SOFARPC 的使用
JAVA RPC 框架发展已经相对比较成熟,比如 Dubbo. SOFARPC 和 Dubbo 类似,是一款高性能,具备良好扩展的 RPC 框架。因为在蚂蚁内部使用多年,功能实现和支持可能会略有差异,如SOFARPC 协议上支持 HTTP/2、GRPC,能力上如服务预热权重、自动故障降级、协商机制、CRC数据校验等。也因为蚂蚁独特的金融背景,因此 SOFARPC 在金融领域使用更有优势。
SOFABoot 系列中间件组件和SpringCloud的区别。
SOFA 系列开源产品实际上构建了整个微服务生态,这些开源产品在蚂蚁金服内部大部分都经过长时间的打磨和大促流量的考验,不少组件在蚂蚁内部其实比 Spring Cloud 支持还早。所有组件的开源其实是蚂蚁选择从闭关自研走向开源共建的策略转变,并非是挑战 Spring Cloud,反而是给社区提供了另一个选择,丰富了微服务生态。两者的并非互斥关系,用户可以按实际需求,结合使用。
开源版本定制化
优秀的开源产品本身就应该具备良好的扩展性、可维护性以及详细的使用开发文档,这也是 SOFA 系列所有开源产品的目标。SOFABoot 商业版是基于开源版扩展的实现,我们相信绝大部分公司都有能力基于SOFA开源产品做定制化的扩展实现。SOFA 开源是一个长期维护的产品,所有来自社区的提问和交流都会得到 SOFA 团队认真的反馈,无需担心开源版本定制化的开发。
@QilongZhang 首先谢谢释疑。sofa我觉得最大的亮点(针对于我们公司而言),就是在金融领域更有优势,这个说法,我没有一个特别明确的感知,不知道是否可以给出几个针对于金融领域所做的一些优化、提升、改造或者说功能呢? 另外sofa还处于一个逐步开源的道路上,如果仅是个人学习而言,可能并不会有特别多的考虑。可如果是为公司选型上来考虑的话,就需要基于当前已开源的功能做考虑,毕竟版本选择固定后,后续升级的可能性微乎其微,除非已经影响到了业务的顺利进行(jdk从7升级到8就遇到了不小的阻力)。这个问题不知道您有什么好的见解可以提供一下的
@QilongZhang 另外提一嘴,SpringCloud由于是使用Rest接口做通讯的,所以可以集成Swagger。针对于SofaRPC或者说dubbo吧,是否可以集成Swagger或者说是否有提供类似功能的插件的
@litttlefisher SOFARPC 支持 rest 服务,Swaagger 原生也支持 jax-rs, 我理解你说的集成 Swagger 应该是没有问题的。
@QilongZhang 不好意思,issue关闭了还要再追问一下。SOFARPC支持rest服务,是否意味着如果想使用Swagger,SOFAPRC必须使用rest协议才行的呢?
@litttlefisher 😄没事, 后面几天看到没回复,就关了~
是否意味着如果想使用Swagger,SOFAPRC必须使用rest协议才行的呢?
嗯,不支持其他协议
下面是在考虑公司框架选型时,我做的一些笔记,可否把相关顾虑给予一些释疑呢?