高可用 高性能
数据尽量少
- 数据多,跟DB打交道多,所以耗时会变长
请求数尽量少
- 一个页面请求的任何资源都算请求
路径要尽量短
- 缩短路径不仅可以提升可用性,还可以提升性能
- 如何让路径短呢? 一种办法是让跨JVM的RPC远程调用改为JVM内部调用
依赖尽量少
- 重要系统尽量不要依赖非重要系统
不要有单点
- 如何避免单点呢?关键点是避免将服务的状态和机器绑定,即把服务无状态化,这样服务就可以在机器中随意移动
那么如何把服务的状态和机器解耦呢?也有很多实现方式。例如把和机器相关的配置动态化,这些参数可以通过配置中心来动态推送,在服务启动时动态拉取下来,我们在配置中心设置一些规则来方便的改这些映射关系
- 应用无状态化是避免单点的有效方式。但是存储服务本身很难无状态化。因为数据要存储在磁盘上,本身就要和机器绑定,那么这种场景