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

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

作者: 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