没用过微服务?别慌,丐版架构图,让你轻松拿捏面试官( 二 )

  • 控制和自定义能力:Nginx静态资源服务提供更高的灵活性和控制能力,可以根据具体需求进行定制和配置 。如果需要更精细的控制和自定义能力,或者在特定的网络环境下进行部署,Nginx可能更适合 。
  • 成本和预算:CDN静态资源服务通常需要支付额外的费用,而Nginx静态资源服务可以自行搭建和部署 , 成本相对较低 。在考虑选择时,需要综合考虑成本和预算的因素 。
  • 内容分发和全球覆盖:如果静态资源需要分发到全球各地的用户,CDN静态资源服务的分布式节点可以更好地满足这个需求 , 提供更广泛的内容分发和全球覆盖 。
  • 选择Nginx静态资源服务还是CDN静态资源服务取决于具体的需求和场景 。如果追求更好的性能和全球覆盖,可以选择CDN静态资源服务;如果更需要控制和自定义能力 , 且对性能要求不是特别高,可以选择Nginx静态资源服务 。
    五、Gateway网关在微服务架构中,Gateway的作用如下:
    • 统一入口:Gateway作为整个微服务架构的统一入口,所有的请求都会经过Gateway,这样做可以隐藏内部微服务的细节 , 降低后台服务受攻击的概率 。
    • 路由和转发:Gateway根据请求的路径、参数等信息,将请求路由到相应的微服务实例 。这样可以让服务解耦,让各个微服务可以独立的开发、测试、部署 。
    • 安全和认证:Gateway通常集成了身份验证和权限验证的功能 , 确保只有经过验证的请求才能访问微服务 。Gateway还具备防爬虫、限流、熔断的功能 。
    • 协议转换:由于微服务架构中可以使用不同的技术和协议 , Gateway可以作为协议转换中心,实现不同协议之间的转换和兼容性 。
    • 日志和监控,Gateway可以记录所有的请求和响应日志,为后续的故障排查、性能分析、安全审计提供数据支持 。Gateway还集成了监控和报警功能:实时反馈系统的运行状态 。
    • 服务聚合:在某些场景中,Gateway可以将来自多个微服务的数据进行聚合,然后一次性返回给客户端,减少客户端和微服务之间的交互次数,提高系统性能 。
    六、注册中心Nacos在微服务架构中,Nacos的作用主要体现在注册中心、配置中心、服务健康检查等方面 。
    • 注册中心:Nacos支持基于DNS和RPC的服务发现 , 微服务可以将接口服务注册到Nacos中,客户端通过nacos查找和调用这些服务实例 。
    • 配置中心:Nacos提供了动态配置服务,可以动态的修改配置中心中的配置项,不需要重启后台服务,即可完成配置的修改和发布,提高了系统的灵活性和可维护性 。
    • 服务健康检查:Nacos提供了一系列的服务治理功能 , 比如服务健康检查、负载均衡、容错处理等 。服务健康检查可以阻止向不健康的主机或服务实例发送请求,保证了服务的稳定性和可靠性 。负载均衡可以根据一定的策略,将请求分发到不同的服务实例中,提高系统的并发处理能力和性能 。
    七、Redis缓存1、在微服务架构中,Redis的作用主要体现在以下几个方面:
    • 缓存服务:Redis可以作为高速缓存服务器,将常用的数据存储在内存中,提高数据访问速度和响应时间,减轻数据库的访问压力,并加速后台数据的查询 。
    • 会话管理:Redis可以存储会话信息,并实现分布式会话管理 。这使会话信息可以在多个服务之间共享和访问,提供一致的用户体验 。
    • 分布式锁:Redis提供了分布式锁机制,可以确保微服务中多个节点对共享资源的访问的合理性和有序性,避免竞态条件和资源冲突 。
    • 消息队列:Redis支持发布订阅模式和消息队列模式,可以作为消息中间件使用 。微服务之间可以通过Redis实现异步通信 , 实现解耦和高可用性 。
    2、竞态条件竞态条件是指在同一个程序的多线程访问同一个资源的情况下,如果对资源的访问顺序敏感,就存在竞态条件 。竞态条件可能会导致执行结果出现各种问题,例如计算机死机、出现非法操作提示并结束程序、错误的读取旧的数据或错误的写入新数据 。在串行的内存和存储访问能防止这种情况 , 当读写命令同时发生的时候,默认是先执行读操作的 。


    推荐阅读