微服务常用的技术栈是什么?
下面您会看到一个图示,展示了微服务的技术栈,分别是开发阶段和生产阶段。

▶️ 𝐏𝐫𝐞-𝐏𝐫𝐨𝐝𝐮𝐜𝐭𝐢𝐨𝐧
- 定义API - 这为前端和后端建立了合同。我们可以使用Postman或OpenAPI。
- 开发 - 前端开发通常使用Node.js或React,而后端开发则常用Java、Python或Go。此外,我们需要根据API定义更改API网关中的配置。
- 持续集成 - JUnit和Jenkins用于自动测试。代码打包成Docker镜像并作为微服务部署。
▶️ 𝐏𝐫𝐨𝐝𝐮𝐜𝐭𝐢𝐨𝐧
- NGinx是负载均衡器的常见选择。Cloudflare提供CDN(内容分发网络)。
- API网关 - 我们可以使用Spring Boot作为网关,并使用Eureka/Zookeeper进行服务发现。
- 微服务部署在云上。我们可以选择AWS、微软Azure或Google GCP。
- 缓存与全文搜索 - Redis是缓存键值对的常见选择。Elasticsearch用于全文搜索。
- 通信 - 服务之间的通信可以使用消息基础设施Kafka或RPC。
- 持久化 - 我们可以使用MySQL或PostgreSQL作为关系数据库,Amazon S3作为对象存储。如果有必要,我们也可以使用Cassandra作为宽列存储。
- 管理与监控 - 为了管理众多微服务,常见的运维工具包括Prometheus、Elastic Stack和Kubernetes。