生产级微服务网关可以扩展的地方

最近学习了一下网关相关的内容,一般的网关组成如下:

路由映射表:基于域名的路由,存放域名host和服务service的映射关系;可静态配置也可动态配置(需要对接服务发现的产品,比如consul等)

HTTPClient映射表:存放服务(service)和访问服务的httpclient之间的映射关系,是基于路由映射表构建的,若路由表更新那么HTTPClient映射表也会相应更新;在网关初始化时或路由映射表更新时会提前初始化每个服务使用的HTTPClient映射表。

路由解析:在接受到一个HTTP请求的时候,取出其中的host 域名信息,通过查询这个路由映射表找到对应的目标服务,包括服务名地址啊,其他的一些配置。然后呢,将请求啊交付给下一个环节进行处理。

请求转发:是负责这个转发请求的一个组件,当它获得请求和目标服务的信息时,通过查询HTTPClient映射表找到对应的HTTPClient,将请求转发到目标服务,并且接收这个服务产生的响应,并最终将这个响应返回给第二方。如果网关启用了负载均衡lb 的能力,那么请求转发还要根据一定的规则计算出实际要访问的这个服务实例的地址再进行转发,所以这个转发器上面可以有一定的负载均衡的能力。

请求响应截获器:可以扩展网关的能力,实现部分认证健全、日志监控等功能。

生产级网关可以扩展的地方:

1).限流熔断:保障客户体验和后台服务。

2).动态路由/负载均衡:对接动态服务发现。k8s服务本身有动态服务发现和负载均衡的功能,若是k8s部署可以不用扩展这部分。

3).基于path的路由:根据请求path来映射转发请求。

4).截获器链:多个请求响应截获器。

5).日志采集和Metrics埋点:网关是流量的集中入口,是进行集中监控的理想场所,一方面可以对所有的请求日志进行采集,后续可以基于这些访问日志做进一步的性能分析,也可以基于这个日志分析实现反爬虫防攻击的功能。另一方面,这个通过Metrics埋点,我们可以进一步掌握网关和后台服务的性能状况,主要包括访问量统计,延迟统计,还有错误统计等等。

6).响应流优化:faraday网关对响应数据大小有一定的限制,不适用那种大响应数据的场景,比如大文件的下载,这个会对网关有影响。实际的生产级高性能网关是具有这个响应流优化的,也就是不会把这个响应数据从那个内核态拷贝到用户态,而是直接以流的形式流过网关,这样性能开销就比较小。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 微服务网关和shiro是两个不同的概念,它们的作用和功能也不同。 微服务网关是一个服务的入口,它可以负责路由、负载均衡、安全认证、流量控制等一系列功能,将客户端请求转发到不同的服务中。微服务网关可以统一管理服务,提高系统的可维护性和可扩展性,也可以优化系统的性能和安全性。 而shiro是一个用于权限管理的框架,它可以实现用户认证、授权、会话管理、密码加密等功能,可以保护应用程序的安全。shiro可以集成到各种应用程序中,提供安全保障,防止未授权的访问和攻击。 因此,微服务网关和shiro的作用和功能是不同的,它们在应用场景和使用方式上也有所不同。微服务网关适用于微服务架构中,可以提供服务的入口和安全保障;而shiro适用于各种应用程序中,可以提供安全控制和权限管理。 ### 回答2: 微服务网关和Shiro是两个不同的概念和技术。 微服务网关是一种用于管理和统一调度微服务的中间层组件。它的作用是将多个微服务统一对外提供服务,客户端只需要与网关进行交互,而无需直接与各个微服务进行通信。微服务网关可以进行路由、负载均衡、安全认证等功能,可以有效地提高微服务的可用性和安全性,同时也简化了客户端与微服务之间的交互过程。 而Shiro是一个用于应用程序的Java安全框架。它提供了身份认证、授权、会话管理等安全功能,可以帮助开发者快速地添加安全性到应用程序中。Shiro可以对整个应用程序进行保护,包括web应用、非web应用以及分布式应用。它的设计目标是简单、易用和灵活,可以满足各种不同类型的应用程序的安全需求。 从功能上来说,微服务网关主要是用于微服务的统一管理和调度,包括路由、负载均衡、安全认证等功能。而Shiro主要是用于应用程序的安全管理,包括身份认证、授权等功能。 总的来说,微服务网关和Shiro是两个不同的技术,各自有各自的功能和作用。微服务网关主要用于微服务的管理和调度,而Shiro主要用于应用程序的安全管理。 ### 回答3: 微服务网关和shiro是面向不同层面的技术组件,具有不同的功能和应用场景。 首先,微服务网关是一种用于处理多个微服务的入口,它可以集中管理和路由请求,对外提供统一的接口。微服务网关通常用于实现微服务架构中的API网关,可以提供统一的认证、鉴权、流量控制、日志记录等功能。它可以帮助简化系统架构,提高系统的可维护性和可扩展性。 而shiro是一种用于身份认证和访问控制的框架。它提供了一套完整的认证、授权、会话管理等安全功能,可以帮助开发者轻松地实现用户身份认证和权限控制。shiro可以与各种应用进行集成,可以用于传统的单体应用,也可以用于微服务架构中的每个微服务,实现微服务内的安全控制。 因此,微服务网关和shiro的区别主要体现在两个方面。 首先,在功能上,微服务网关主要用于实现微服务架构中的API网关功能,提供统一的入口和管理多个微服务之间的请求。而shiro主要用于实现身份认证和访问控制,提供可用于传统应用和微服务内部的安全控制。 其次,在应用场景上,微服务网关被广泛应用于微服务架构中,用于提供统一的服务接口,方便管理和监控多个微服务。而shiro可以用于各种类型的应用,无论是传统的单体应用还是微服务架构中的每个微服务。 总体而言,微服务网关和shiro是两种不同的技术组件,各自在不同层面和方面发挥作用。在实际应用中,可以根据具体需求选择使用其中的一种或两者结合,以达到更好的系统安全和可管理性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值