首页 > 图灵资讯 > java面试题>正文
说下微服务有哪些组件?
2024-03-18 14:12:08
微服务给系统开发带来了一些问题和挑战,如服务调用的复杂性、分布式事务的处理、服务的动态管理等。为了更好地解决这些问题和挑战,各种微服务治理的组件应运而生,充当微服务架构的基石和支撑。
微服务组件示意图
微服务的各个组件和常见实现:
- 注册中心:用于服务的注册与发现,管理微服务的地址信息。常见的实现包括:
-
- Spring Cloud Netflix:Eureka、Consul
- Spring Cloud Alibaba:Nacos
- 配置中心:用于集中管理微服务的配置信息,可以动态修改配置而不需要重启服务。常见的实现包括:
-
- Spring Cloud Netflix:Spring Cloud Config
- Spring Cloud Alibaba:Nacos Config
- 远程调用:用于在不同的微服务之间进行通信和协作。常见的实现保包括:
-
- RESTful API:如RestTemplate、Feign
- RPC(远程过程调用):如Dubbo、gRPC
- API网关:作为微服务架构的入口,统一暴露服务,并提供路由、负载均衡、安全认证等功能。常见的实现包括:
-
- Spring Cloud Netflix:Zuul、Gateway
- Spring Cloud Alibaba:Gateway、Apisix等
- 分布式事务:保证跨多个微服务的一致性和原子性操作。常见的实现包括:
-
- Spring Cloud Alibaba:Seata
- 熔断器:用于防止微服务之间的故障扩散,提高系统的容错能力。常见的实现包括:
-
- Spring Cloud Netflix:Hystrix
- Spring Cloud Alibaba:Sentinel、Resilience4j
- 限流和降级:用于防止微服务过载,对请求进行限制和降级处理。常见的实现包括:
-
- Spring Cloud Netflix:Hystrix
- Spring Cloud Alibaba:Sentinel
- 分布式追踪和监控:用于跟踪和监控微服务的请求流程和性能指标。常见的实现包括:
-
- Spring Cloud Netflix:Spring Cloud Sleuth + Zipkin
- Spring Cloud Alibaba:SkyWalking、Sentinel Dashboard