首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

从0到1打造在线少儿编程产品

Web UI 微服务是一个前端设计,它可以使用 React、Angular、Vue 等前端框架来进行开发,也可以使用 Spring-Boot-Web 来开发,可能会更为简便和快速,因为它与 Spring Cloud 工具能够取得更多的默契和更多方面的搭配,具体可以根据客户端类型和团队技术栈来选择。

Web UI 微服务的设计,包含了两个方面的功能:一方面实现对 Rest API 微服务的调用;另一方面是用户界面设计。Web UI 微服务将面对最终用户,所以它必须能够适应规模化的访问。

我们将通过下述一些方法来实现高并发和高效的 Web UI 微服务的设计

使用微前端

微前端这个术语最初由 ThoughtWorks 技术雷达 2016 年提出,它将后端微服务的概念扩展到了前端领域。目前的应用趋势是构建一个功能丰富且强大的前端应用,比如下面 2 类系统:

美团HR系统:是由30多个微前端应用聚合而成,包含1000多个页面,300多个导航菜单项。对用户来说,HR系统是一个单页应用,整个交互过程非常顺畅;对开发者同学来说,各个应用均可独立开发、独立测试、独立发布,大大提高了开发效率

海关应用系统:需要对接其他很多部委系统,但又要对通关用户展示成一个统一完整的系统门户

而微前端开发模式,就是解决这类问题的

使用 Feign Client 实现负载均衡调用

针对 Rest API 微服务对外提供的 Restful 的 HTTP 接口,我们将使用 Spring Cloud 工具套件中的 FeignClient 来进行访问,这个工具比起使用 JS 中的 Ajax 或使用 RestTemplate 等工具都将更加高效和实用,而且使用更加简单。使用 FeignClient 通过声明式接口就可以实现 HTTP 调用,并且在调用的过程中,都将自动使用 Zuul 的动态路由和 Ribbon 的负载均衡服务。

使用 Hystrix 实现容错设计

在分布式环境中,当一个服务超载甚至失效时,如果这时对其继续调用,因为得不到回应,就会进入不断的等待状态之中。如果这是一种连锁调用,甚至会引起系统的雪崩效应。所以必须有一种机制来处理这种情况,以起到防患于未然的作用,这种机制就是 Hystrix 组件的断路器功能,它的作用相当于电路设计中的保护开关,当服务不可用或超载时,断路器切断服务,提供降级使用机制,当服务恢复正常后,断路器将自动接通服务。

我们将在 Web UI 微服务设计中,使用 Hystrix 组件提供的功能来实现断路器的设计,提供对服务访问的容错设计和降级使用机制。

使用非阻塞的异步编程技术实现高并发调用

Java 开发语言从 Java 8 之后,提供了一种非阻塞的异步的多线程的回调处理方法,它封装在 CompletableFuture 类中,使用这种编程方法的强大功能,就可以实现 Web UI 微服务的高并发设计。

使用分布式文件系统

在分布式系统中,最终用户使用的图片、视频等资源文件,必须使用一个独立的文件系统来管理。我们将使用轻量级的 FastDFS 来构建一个高可用的分布式文件系统,FastDFS 是一个开源的分布式文件系统,它不但容易使用和维护,也方便进行扩容。

FastDFS 由跟踪器(Tracker)和存储节点(Storage)两部分组成。

跟踪器管理所有的存储节点,并对存储节点的访问起到负载均衡调度的作用。通过配置多个跟踪器,可以构建一个高可用的文件系统。

存储节点用来存储文件,同时处理文件的存储、同步等管理工作。存储节点通常由多台服务器组成,每台服务器使用对等的设计,所以可以在任何时候进行增加或减少存储节点的数量。

为了支持大容量的文件存储,每个存储节点中使用了分组(或分卷)的设计,每个分组可以存储在不同的服务器上。

所以,使用FastDFS可为我们提供一个高可用和高性能的海量文件系统。

部分内容源于网络,版权归属原作者所有,侵删;本文内容可以任意转载,但是需要注明来源并提供链接。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190920A0OQUH00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券