|
1 | 1 | # 微服务技术栈 |
2 | 2 | - Author: [HuiFer](https://github.com/huifer) |
3 | 3 | - Description: 该文简单介绍微服务技术栈有哪些分别用来做什么 |
| 4 | + |
4 | 5 | ## 技术栈 |
5 | 6 | ### 微服务开发 |
6 | | -> 作用: 快速开发服务. |
| 7 | +作用:快速开发服务。 |
| 8 | + |
7 | 9 | - Spring |
8 | 10 | - SpringMvc |
9 | 11 | - SpringBoot |
10 | | -> [官网](https://spring.io/),Spring目前是JavaWeb开发人员必不可少的一个框架,SpringBoot简化了Spring开发的配置目前也是业内主流开发框架. |
| 12 | + |
| 13 | +[官网](https://spring.io/),Spring 目前是 JavaWeb 开发人员必不可少的一个框架,SpringBoot 简化了 Spring 开发的配置目前也是业内主流开发框架。 |
| 14 | + |
11 | 15 | ### 微服务注册发现 |
12 | | -> 作用: 发现服务,注册服务.集中管理服务 |
| 16 | +作用:发现服务,注册服务,集中管理服务 |
| 17 | + |
13 | 18 | #### Eureka |
14 | | -- Eureka Server : 提供服务注册服务,各个节点启动后,会在Eureka Server中进行注册. |
15 | | -- Eureka Client : 简化与Eureka Server的交互操作 |
16 | | -- Spring Cloud Netflix : [GitHub](https://github.com/spring-cloud/spring-cloud-netflix),[文档](https://cloud.spring.io/spring-cloud-netflix/reference/html/) |
| 19 | +- Eureka Server : 提供服务注册服务,各个节点启动后,会在 Eureka Server 中进行注册. |
| 20 | +- Eureka Client : 简化与 Eureka Server 的交互操作 |
| 21 | +- Spring Cloud Netflix : [GitHub](https://github.com/spring-cloud/spring-cloud-netflix),[文档 ](https://cloud.spring.io/spring-cloud-netflix/reference/html/) |
17 | 22 | #### Zookeeper |
18 | 23 | - > ZooKeeper is a centralized service for maintaining configuration information, naming, providing distributed synchronization, and providing group services. |
19 | 24 | > |
20 | | - > zookeeper是一个集中的服务,用于维护配置信息、命名、提供分布式同步和提供组服务. |
| 25 | + > zookeeper 是一个集中的服务,用于维护配置信息、命名、提供分布式同步和提供组服务. |
21 | 26 | - [GitHub](https://github.com/apache/zookeeper) |
22 | 27 | #### Zookeeper 和 Eureka 区别 |
23 | | -1. Zookeeper保证CP , Eureka 保证AP |
24 | | - - C-数据一致性;A-服务可用性;P-服务对网络分区故障的容错性,这三个特性在任何分布式系统中不能同时满足,最多同时满足两个. |
| 28 | +Zookeeper 保证 CP,Eureka 保证 AP: |
| 29 | + |
| 30 | +- C:数据一致性; |
| 31 | +- A:服务可用性; |
| 32 | +- P:服务对网络分区故障的容错性,这三个特性在任何分布式系统中不能同时满足,最多同时满足两个。 |
25 | 33 |
|
26 | 34 | ### 微服务配置管理 |
27 | 35 | > 作用:统一管理一个或多个服务的配置信息,集中管理. |
28 | 36 | #### Disconf |
29 | | -- > Distributed Configuration Management Platform(分布式配置管理平台) ,它是专注于各种分布式系统配置管理 的通用组件/通用平台, 提供统一的配置管理服务,是一套完整的基于zookeeper的分布式配置统一解决方案. |
| 37 | +- > Distributed Configuration Management Platform(分布式配置管理平台) ,它是专注于各种分布式系统配置管理 的通用组件/通用平台, 提供统一的配置管理服务,是一套完整的基于 zookeeper 的分布式配置统一解决方案. |
30 | 38 | - [GitHub](https://github.com/knightliao/disconf) |
31 | 39 |
|
32 | 40 | #### SpringCloudConfig |
|
39 | 47 | ### 权限认证 |
40 | 48 | > 作用:根据系统设置的安全规则或者安全策略,用户可以访问而且只能访问自己被授权的资源,不多不少. |
41 | 49 | #### Spring Security |
42 | | -- [官网](https://spring.io/projects/spring-security) |
| 50 | +- [官网 ](https://spring.io/projects/spring-security) |
43 | 51 | #### apache Shiro |
44 | 52 | > 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. |
45 | | -- [官网](http://shiro.apache.org/) |
| 53 | +- [官网 ](http://shiro.apache.org/) |
46 | 54 |
|
47 | 55 |
|
48 | 56 | ### 批处理 |
49 | 57 | > 作用: 批量处理同类型数据或事物 |
50 | 58 | #### Spring Batch |
51 | | -- [官网](官网) |
| 59 | +- [官网 ](官网) |
52 | 60 | ### 定时任务 |
53 | 61 | > 作用: 定时做什么. |
54 | 62 | #### Quartz |
55 | | -- [官网](http://www.quartz-scheduler.org/) |
| 63 | +- [官网 ](http://www.quartz-scheduler.org/) |
56 | 64 |
|
57 | 65 |
|
58 | | -### 微服务调用(协议) |
| 66 | +### 微服务调用 (协议) |
59 | 67 | > 通讯协议 |
60 | 68 | #### Rest |
61 | | -- 通过HTTP/HTTPS发送Rest请求进行数据交互 |
| 69 | +- 通过 HTTP/HTTPS 发送 Rest 请求进行数据交互 |
62 | 70 | #### RPC |
63 | 71 | - Remote Procedure Call |
64 | | -- 它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议.RPC不依赖于具体的网络传输协议,tcp、udp等都可以. |
| 72 | +- 它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议.RPC 不依赖于具体的网络传输协议,tcp、udp 等都可以. |
65 | 73 | #### gRPC |
66 | | -- [官网](https://www.grpc.io/) |
| 74 | +- [官网 ](https://www.grpc.io/) |
67 | 75 | - > A high-performance, open-source universal RPC framework |
68 | | - > 所谓RPC(remote procedure call 远程过程调用)框架实际是提供了一套机制,使得应用程序之间可以进行通信,而且也遵从server/client模型.使用的时候客户端调用server端提供的接口就像是调用本地的函数一样. |
| 76 | + > 所谓 RPC(remote procedure call 远程过程调用) 框架实际是提供了一套机制,使得应用程序之间可以进行通信,而且也遵从 server/client 模型.使用的时候客户端调用 server 端提供的接口就像是调用本地的函数一样. |
69 | 77 | #### RMI |
70 | 78 | - Remote Method Invocation |
71 | | -- 纯Java调用 |
| 79 | +- 纯 Java 调用 |
72 | 80 |
|
73 | 81 |
|
74 | 82 | ### 服务接口调用 |
|
97 | 105 | ### 服务的负载均衡 |
98 | 106 | > 作用:降低服务压力,增加吞吐量 |
99 | 107 | #### Ribbon |
100 | | -- >Spring Cloud Ribbon是一个基于HTTP和TCP的客户端负载均衡工具,它基于Netflix Ribbon实现 |
| 108 | +- >Spring Cloud Ribbon 是一个基于 HTTP 和 TCP 的客户端负载均衡工具,它基于 Netflix Ribbon 实现 |
101 | 109 | > |
102 | 110 | - [GitHub](https://github.com/Netflix/ribbon) |
103 | 111 | #### Nginx |
104 | | -- > Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务 |
| 112 | +- > Nginx (engine x) 是一个高性能的 HTTP 和反向代理 web 服务器,同时也提供了 IMAP/POP3/SMTP 服务 |
105 | 113 | > |
106 | 114 | > |
107 | 115 | - [GitHub](https://github.com/nginx/nginx) |
108 | | -#### Nginx 与 Ribbon区别 |
109 | | -1. Nginx 属于服务端负载均衡,Ribbon属于客户端负载均衡.Nginx作用与Tomcat,Ribbon作用与各个服务之间的调用(RPC) |
| 116 | +#### Nginx 与 Ribbon 区别 |
| 117 | +1. Nginx 属于服务端负载均衡,Ribbon 属于客户端负载均衡.Nginx 作用与 Tomcat,Ribbon 作用与各个服务之间的调用 (RPC) |
110 | 118 |
|
111 | 119 |
|
112 | 120 |
|
|
116 | 124 | ### 消息队列 |
117 | 125 | > 作用: 解耦业务,异步化处理数据 |
118 | 126 | #### Kafka |
119 | | -- [官网](http://kafka.apache.org/) |
| 127 | +- [官网 ](http://kafka.apache.org/) |
120 | 128 | #### RabbitMQ |
121 | | -- [官网](https://www.rabbitmq.com/) |
| 129 | +- [官网 ](https://www.rabbitmq.com/) |
122 | 130 | #### RocketMQ |
123 | | -- [官网](http://rocketmq.apache.org/) |
| 131 | +- [官网 ](http://rocketmq.apache.org/) |
124 | 132 | #### activeMQ |
125 | | -- [官网](http://activemq.apache.org/) |
| 133 | +- [官网 ](http://activemq.apache.org/) |
126 | 134 |
|
127 | 135 |
|
128 | | -### 日志采集(elk) |
| 136 | +### 日志采集 (elk) |
129 | 137 | > 作用:收集各服务日志提供日志分析、用户画像等 |
130 | 138 | #### Elasticsearch |
131 | 139 | - [GitHub](https://github.com/elastic/elasticsearch) |
|
135 | 143 | - [GitHub](https://github.com/elastic/kibana) |
136 | 144 |
|
137 | 145 |
|
138 | | -### API网关 |
139 | | -> 作用:外部请求通过API网关进行拦截处理,再转发到真正的服务 |
| 146 | +### API 网关 |
| 147 | +> 作用:外部请求通过 API 网关进行拦截处理,再转发到真正的服务 |
140 | 148 | #### Zuul |
141 | 149 | > Zuul is a gateway service that provides dynamic routing, monitoring, resiliency, security, and more. |
142 | 150 | > |
143 | 151 | - [GitHub](https://github.com/Netflix/zuul) |
144 | 152 |
|
145 | 153 |
|
146 | 154 | ### 服务监控 |
147 | | -> 作用:以可视化或非可视化的形式展示出各个服务的运行情况(CPU、内存、访问量等) |
| 155 | +> 作用:以可视化或非可视化的形式展示出各个服务的运行情况 (CPU、内存、访问量等) |
148 | 156 | #### Zabbix |
149 | 157 | - [GitHub](https://github.com/jjmartres/Zabbix) |
150 | 158 | #### Nagios |
151 | | -- [官网](https://www.nagios.org/) |
| 159 | +- [官网 ](https://www.nagios.org/) |
152 | 160 | #### Metrics |
153 | | -- [官网](https://metrics.dropwizard.io) |
| 161 | +- [官网 ](https://metrics.dropwizard.io) |
154 | 162 |
|
155 | 163 | ### 服务链路追踪 |
156 | 164 | > 作用:明确服务之间的调用关系 |
|
165 | 173 | > 作用: 存储数据 |
166 | 174 | #### 关系型数据库 |
167 | 175 | ##### MySql |
168 | | -- [官网](https://www.mysql.com/) |
| 176 | +- [官网 ](https://www.mysql.com/) |
169 | 177 | ##### Oracle |
170 | | -- [官网](https://www.oracle.com/index.html) |
| 178 | +- [官网 ](https://www.oracle.com/index.html) |
171 | 179 | ##### MsSql |
172 | | -- [官网](https://docs.microsoft.com/zh-cn/sql/?view=sql-server-ver15) |
| 180 | +- [官网 ](https://docs.microsoft.com/zh-cn/sql/?view=sql-server-ver15) |
173 | 181 | ##### PostgreSql |
174 | | -- [官网](https://www.postgresql.org/) |
| 182 | +- [官网 ](https://www.postgresql.org/) |
175 | 183 | #### 非关系型数据库 |
176 | 184 | ##### Mongodb |
177 | | -- [官网](https://www.mongodb.com/) |
| 185 | +- [官网 ](https://www.mongodb.com/) |
178 | 186 | ##### Elasticsearch |
179 | 187 | - [GitHub](https://github.com/elastic/elasticsearch) |
180 | 188 | ### 缓存 |
181 | 189 | > 作用: 存储数据 |
182 | 190 | #### redis |
183 | | -- [官网](https://redis.io/) |
| 191 | +- [官网 ](https://redis.io/) |
184 | 192 |
|
185 | 193 | ### 分库分表 |
186 | 194 | > 作用: 数据库分库分表方案. |
187 | 195 | #### shardingsphere |
188 | | -- [官网](http://shardingsphere.apache.org/) |
| 196 | +- [官网 ](http://shardingsphere.apache.org/) |
189 | 197 | #### Mycat |
190 | | -- [官网](http://www.mycat.io/) |
| 198 | +- [官网 ](http://www.mycat.io/) |
191 | 199 |
|
192 | 200 |
|
193 | 201 |
|
194 | 202 |
|
195 | 203 | ### 服务部署 |
196 | 204 | > 作用: 将项目快速部署、上线、持续集成. |
197 | 205 | #### Docker |
198 | | -- [官网](http://www.docker.com/) |
| 206 | +- [官网 ](http://www.docker.com/) |
199 | 207 | #### Jenkins |
200 | | -- [官网](https://jenkins.io/zh/) |
| 208 | +- [官网 ](https://jenkins.io/zh/) |
201 | 209 | #### Kubernetes(K8s) |
202 | | -- [官网](https://kubernetes.io/) |
| 210 | +- [官网 ](https://kubernetes.io/) |
203 | 211 | #### Mesos |
204 | | -- [官网](http://mesos.apache.org/) |
| 212 | +- [官网 ](http://mesos.apache.org/) |
0 commit comments