资讯专栏INFORMATION COLUMN

分布式微服务架构选项

Rocture / 2558人阅读

摘要:分布式架构五大核心套件服务发现云端服务发现,一个基于的服务,用于定位服务,以实现云端中间层服务发现和故障转移。

1 后端技术框架
我们选择Spring Cloud作为微服务的分布式架构:
Spring Cloud vs Dubbo?

 背景

Dubbo,是阿里巴巴服务化治理的核心框架,并被广泛应用于阿里巴巴集团的各成员站点。
Spring Cloud,是Spring Source的产物,Spring社区的强大背书可以说是Java企业界最有影响力的组织了,除了Spring Source之外,还有Pivotal和Netfix是其强大的后盾与技术输出。其中Netflix开源的整套微服务架构套件是Spring Cloud的核心。
小结:从框架影响力和可持续性上,Spring Cloud优于Dubbo。

 社区活跃度

Spring Cloud仍处于高速迭代的阶段。
小结:在社区活跃度上,Spring Cloud毋庸置疑的优于Dubbo,这对于没有大量精力与财力维护这部分开源内容的团队来说,Spring Cloud会是更优的选择。从目前Spring Cloud的被关注度和活跃度上来看,很有可能将来会成为微服务架构的标准框架。

 架构完整度

Dubbo只是实现了服务治理,而Spring Cloud下面有17个子项目(可能还会新增)分别覆盖了微服务架构下的方方面面,服务治理只是其中的一个方面,一定程度来说,Dubbo只是Spring Cloud Netflix中的一个子集。但是在选择框架上,方案完整度恰恰是一个需要重点关注的内容。

SpringCloud分布式架构五大核心套件:

 服务发现——Netflix Eureka

云端服务发现,一个基于 REST 的服务,用于定位服务,以实现云端中间层服务发现和故障转移。

 客服端负载均衡——Netflix Ribbon

提供云端负载均衡,有多种负载均衡策略可供选择,可配合服务发现和断路器使用。

 断路器——Netflix Hystrix

熔断器,容错管理工具,旨在通过熔断机制控制服务和第三方库的节点,从而对延迟和故障提供更强大的容错能力。

 服务网关——Netflix Zuul 

Zuul 是在云平台上提供动态路由,监控,弹性,安全等边缘服务的框架。Zuul 相当于是设备和 Netflix 流应用的 Web 网站后端所有请求的前门。

 分布式配置——Spring Cloud Config

配置管理工具包,让你可以把配置放到远程服务器,集中化管理集群配置,目前支持本地存储、Git以及Subversion。配合Spring Cloud Bus实现动态的配置更新。

我们选择Spring Boot作为微服务的基础框架
旨在简化创建产品级的 Spring 应用和服务,简化了配置文件,使用嵌入式web服务器,含有诸多开箱即用微服务功能。
Spring Boot主要特性:

 遵循“习惯优于配置”的原则,使用Spring Boot只需要很少的配置,大部分的时候我们直接使用默认的配置即可;
 项目快速搭建,可以无需配置的自动整合第三方的框架;
 可以完全不使用XML配置文件,只需要自动配置和Java Config;
 内嵌Servlet容器,降低了对环境的要求,可以使用命令直接执行项目,应用可用jar包执行:java -jar;
 提供了starter POM, 能够非常方便的进行包管理, 很大程度上减少了jar hell或者dependency hell;
 运行中应用状态的监控;
 对主流开发框架的无配置集成;
 与云计算的天然继承;

我们选择Mybatis作为数据存取层基础框架
Mybatis优势:

 MyBatis可以进行更为细致的SQL优化,可以减少查询字段。
 MyBatis容易掌握,而Hibernate门槛较高。

2 前端技术框架
我们选择Vue.js作为我们的前端基础框架,并采用前后端分离的模式进行业务模块开发。
目前主流的前端开发框架有Angular、React和Vue.js。
Vue.js 更加灵活,(比起 Angular)更少专制,它能然你按照自己想要的方式构建应用,而非凡事非得 Angular 如此如此。它只不过是一层界面而已,因此你可以拿它作为页面中一个轻量的功能来使用,而不是一个完整的 SPA。
Vue.js 和 React拥有一些类似的功能特性,如:
1) 使用了一个虚拟 DOM
2) 提供了响应式的,并且可组合式的视图组件。
3) 保持对核心库的专注, 而像路由和全局状态管理这样的关注点则交给附带的库来处理。
三者有相通之处,例如组件化,这是大势所趋。Vue吸取了 React 和 Angular 的教训,同时也吸收了它们的成功之处。Vue 是轻量级且容易学习掌握的。

3 移动端技术框架
我们选择采用Hybrid App框架,Android端JAVA语言,IOS端采用Swift语言,都采用Native+H5的混合式(Hybrid App)架构。
目前主流应用程序大体分为三类:Web App、Hybrid App、 Native App。

 Native App

优点:
(1)打造完美的用户体验
(2)性能稳定
(3)操作速度快,上手流畅
缺点:
(1)开发成本高(不同平台有不同的开发语言和界面适配)
(2)维护成本高(例如一款App已更新至V5版本,但仍有用户在使用V2, V3, V4版本,需要更多的开发人员维护之前的版本)
(3)更新缓慢,根据不同平台,提交–审核–上线 等等不同的流程,需要经过的流程较复杂

 Web APP

优点
(1)开发成本低,
(2)更新快,
(3)更新无需通知用户,不需要手动升级,
(4)能够跨多个平台和终端。
缺点:
(1)临时性的入口
(2)无法获取系统级别的通知,提醒,动效等等
(3)体验较差

 Hybrid App

Hybrid APP指的是半原生半Web的混合类App。需要下载安装,看上去类似Native App,但只有很少的UI Web View,访问的内容是 Web 。
例如Store里的新闻类APP,视频类APP普遍采取的是Native的框架,Web的内容。
Hybrid App规避了Native App和H5 App缺点,极力去打造类似于Native App 的体验。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/89395.html

相关文章

  • 分布式微服务架构选项

    摘要:分布式架构五大核心套件服务发现云端服务发现,一个基于的服务,用于定位服务,以实现云端中间层服务发现和故障转移。 1 后端技术框架我们选择Spring Cloud作为微服务的分布式架构:Spring Cloud vs Dubbo? 背景 Dubbo,是阿里巴巴服务化治理的核心框架,并被广泛应用于阿里巴巴集团的各成员站点。Spring Cloud,是Spring Source的产物...

    Labradors 评论0 收藏0
  • Spring Cloud构建分布式微服务架构 - 企业分布式微服务架构构建

    摘要:是一个大型企业分布式微服务云架构的体系快速研发平台使用当前最流行最先进的开源技术实现服务组件化及管理,真正为企业打造分布式微服务云架构平台。企业分布式微服务云快速开发架构前后端分离业务服务通过服务与服务之间的内部外部通讯,满足不同业务需求。 鸿鹄云架构【系统管理平台】采用服务化的组件开发模式...

    shadowbook 评论0 收藏0
  • 华为官方首发Spring响应式微服务,Spring+Boot+Cloud三管齐下

    摘要:今天小编就来分享一份华为刚刚首发的响应式微服务实战这份主要包含响应式微服务架构实现过程中所应具备的技术体系和工程实践,在组织结构上分如下篇。 今天小编就来分享一份华为刚刚首发的Spring响应式微服务(Spring Boot 2+Spring 5+Spring Cloud实战)! 这份PDF...

    cangck_X 评论0 收藏0

发表评论

0条评论

Rocture

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<