Skip to content

Commit 8eb547e

Browse files
authored
docs(from-readers): add an article about micro service
Service governance
1 parent 6f1abaf commit 8eb547e

1 file changed

Lines changed: 102 additions & 0 deletions

File tree

Lines changed: 102 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,102 @@
1+
# 微服务治理策略
2+
3+
- Author: [HuiFer](https://github.com/huifer)
4+
- Description: 该文简单介绍微服务的治理策略以及应用技术
5+
6+
## 服务的注册和发
7+
8+
> 解决问题: 集中管理服务
9+
10+
> 解决方法: eureka 、zookeeper
11+
12+
## 负载均衡
13+
14+
> 解决问题: 降低服务器硬件压力
15+
16+
> 解决方法: nginx 、 Ribbon
17+
18+
19+
## 通讯
20+
21+
> 解决问题: 各个服务之间的沟通桥梁
22+
23+
> 解决方法 :
24+
> - 同步消息
25+
> 1. rest
26+
> 1. rpc
27+
> - 异步消息
28+
> 1. MQ
29+
30+
## 配置管理
31+
32+
> 解决问题: 随着服务的增加配置也在增加,如何管理各个服务的配置
33+
34+
> 解决方法: nacos 、 spring cloud config 、 Apollo
35+
36+
## 容错和服务降级
37+
38+
> 解决问题: 在微服务当中,一个请求经常会涉及到调用几个服务,如果其中某个服务不可以,没有做服务容错的话,极有可能会造成一连串的服务不可用,这就是雪崩效应.
39+
40+
> 解决方法: hystrix
41+
42+
## 服务依赖关系
43+
44+
> 解决问题: 多个服务之间来回依赖,启动关系的不明确
45+
46+
> 解决方法:
47+
48+
> 1. 应用分层: 数据层,业务层 数据层不需要依赖业务层,业务层依赖数据,规定上下依赖关系避免循环圈
49+
50+
## 服务文档
51+
52+
> 解决问题: 降低沟通成本
53+
54+
> 解决方法: swagger 、 java doc
55+
56+
## 服务安全问题
57+
58+
> 解决问题: 敏感数据的安全性
59+
60+
> 解决方法: oauth 、 shiro 、 spring security
61+
62+
## 流量控制
63+
64+
> 解决问题: 避免一个服务上的流量过大拖垮整个服务体系
65+
66+
> 解决方法: Hystrix
67+
68+
## 自动化测试
69+
70+
> 解决问题: 提前预知异常,确定服务是否可用
71+
72+
> 解决方法: junit
73+
74+
## 服务上线,下线的流程
75+
76+
> 解决问题: 避免服务随意的上线下线
77+
78+
> 解决方法: 新服务上线需要经过管理人员审核.服务下线需要告知各个调用方进行修改,直到没有调用该服务才可以进行下线.
79+
80+
## 兼容性
81+
82+
> 解决问题: 服务开发持续进行如何做到兼容
83+
84+
> 解决方法: 通过版本号的形式进行管理,修改完成进行回归测试
85+
86+
## 服务编排
87+
88+
> 解决问题: 解决服务依赖问题的一种方式
89+
90+
> 解决方法: docker & k8s
91+
92+
## 资源调度
93+
94+
> 解决问题: 每个服务的资源占用量不同,如何分配
95+
96+
> 解决方法: JVM 隔离、classload 隔离 ; 硬件隔离
97+
98+
## 容量规划
99+
100+
> 解决问题: 随着时间增长,调用逐步增加,什么时候追加机器
101+
102+
> 解决方法: 统计每日调用量和响应时间, 根据机器情况设置阈值,超过阈值就可以追加机器

0 commit comments

Comments
 (0)