孙宇的技术专栏 大数据/机器学习

springcloud多模块项目构建

2019-03-09

阅读:


介绍

将各家公司已经开发好的、经过实践考验的较为成熟的技术组合起来,并通过 spring boot 风格进行再次封装,屏蔽掉复杂的配置和实现原理,为开发者提供一套简单易懂、易部署和维护的分布式系统开发包。

组件

服务治理 Eureka

使用 Netflix Eureka 作为服务治理,并对其进行了一次封装。使得开发者可以以 Spring boot 的风格使用它。通过服务注册将单个微服务节点注册给服务中心,这样服务治理中心就可以治理单个节点。服务发现则是微服务节点可以对服务治理中心发送消息,使得中心可以将新的节点纳入管理。类似 zookeeper 的功能。

负载均衡 Ribbon

微服务开发中,将大的系统拆分为多个微服务系统,各个微服务系统之间需要互相协作才能完成业务需求。每个服务又可能存在多个节点,当一个服务调用另一个服务时,服务提供者需要使用负载均衡算法对请求进行响应。这样来保证系统的扩展性和高可用。Ribbon 被用来实现这一功能。通常都是通过 REST 风格来实现。

服务声明 Feign

通过 Feign,把接口的声明简化。

断路器 Hystrix

在分布式中,可能会存在延迟或故障。对于故障节点,要能从集群中去除。Hystrix 就是用来进行故障转移等功能。

API网关 Zuul

Zuul 用来做为API网关,第一个用处就是将请求的地址映射为真实的服务器地址,如:将 http://localhost/user/1映射为最终的真实服务请求地址: http://localhost:8001/user/1。相当于路由及分发的功能,在这里也可以加入负载均衡的功能。Zuul 的第二个用处就是提供过滤器,用来过滤那些恶意或无效的请求。

各个微服务在 Eureka 上注册服务。服务之间通过 Feign/Ribbon 基于 REST 风格进行功能的调用。

构建


Similar Posts

下一篇 git管理规范

评论