你知道的微服务技术栈都有哪些?
Eureka
- Eureka Server : 提供服务注册服务, 各个节点启动后,会在 Eureka Server 中进行注册。
- Eureka Client : 简化与 Eureka Server 的交互操作
- Spring Cloud Netflix : GitHub,文档
Zookeeper
ZooKeeper is a centralized service for maintaining configuration information, naming, providing distributed synchronization, and providing group services.
Zookeeper 是一个集中的服务, 用于维护配置信息、命名、提供分布式同步和提供组服务。
Zookeeper 和 Eureka 区别
Zookeeper 保证 CP,Eureka 保证 AP:
- C:数据一致性;
- A:服务可用性;
- P:服务对网络分区故障的容错性,这三个特性在任何分布式系统中不能同时满足,最多同时满足两个。
权限认证
作用: 根据系统设置的安全规则或者安全策略, 用户可以访问而且只能访问自己被授权的资源,不多不少。
- apache shiro
- 官网
- Spring Security
- 官网
微服务调用
介绍:通信协议
- REST
- 通过HTTP/HTTPSf阿松Rest请求进行数据交互
- RPC( Remote Procedure Call )
- 它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。RPC 不依赖于具体的网络传输协议,tcp、udp 等都可以。
- gRPC
- 官网
A high-performance, open-source universal RPC framework.
所谓 RPC(remote procedure call 远程过程调用) 框架实际是提供了一套机制,使得应用程序之间可以进行通信,而且也遵从 server/client 模型。使用的时候客户端调用 server 端提供的接口就像是调用本地的函数一样。
服务接口调用
作用:多个服务之间的通讯。
Feign(HTTP)
Spring Cloud Netflix 的微服务都是以 HTTP 接口的形式暴露的,所以可以用 Apache 的 HttpClient 或 Spring 的 RestTemplate 去调用,而 Feign 是一个使用起来更加方便的 HTTP 客戶端,使用起来就像是调用自身工程的方法,而感觉不到是调用远程方法。
GitHub
服务熔断
作用:当请求到达一定的阈值时不让请求继续。
- Hystrix
- Github
- Sentinel
- GitHub
服务的负载均衡
作用:降低服务压力,将请求分摊,提高吞吐量。
- Ribbon
- Spring Cloud Ribbon 是一个基于 HTTP 和 TCP 的客户端负载均衡工具, 它基于 Netflix Ribbon 实现
- Github
- Nginx
- ginx 属于服务端负载均衡,Ribbon 属于客户端负载均衡.Nginx 作用与 Tomcat,Ribbon 作用与各个服务之间的调用 (RPC)
消息队列
作用:解耦业务,异步化处理数据。
RabbitMQ
- 官网
Kafka
- 官网
RocketMQ
- 官网
activeMQ
- 官网
API网关
Zuul
作用: 外部请求通过 API 网关进行拦截处理, 再转发到真正的服务
Zuul is a gateway service that provides dynamic routing, monitoring, resiliency, security, and more.
非关系型数据库
Mongodb
缓存
Redis
作用:可用作数据库,缓存和消息代理。它支持数据结构,例如字符串,哈希,列表,集合,带范围查询的排序集合,位图,超日志,带有半径查询和流的地理空间索引。
- 官网
服务部署
Docker
官网
Jenkins
官网
Kubernetes(K8s)
官网
以上是 你知道的微服务技术栈都有哪些? 的全部内容, 来源链接: utcz.com/z/517990.html