美文网首页
微服务架构设计模式(九)面向生产环境的微服务开发

微服务架构设计模式(九)面向生产环境的微服务开发

作者: Billy_Wang | 来源:发表于2020-10-30 23:26 被阅读0次

    开发面向生产环境的微服务应用

    在微服务部署到生产环境中时,除了业务满足需求以外,还有以下方面的问题需要满足生产需求

    1、安全问题

    安全方面主要包含几个方面:身份验证、访问授权、审计、进程通信安全
    (1)单体应用的安全验证,常用的框架有Spring Security、Apache Shiro、Passport(Node.js验证框架)


    image.png

    (2)微服务中实现安全性

    • 由API Gateway处理身份验证,可以避免请求直接进入内部各微服务,在请求转发给微服务之前进行验证;另一方面,由于API Gateway处理各种不同的身份验证机制,其他服务的实现变得简单了。
    • 在API Gateway中可借助于Spring Security实现基于角色的访问路径的控制
    • 如果要实现对单个领域对象的访问权限,则会与服务耦合
    • 也可在微服务中实现基于角色访问授权,可实现ACL管理聚合的访问

    (3)使用OAuth 2.0,其中的关键概念为:授权服务器访问令牌刷新令牌资源服务器客户端

    image.png

    2、设计可配置的服务

    外部化配置:

    • 推送模型
      推送模型依赖于部署环境和协作,部署环境在创建服务实例时提供配置属性。它可能会将配置属性作为环境变量传递,或者环境变量可以使用配置文件提供配置属性,服务实例在启动时读取配置属性。
      推送模型的弊端:重新配置后,需要重新启动服务


      image.png

      Spring Boot读取变量的优先顺序如下:

      命令行参数
      JVM系统属性
      操作系统环境变量
      当前目录中的配置文件

    • 拉取模型
      服务实例从配置服务器读取配置属性
      实现配置服务器的方法有:

      版本控制系统,如Git
      SQL 和 NoSql
      专用配置服务器,如 Spring Cloud Config Server

      使用配置服务器的好处:

      集中配置,统一管理
      敏感数据的透明解密
      动态重新配置

    3、设计可观测的服务

    • 健康检查API
    • 日志聚合
    • 分布式跟踪
    • 异常跟踪
    • 应用程序指标
    • 审核日志记录

    相关文章

      网友评论

          本文标题:微服务架构设计模式(九)面向生产环境的微服务开发

          本文链接:https://www.haomeiwen.com/subject/bfggmktx.html