Spring Cloud - 技术栈

重构地球

整理自杨波老师的总结

640?wx_fmt=png&wxfrom=5&wx_lazy=1

注册中心

  • Eureka
  • Consul支持 KV 模型存储和灵活健康检查能力。

服务网关

  • Spring Cloud选择 Zuul 是最佳搭配,但异步性能不足(基于 Netty 的异步 Zuul 未推出正式版)。
  • 基于 Nginx/OpenResty 的 API 网关 Kong 在 github 上比较火。因为采用 Nginx 内核,Kong 的异步性能较强,基于 lua 的插件比较丰富,从安全到限流熔断都有,还有不少开源的管理界面,能够集中管理 Kong 集群。

服务容错

  • Hystrix 在应用端或者框架内埋点,有一定侵入性。

集中式限流容错,对于 Nginx或者 Kong,可以集中在反向代理上做熔断限流,其插件支持灵活的限流容错配置。Zuul 也可以集成 Hystrix 实现网关层集中式限流容错。

配置中心

  • Spring Cloud Config 缺失治理能力。
  • [推荐]携程的 Apollo 配置中心,具备高可用,配置实时生效(推拉结合),配置审计和版本化,多环境多集群支持等生产级特性。https://github.com/ctripcorp/...

调用链监控

  • 点评的 CAT ?还是 incubator-skywalking
  • zipkin 报表少,依赖分析过于简陋,不支持Metric。
  • Pinpoint 比zipkin好一点,通过字节码做埋点,但不支持Metric。

日志监控

  • ElasticSearch + kibana + Logstash + Filebeat + Elastalert。不说了。

Metrics 监控

存储依赖于时间序列数据库 (TSDB)。

  • OpenTSDB 分布式能力强,但是相对较重。
  • prometheus 轻量级,自带告警模块,但是分布式能力不足。

Metrics报表展示用 Grafana,不说了。

队列

  • 对于日志等可靠性要求不高的场景,用Kafka。对 Kafka 的监控和治理可以结合 hermes。
  • RocketMQ 高性能,分布式能力强。
  • RabbitMQ 性能和分布式能力稍弱,中小规模场景可选。

缓存

客户端jedis或redisson,redisson有中文文档 链接描述

  • [推荐] 客户端直连模式(简单轻量),用 cachecloud 缓存治理平台。
  • 中间层 Proxy 模式,则用 Twitter 的 twemproxy 或 CodisLab 的 codis。

数据访问层

  • sharding-jdbc,分库分表逻辑做在客户端 jdbc driver 中,客户端直连数据库简单轻量,建议中小规模场景。
  • MyCAT 数据库访问中间层 proxy 模式,但运维成本较高,建议中大规模场景。

任务调度

  • [推荐] xxl-job 简单轻量,大部分场景够用。
  • elastic-job 功能强大但复杂。

服务安全

开源的很杂乱,没有现成的,只能自研。

阅读 6k

rust-zero

68 声望
4 粉丝
0 条评论

rust-zero

68 声望
4 粉丝
文章目录
宣传栏