Java微服务核心
2018-08-09
3 min read
微服务是一 些协同工作的小而自治的服务
●每个服务开发成单一应用的形式,每个应用运行在单的进程中
●使用自动化部署工具进行独立发布
●每个服务可以使用不同的开发语言以及不同数据存储技术
分布式服务包含的技术,包含分布式事务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