首页天道酬勤分布式微服务面试题,云计算可量化服务

分布式微服务面试题,云计算可量化服务

张世龙 05-05 12:51 105次浏览

Spring cloud天气项目系统是一个简单的小型项目(springboot单机应用改造微服务架构),可以从第三方界面获取、存储天气,对外提供天气咨询服务

首先,实现包含以下功能:的单体项目

根据现有xml文档,从中获取所有城市名称,第三方根据城市名称或城市id获取具体天气信息,根据名称获取所有城市天气,存储在redis中设置计时器任务,每30分钟更新所有城市天气信息可以将项目打包,实现对外服务。

其次,对该APP应用进行功能划分,进行分布式系统改造

微服务系统:的设计方法

服务划分服务注册服务发现服务消费统一门户配置管理熔断机制自动扩展的主要难点是系统功能划分,综合上述功能对系统进行如下划分:

这就是系统划分后的系统数据流量图

还有很简单。 您只需要在每个模块中输入代码

天气数据采集的微服务实现天气数据api微服务实现天气预报微服务实现城市api微服务首先完成了各功能模块的简单实现。

下一步是使用spring cloud在各个微服务之间进行集成。

首先是服务的发现。 现在市场上有很多可以用于小额服务的服务发现。 你可以使用zookeeper。 当然,我们有更多的选择。 类似于一组netflix开源微服务,仍然很容易使用。 现在蚂蚁也在使用一套开源的微服务。 他们的服务发现使用了Nacos。 前些天发布了1.0的GA版本,大家也在使用。

在这里,我们使用了netflix的eureka作为服务的发现。

更具体地说,构建springboot项目,引入springcloud依赖项管理,添加netflix的eurekaserver依赖项,在springboot的启动类中添加启用注册中心的注释,并配置相应的配置

将其他微服务作为客户端注册到当前服务端,进行服务的发现管理

第二个是服务之间的调用。 以前使用htpp客户端访问第三方天气数据并获得响应

其实常见的微服务消费者有ribbon和feign两个可以访问其他微服务,同时实现负载均衡和高可用性。具体用法都一样,引入pom依赖,添加on的注释,添加对应的配置,最后使用

接下来是微服务的网关集成。

为什么要整合网关呢? 整合多个API,统一API门户

网关的好处:

避免内部信息向外部泄露

在微服务中添加安全层

支持混合通信协议

降低构建为服务的复杂性

微服务模拟与虚拟化

坏处:

体系结构需要考虑更多的组织和管理

渠道结构必须统一管理

有可能引起单点故障

API的常用实现方法: Zuul Kong

当然,这次使用zuul进行整合。

具体省略。 其实很简单,就是在不同的接入路径上配置对应的不同传输。

当然,这项微服务也一定是在eureka-server下注册的。

其实,到此为止。虽然实现了微服务化的改造,但由于环境多,需要管理项目的配置。

微服务中的配置管理包括spring colud config或开源阿波罗,

本来,管理不同的配置(如开发环境/在线开发环境/测试环境/生产环境)会避免出现混乱(因为版本差异可能会修改配置文件)。

很简单啊。 是获取git仓库的文件,进行内容的填写。

最后一个就是涉及到微服务的熔断和降级了

熔断是因为微服务的宕机/抛出导致调用方没有响应,或者响应变慢,从而导致整个系统变慢。 对此采取的措施之一是调用默认方法并返回。 这里不提供功能,但保证了整个系统其他部分的可用性。

降级是整个系统的原因,会干扰系统的功能,使某些功能不可用,从而保证其他重要功能的可用性。

这里的服务熔断采用了netflix的hystrix组件。 非常容易使用,自己实现接口或直接添加方法就足够了。

黑马计划,springcloud组件