未验证 提交 ebda3d21 编写于 作者: Y Yang Libin 提交者: GitHub

docs: huifer-micro-services-technology-stack.md

@doocs @yanglbme @huifer
上级 a014c3d2
# 微服务技术栈
- 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/)
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册