0

开箱即用!看看人家的微服务权限解决方案,那叫一个优雅

前置知识我们将采用Nacos作为注册中心,Gateway作为网关,使用Sa-Token提供的微服务权限解决方案,此方案是基于之前的解决方案改造的应用架构还是和之前方案差不多的思路,认证服务负责登录处理,网关负责登录认证和权限认证,其他API服务负责处理自己的业务逻辑。为了能在多个服务中共享Sa-Token的Session,所有服务都需要集成Sa-Token和Redis。micro-sa-token-common:通用工具包,其他服务公用的用户类UserDTO和通用返回结果类CommonResult被抽取到了这里。micro-sa-token-gateway:网关服务,负责请求转发、登录认证和权...

阅读全文>>

0

微服务网关如何防止雪崩?阿里开源项目之Sentinel限流、熔断

目录前言Sentinel是什么部署Sentinel DashboardSentinel对网关的支持网关限流规则网关流控实现原理总结前言为什么需要服务熔断和降级?微服务是当前业界的一大趋势,原理就是将单一职责的功能模块独立化为子服务,降低服务间的耦合,服务间互相调用。但是这样也会出现一些问题:上图中大量微服务互相调用,存在大量的依赖关系,难免会出现某个服务故障,如ServiceD出现问题,导致ServiceG、ServiceF、ServiceA、ServiceB都出现问题,然后再会影响其他服务,变成级联故障,最终导致系统不可用的坍塌,也就是服务雪崩。当然还有某些场景,在一些时间段某些服务会出现高...

阅读全文>>

0

建设微服务API网关的一些实践

随着这些年微服务的流行,API网关已经成为微服务架构中不可或缺的一环。一方面它承担着服务对外的唯一门户,一方面它提取了许多应用的共性功能。整体架构我们的Api网关目前的架构如上所示,可以看到Api网关处于一个什么位置,往上承接所有的南北流量,往下会分发流量到微服务应用或者BFF聚合应用,在BFF规范化之前我们仍然将其视为一个普通微服务应用。目前Api网关实现的功能包括请求分发、条件路由、Api管理、限流隔离、熔断降级、安全策略、监控报警以及调用链追踪等。我们的Api网关基于RxNetty开发,整个流程是异步响应式的,可以达到较高的单机并发。基于少造轮子的理念,Api网关的大部分功能都是结合现有...

阅读全文>>

0

springcloud微服务实战:服务网关,Gateway

服务网关: Spring Cloud Gateway前面已经介绍了基于Spring Cloud搭建微服务框架所需要的必需组件,利用这些组件再配合客户端就可以构建出一个完整的系统。但在实际应用场景中,每一个微服务都会部署到内网服务器中,或者禁止外部访问这些端口,这是对应用的一种安全保护机制。因此,我们如果想通过互联网来访问这些服务,需要一个统一的入口,这就是本章将介绍的微服务的又一大组件——服务网关。我们需要服务网关,还有一些很重要的因素,比如服务网关会对接口进行统一拦截并做合法性校验,一个服务可以启动多个端口,利用服务网关进行负载均衡处理等。目前市面上有很多产品可以实现服务网关这一功能,如 N...

阅读全文>>

0

微服务优雅下线与Nacos健康检查机制详解

先抛出一个问题Nacos的健康检查和心跳机制到底是如何实现的呢?在项目实践中是否又可以参考Nacos的健康检查机制,运用于其他地方呢?这篇文章,就带大家来揭开Nacos健康检查机制的面纱。Nacos的健康检查Nacos中临时实例基于心跳上报方式维持活性,基本的健康检查流程基本如下:Nacos客户端会维护一个定时任务,每隔5秒发送一次心跳请求,以确保自己处于活跃状态。Nacos服务端在15秒内如果没收到客户端的心跳请求,会将该实例设置为不健康,在30秒内没收到心跳,会将这个临时实例摘除。原理很简单,关于代码层的实现,下面来就逐步来进行解析。客户端的心跳实例基于心跳上报的形式来维持活性,当然就离不...

阅读全文>>

0

微服务失败的 11 个原因

