【一起学源码-微服务】Zuul源码一:Zuul核心概念及Demo演示
2020/4/18 17:24:33
本文主要是介绍【一起学源码-微服务】Zuul源码一:Zuul核心概念及Demo演示,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
申明
本文章首发自本人公众号:壹枝花算不算浪漫,如若转载请标明来源!
感兴趣的小伙伴可关注个人公众号:壹枝花算不算浪漫
前言
前情回顾
前面已经分析了Hystrix相关的源码,这一讲开始看下微服务网关的鼻祖:zuul组件。
本讲目录
- API网关的作用
- zuul demo
源码分析
API网关的作用
在大多数微服务实现中,内部微服务端点不会暴露在外部。
一组公共服务将使用API网关向客户端公开。 Spring Cloud Zuul 主要的功能是提供负载均衡、反向代理、权限认证、动态路由、监控、弹性、安全等的边缘服务。其主要作用是为微服务架构提供了前门保护的作用,同时将权限控制这些较重的非业务逻辑内容迁移到服务路由层面,使得服务集群主体能够具备更高的可复用性和可测试性。
通常我们用api网关作用如下:
1、请求路由 屏蔽复杂的后台系统的大量的服务,然后让前端工程师调用的时候非常的简单
2、统一处理 把所有后台服务都需要做的一些通用的事情,挪到网关里面去处理 (1)统一安全认证 (2)统一限流 (3)统一降级 (4)统一异常处理 (5)统一请求统计 (6)统一超时处理
来张图可能会更直观一点:
zuul demo
还是基于之前的代码,代码git地址: github.com/barrywangme…
项目结构:
- eureka-server:注册中心
- serviceA:服务A,注册到eureka-server
- serviceB:服务B,注册到eureka-server
- zuul-gateway:api网关服务,注册到eureka-server
添加zuul-gateway配置如下:
server: port: 9000 spring: application: name: zuul-gateway eureka: instance: hostname: localhost client: serviceUrl: defaultZone: http://localhost:8761/eureka/ zuul: prefix: /api routes: serviceB: serviceId: serviceB 复制代码
然后一次启动eureka-server、serviceA、serviceB、zuul-gateway
浏览器请求:http://localhost:9000/api/serviceB/user/feign/greeting/wangmeng
可看到浏览器返回对应结果。
这里9000是zuul-gateway
的项目端口号,这里我们请求被转发到serviceB
服务上,然后给出响应。
这一讲很简单,后面我们可以通过demo代码进行debug 一点点去探究源码。
总结
这一讲主要是对API网关一级Zuul有个基本的认识,还列了一个demo项目,大家可以下载自己本地运行试一试。
这里再先预告一下zuul的核心原理,用图概括如下:
具体的讲解会在下一讲源码剖析,敬请关注。
这篇关于【一起学源码-微服务】Zuul源码一:Zuul核心概念及Demo演示的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-01后台管理开发学习:新手入门指南
- 2024-11-01后台管理系统开发学习:新手入门教程
- 2024-11-01后台开发学习:从入门到实践的简单教程
- 2024-11-01后台综合解决方案学习:从入门到初级实战教程
- 2024-11-01接口模块封装学习入门教程
- 2024-11-01请求动作封装学习:新手入门教程
- 2024-11-01登录鉴权入门:新手必读指南
- 2024-11-01动态面包屑入门:轻松掌握导航设计技巧
- 2024-11-01动态权限入门:新手必读指南
- 2024-11-01动态主题处理入门:新手必读指南