mirror of
https://github.com/doocs/advanced-java.git
synced 2025-03-24 10:50:06 +08:00
docs: huifer-micro-services-technology-stack.md
@doocs @yanglbme @huifer
This commit is contained in:
parent
a014c3d205
commit
ebda3d212c
@ -1,32 +1,40 @@
|
||||
# 微服务技术栈
|
||||
- Author: [HuiFer](https://github.com/huifer)
|
||||
- Description: 该文简单介绍微服务技术栈有哪些分别用来做什么
|
||||
|
||||
## 技术栈
|
||||
### 微服务开发
|
||||
> 作用: 快速开发服务.
|
||||
作用:快速开发服务。
|
||||
|
||||
- Spring
|
||||
- SpringMvc
|
||||
- SpringBoot
|
||||
> [官网](https://spring.io/),Spring目前是JavaWeb开发人员必不可少的一个框架,SpringBoot简化了Spring开发的配置目前也是业内主流开发框架.
|
||||
|
||||
[官网](https://spring.io/),Spring 目前是 JavaWeb 开发人员必不可少的一个框架,SpringBoot 简化了 Spring 开发的配置目前也是业内主流开发框架。
|
||||
|
||||
### 微服务注册发现
|
||||
> 作用: 发现服务,注册服务.集中管理服务
|
||||
作用:发现服务,注册服务,集中管理服务
|
||||
|
||||
#### Eureka
|
||||
- Eureka Server : 提供服务注册服务,各个节点启动后,会在Eureka Server中进行注册.
|
||||
- Eureka Client : 简化与Eureka Server的交互操作
|
||||
- Spring Cloud Netflix : [GitHub](https://github.com/spring-cloud/spring-cloud-netflix),[文档](https://cloud.spring.io/spring-cloud-netflix/reference/html/)
|
||||
- Eureka Server : 提供服务注册服务,各个节点启动后,会在 Eureka Server 中进行注册.
|
||||
- Eureka Client : 简化与 Eureka Server 的交互操作
|
||||
- Spring Cloud Netflix : [GitHub](https://github.com/spring-cloud/spring-cloud-netflix),[文档 ](https://cloud.spring.io/spring-cloud-netflix/reference/html/)
|
||||
#### Zookeeper
|
||||
- > ZooKeeper is a centralized service for maintaining configuration information, naming, providing distributed synchronization, and providing group services.
|
||||
>
|
||||
> zookeeper是一个集中的服务,用于维护配置信息、命名、提供分布式同步和提供组服务.
|
||||
> zookeeper 是一个集中的服务,用于维护配置信息、命名、提供分布式同步和提供组服务.
|
||||
- [GitHub](https://github.com/apache/zookeeper)
|
||||
#### Zookeeper 和 Eureka 区别
|
||||
1. Zookeeper保证CP , Eureka 保证AP
|
||||
- C-数据一致性;A-服务可用性;P-服务对网络分区故障的容错性,这三个特性在任何分布式系统中不能同时满足,最多同时满足两个.
|
||||
Zookeeper 保证 CP,Eureka 保证 AP:
|
||||
|
||||
- C:数据一致性;
|
||||
- A:服务可用性;
|
||||
- P:服务对网络分区故障的容错性,这三个特性在任何分布式系统中不能同时满足,最多同时满足两个。
|
||||
|
||||
### 微服务配置管理
|
||||
> 作用:统一管理一个或多个服务的配置信息,集中管理.
|
||||
#### Disconf
|
||||
- > Distributed Configuration Management Platform(分布式配置管理平台) ,它是专注于各种分布式系统配置管理 的通用组件/通用平台, 提供统一的配置管理服务,是一套完整的基于zookeeper的分布式配置统一解决方案.
|
||||
- > Distributed Configuration Management Platform(分布式配置管理平台) ,它是专注于各种分布式系统配置管理 的通用组件/通用平台, 提供统一的配置管理服务,是一套完整的基于 zookeeper 的分布式配置统一解决方案.
|
||||
- [GitHub](https://github.com/knightliao/disconf)
|
||||
|
||||
#### SpringCloudConfig
|
||||
@ -39,36 +47,36 @@
|
||||
### 权限认证
|
||||
> 作用:根据系统设置的安全规则或者安全策略,用户可以访问而且只能访问自己被授权的资源,不多不少.
|
||||
#### Spring Security
|
||||
- [官网](https://spring.io/projects/spring-security)
|
||||
- [官网 ](https://spring.io/projects/spring-security)
|
||||
#### apache Shiro
|
||||
> Apache Shiro™ is a powerful and easy-to-use Java security framework that performs authentication, authorization, cryptography, and session management. With Shiro’s easy-to-understand API, you can quickly and easily secure any application – from the smallest mobile applications to the largest web and enterprise applications.
|
||||
- [官网](http://shiro.apache.org/)
|
||||
- [官网 ](http://shiro.apache.org/)
|
||||
|
||||
|
||||
### 批处理
|
||||
> 作用: 批量处理同类型数据或事物
|
||||
#### Spring Batch
|
||||
- [官网](官网)
|
||||
- [官网 ](官网)
|
||||
### 定时任务
|
||||
> 作用: 定时做什么.
|
||||
#### Quartz
|
||||
- [官网](http://www.quartz-scheduler.org/)
|
||||
- [官网 ](http://www.quartz-scheduler.org/)
|
||||
|
||||
|
||||
### 微服务调用(协议)
|
||||
### 微服务调用 (协议)
|
||||
> 通讯协议
|
||||
#### Rest
|
||||
- 通过HTTP/HTTPS发送Rest请求进行数据交互
|
||||
- 通过 HTTP/HTTPS 发送 Rest 请求进行数据交互
|
||||
#### RPC
|
||||
- Remote Procedure Call
|
||||
- 它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议.RPC不依赖于具体的网络传输协议,tcp、udp等都可以.
|
||||
- 它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议.RPC 不依赖于具体的网络传输协议,tcp、udp 等都可以.
|
||||
#### gRPC
|
||||
- [官网](https://www.grpc.io/)
|
||||
- [官网 ](https://www.grpc.io/)
|
||||
- > A high-performance, open-source universal RPC framework
|
||||
> 所谓RPC(remote procedure call 远程过程调用)框架实际是提供了一套机制,使得应用程序之间可以进行通信,而且也遵从server/client模型.使用的时候客户端调用server端提供的接口就像是调用本地的函数一样.
|
||||
> 所谓 RPC(remote procedure call 远程过程调用) 框架实际是提供了一套机制,使得应用程序之间可以进行通信,而且也遵从 server/client 模型.使用的时候客户端调用 server 端提供的接口就像是调用本地的函数一样.
|
||||
#### RMI
|
||||
- Remote Method Invocation
|
||||
- 纯Java调用
|
||||
- 纯 Java 调用
|
||||
|
||||
|
||||
### 服务接口调用
|
||||
@ -97,16 +105,16 @@
|
||||
### 服务的负载均衡
|
||||
> 作用:降低服务压力,增加吞吐量
|
||||
#### Ribbon
|
||||
- >Spring Cloud Ribbon是一个基于HTTP和TCP的客户端负载均衡工具,它基于Netflix Ribbon实现
|
||||
- >Spring Cloud Ribbon 是一个基于 HTTP 和 TCP 的客户端负载均衡工具,它基于 Netflix Ribbon 实现
|
||||
>
|
||||
- [GitHub](https://github.com/Netflix/ribbon)
|
||||
#### Nginx
|
||||
- > Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务
|
||||
- > Nginx (engine x) 是一个高性能的 HTTP 和反向代理 web 服务器,同时也提供了 IMAP/POP3/SMTP 服务
|
||||
>
|
||||
>
|
||||
- [GitHub](https://github.com/nginx/nginx)
|
||||
#### Nginx 与 Ribbon区别
|
||||
1. Nginx 属于服务端负载均衡,Ribbon属于客户端负载均衡.Nginx作用与Tomcat,Ribbon作用与各个服务之间的调用(RPC)
|
||||
#### Nginx 与 Ribbon 区别
|
||||
1. Nginx 属于服务端负载均衡,Ribbon 属于客户端负载均衡.Nginx 作用与 Tomcat,Ribbon 作用与各个服务之间的调用 (RPC)
|
||||
|
||||
|
||||
|
||||
@ -116,16 +124,16 @@
|
||||
### 消息队列
|
||||
> 作用: 解耦业务,异步化处理数据
|
||||
#### Kafka
|
||||
- [官网](http://kafka.apache.org/)
|
||||
- [官网 ](http://kafka.apache.org/)
|
||||
#### RabbitMQ
|
||||
- [官网](https://www.rabbitmq.com/)
|
||||
- [官网 ](https://www.rabbitmq.com/)
|
||||
#### RocketMQ
|
||||
- [官网](http://rocketmq.apache.org/)
|
||||
- [官网 ](http://rocketmq.apache.org/)
|
||||
#### activeMQ
|
||||
- [官网](http://activemq.apache.org/)
|
||||
- [官网 ](http://activemq.apache.org/)
|
||||
|
||||
|
||||
### 日志采集(elk)
|
||||
### 日志采集 (elk)
|
||||
> 作用:收集各服务日志提供日志分析、用户画像等
|
||||
#### Elasticsearch
|
||||
- [GitHub](https://github.com/elastic/elasticsearch)
|
||||
@ -135,8 +143,8 @@
|
||||
- [GitHub](https://github.com/elastic/kibana)
|
||||
|
||||
|
||||
### API网关
|
||||
> 作用:外部请求通过API网关进行拦截处理,再转发到真正的服务
|
||||
### API 网关
|
||||
> 作用:外部请求通过 API 网关进行拦截处理,再转发到真正的服务
|
||||
#### Zuul
|
||||
> Zuul is a gateway service that provides dynamic routing, monitoring, resiliency, security, and more.
|
||||
>
|
||||
@ -144,13 +152,13 @@
|
||||
|
||||
|
||||
### 服务监控
|
||||
> 作用:以可视化或非可视化的形式展示出各个服务的运行情况(CPU、内存、访问量等)
|
||||
> 作用:以可视化或非可视化的形式展示出各个服务的运行情况 (CPU、内存、访问量等)
|
||||
#### Zabbix
|
||||
- [GitHub](https://github.com/jjmartres/Zabbix)
|
||||
#### Nagios
|
||||
- [官网](https://www.nagios.org/)
|
||||
- [官网 ](https://www.nagios.org/)
|
||||
#### Metrics
|
||||
- [官网](https://metrics.dropwizard.io)
|
||||
- [官网 ](https://metrics.dropwizard.io)
|
||||
|
||||
### 服务链路追踪
|
||||
> 作用:明确服务之间的调用关系
|
||||
@ -165,29 +173,29 @@
|
||||
> 作用: 存储数据
|
||||
#### 关系型数据库
|
||||
##### MySql
|
||||
- [官网](https://www.mysql.com/)
|
||||
- [官网 ](https://www.mysql.com/)
|
||||
##### Oracle
|
||||
- [官网](https://www.oracle.com/index.html)
|
||||
- [官网 ](https://www.oracle.com/index.html)
|
||||
##### MsSql
|
||||
- [官网](https://docs.microsoft.com/zh-cn/sql/?view=sql-server-ver15)
|
||||
- [官网 ](https://docs.microsoft.com/zh-cn/sql/?view=sql-server-ver15)
|
||||
##### PostgreSql
|
||||
- [官网](https://www.postgresql.org/)
|
||||
- [官网 ](https://www.postgresql.org/)
|
||||
#### 非关系型数据库
|
||||
##### Mongodb
|
||||
- [官网](https://www.mongodb.com/)
|
||||
- [官网 ](https://www.mongodb.com/)
|
||||
##### Elasticsearch
|
||||
- [GitHub](https://github.com/elastic/elasticsearch)
|
||||
### 缓存
|
||||
> 作用: 存储数据
|
||||
#### redis
|
||||
- [官网](https://redis.io/)
|
||||
- [官网 ](https://redis.io/)
|
||||
|
||||
### 分库分表
|
||||
> 作用: 数据库分库分表方案.
|
||||
#### shardingsphere
|
||||
- [官网](http://shardingsphere.apache.org/)
|
||||
- [官网 ](http://shardingsphere.apache.org/)
|
||||
#### Mycat
|
||||
- [官网](http://www.mycat.io/)
|
||||
- [官网 ](http://www.mycat.io/)
|
||||
|
||||
|
||||
|
||||
@ -195,10 +203,10 @@
|
||||
### 服务部署
|
||||
> 作用: 将项目快速部署、上线、持续集成.
|
||||
#### Docker
|
||||
- [官网](http://www.docker.com/)
|
||||
- [官网 ](http://www.docker.com/)
|
||||
#### Jenkins
|
||||
- [官网](https://jenkins.io/zh/)
|
||||
- [官网 ](https://jenkins.io/zh/)
|
||||
#### Kubernetes(K8s)
|
||||
- [官网](https://kubernetes.io/)
|
||||
- [官网 ](https://kubernetes.io/)
|
||||
#### Mesos
|
||||
- [官网](http://mesos.apache.org/)
|
||||
- [官网 ](http://mesos.apache.org/)
|
Loading…
Reference in New Issue
Block a user