Java微服务核心

微服务是一 些协同工作的小而自治的服务
●每个服务开发成单一应用的形式,每个应用运行在单的进程中
●使用自动化部署工具进行独立发布
●每个服务可以使用不同的开发语言以及不同数据存储技术
分布式服务包含的技术,包含分布式事务CAP定理,BASE理论,分布式事务,服务幂等性等一些特征

  • Distributed/versioned configuration【分布式以及版本化的配置】
  • Service registration and discovery【服务注册与发现】
  • Routing【路由】
  • Service-to-service calls【服务调用】
  • Load balancing【负载均衡】
  • Circuit Breakers【断路器】
  • Distributed messaging【分布式消息】

spring-cloud (Netflix)

  • 服务的注册与发现(Eureka)
  • 服务消费者(rest+ribbon)
  • 服务消费者(Feign)
  • 断路器(Hystrix)
  • 路由网关zuul,Spring Cloud Gateway
  • 高可用的分布式配置中心(Spring Cloud Config)
  • 消息总线(Spring Cloud Bus)
  • 服务链路追踪(Spring Cloud Sleuth)
  • 断路器监控(Hystrix Dashboard)
  • 断路器聚合监控(Hystrix Turbine)
  • Resilience4j 代替 Hystrix
  • Hystrix Dashboard / Turbine替换为Micrometer + Monitoring System
  • Spring Cloud Loadbalancer 代替Ribbon
  • Spring Cloud Gateway 代替 Zuul
  • Spring Boot external config + Spring Cloud Config代替 Archaius 1

后期zuul hystrix,Ribbon将停止更新

APM(应用程序性能监视和管理)工具

  • Cat http://github.com/dianping/cat/
  • Zipkin https://zipkin.io/
  • Pinpoint https://github.com/naver/pinpoint/
  • Apache SkyWalking https://github.com/apacheincubator-skywalking

Spring Cloud Alibaba

  • Sentinel

把流量作为切入点,从流量控制、熔断降级、系统负载保等多个维度保护服务的稳定性。

  • Nacos

一个更易于构建云原生应用的动态服务发现、配置管理和服务理平台* * * 。

  • RocketMQ

一款开源的分布式消息系统,基于高可用分布式集群技术提供低延时的、高可靠的消息发布与订阅服务。

  • Seata

阿里巴巴开源产品,一个易于使用的高性能微服务分布式事务决方案。

  • Alibaba Cloud SchedulerX

阿里中间件团队开发的一款分布式任调度产品,提供秒级、精准、高可靠、高可用的定时(基于 Cron 表式)任务调度服务。

ELK

日志治理

logback => kafka =>logstash => elasticsearch => kibana