你知道的微服务技术栈都有哪些?

编程

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

回到顶部