微服务是当前流行的架构。简单地说,微服务就是一种面向服务的软件架构,在这种架构中,服务器端应用程序是通过组合许多单用途、小容量的网络服务来构建的。微服务架构让边界设计良好的服务的失效互不影响成为可能。但是,微服务和所有的分布式系统一样,也会存各种各样的问题。Shekhar Gulati 给我们分享了微服务失败的 11 个原因,这些原因还算比较常见,我们相信,他总结的心得对于想要尝试转型微服务的公司是大有裨益的,因此,我们翻译并分享了这篇文章,以飨读者。在过去的几年里,我对进行数字化转型的多家产品团队进行了架构审查。大多数团队都是遵循微服务架构来构建产品。他们完全有理由使用基于微服务的架构:更快...

阅读全文>>

0

架构解密从分布式到微服务:深入理解网络,NIO

NIO我们知道,分布式系统的基础是网络。因此,网络编程是分布式软件工程师和架构师的必备技能之一,而且随着当前大数据和实时计算技术的兴起,高性能RPC架构与网络编程技术再次成为焦点。不管是RPC领域的ZeroC Ice、Thrift,还是经典分布式框架Actor模型中的Akka,或者实时流领域的Storm、Spark、 Flink, 又或者开源分布式数据库中的Mycat、VoltDB, 这些高大上产品的底层通信技术都采用了NIO (非阻塞通信)通信技术。而Java领域里大名鼎鼎的NIO框架一Netty, 则被众多的开源项目或商业软件所采用。相对于它的老前辈BIO (阻塞通信)来说,NIO 模型非...

阅读全文>>

1

大白话揭秘搞好就能“年薪百万”的SpringCloud微服务

微服务基本概念架构的演变为什么会有微服务?假如回到10年前,一天张三入职了电商企业—并夕夕商城。公司初创,人比较少,公司网站的用户也很少,公司只有一个工程师项目架构比较简单1.单体架构没有想到的是,公司业务越来越好,网站用户量越来越大,单体架构的问题就暴露出来了,随着访问量增加,项目经常宕机问题:架构简单 难以抗住高并发于是,招人。对并夕夕商城进行升级优化。分析升级的方向:数据库 和 应用代码要放在不同的服务器上增加应用负载能力【集群】于是增加负载均衡。2.负载均衡分布式:一个系统 通过多台服务器 协同完成系统功能集群:同一个系统放在了多台服务器上 且每个服务器上内容相同 复制了多份负载均衡的...

阅读全文>>

0

简单列一下分布式高并发要做的事情

数据库以MySQL为例。慢查询日志,索引优化(explain),覆盖索引。数据库一主多从或者双主多从。读写分离。然后对表进行垂直划分,例如一张字段很多的宽表转为子母表。水平划分,根据业务特性,对表进行分区(现在应该很少用),分表,甚至分库。数据该归档的归档,日表变月表,年表,或者变地域表等。使用sharding-jdbc等。甚至可以给数据库硬盘换上SSD。数据量再大,就该考虑大数据了。缓存以Redis为例。哨兵保证高可用,集群(最低3主3从)保证吞吐量(相当于MySQL的分库)。要注意缓存与DB的数据一致性(更新后删),缓存穿透(布隆过滤器),缓存雪崩(预热,随机时间过期)问题。还要关注持久化...

阅读全文>>

0

SpringCloud微服务架构实战:商家权限体系设计及开发

商家管理后台与sso设计在本文的电商平台实例中,商家是这个平台的主角,商家管理后台是专门为这个主角提供的一个安全可靠的操作平台。在商家管理后台中,商家可以进行商品管理、订单管理、物流管理、会员管理、评价管理等各个方面的管理工作。这些管理功能及其服务功能分别由不同的微服务项目实现,并通过不同的应用进行部署。现在我们要做的,就是将这些分布在不同应用中的管理功能,组成一个具有相同访问控制设计的管理后台。单点登录(Single Sign On,SSO)设计可以将这种分散的应用,通过统一的访问控制和权限管理,整合成一个有机整体,为分布式环境中的不同应用,提供一个统一的登录控制和授权认证管理。商家管理员只...

阅读全文>>