阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

项目总结

32次阅读
没有评论

共计 1535 个字符,预计需要花费 4 分钟才能阅读完成。

现在,我们已经成功地完成了一个 7 ×24 运行的证券交易系统。虽然实现了基本功能,但仍有很多可改进的地方。

网关

直接给用户暴露 API 和 UI 是不合适的,通常我们会选择一个反向代理充当网关。可以使用 Spring Cloud Gateway 来实现网关。Spring Cloud Gateway 是基于 Netty 的异步服务器,允许我们编写一系列过滤器来实现黑名单、权限检查、限流等功能。

也可以选择更通用的 Nginx 作为网关,相应的功能则需要由 Lua 脚本实现,具体可参考 OpenResty。

远程调用

在系统内部,我们直接通过 HTTP 请求实现了远程调用,因为暴露的接口较少。如果接口比较多,可以考虑使用 RPC 调用,例如 Spring Cloud OpenFeign。Spring Cloud OpenFeign 把 REST 请求封装为 Java 接口方法,实现了一种声明式的 RPC 调用。也可以考虑更加通用的 gRPC。

系统监控

要监控系统状态、性能等实时信息,我们需要构造一个监控系统。从零开始是不现实的,选择一个通用的标准协议比使用 JMX 要更简单。StatsD 就是目前最流行的监控方案,它的基本原理是:

┌ ─ ─ ─ ─ ─ ─ ─ ┐
  ┌───────────┐
│ │Application│ │
  └───────────┘
│       │       │
     UDP│
│       ▼       │
  ┌───────────┐       ┌───────────┐
│ │  StatsD   │─┼────▶│  Server   │
  └───────────┘       └───────────┘
└ ─ ─ ─ ─ ─ ─ ─ ┘

应用程序本身负责收集监控数据,然后以 UDP 协议发给 StatsD 守护进程,StatsD 进程通常和应用程序运行在同一台机器上,它非常轻量级,并且 StatsD 是否运行都不影响应用程序的正常运行(因为 UDP 协议只管发不管能不能收到)。如果 StatsD 进程在运行中,它就把监控数据实时发送给聚合服务器如 Graphite,再以可视化的形式展示出来。

StatsD 是一个解决方案,既可以自己用开源组件搭建,又可以选择第三方商业服务商,例如 DataDog。应用程序自身的数据采集则需要根据使用的服务商确定。如果使用 DataDog,它会提供一个 dd-java-agent.jar,在启动应用程序时,以 agent 的方式注入到 JVM 中:

$ java -javaagent:dd-java-agent.jar -jar app.jar

再通过引入 DataDog 提供的 API:

<dependency>
    <groupId>com.datadoghq</groupId>
    <artifactId>dd-trace-api</artifactId>
    <version>{version}</version>
</dependency>

就可以实现数据采集。DataDog 提供的 agent 除了能采集应用程序的数据,还可以直接监控 JVM、Linux 系统,能大大简化监控配置。

对于分布式调用,例如 UI 调用 API,API 调用 Engine,还可以集成 Spring Cloud Sleuth 来监控链路。它通过在入口调用每次生成一个唯一 ID 来跟踪链路,采集数据可直接与 StatsD 集成。

密钥管理

对于很多涉及密钥的配置来说,如数据库密码,系统 AES 密码,管理员口令等,直接存放在配置文件或数据库中都是不安全的。使用专业的密钥管理软件如 Vault 可以更安全地管理密钥。Spring Cloud Vault 就是用于从 Vault 读取密钥,适合对安全性要求特别高的项目。

小结

至此,我们已经从 Java 入门开始,学习了 Java 基础、JavaEE 开发,重点介绍了 Spring、Spring Boot 和 Spring Cloud,并通过一个实战项目,完成了分布式应用程序的开发。相信学到这里的你,已经成为了一个优秀的系统架构师!

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2024-08-05发表,共计1535字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中