“微服务“只是众多架构设计理念的一种。它提倡把一个庞大的、复杂的应用系统进行切割,让其适合多个小的开发团队进行快速开发部署。每个小模块之间耦合度底,同时尽量满足接口走垂直调用,不要进行交叉调用。
其次,我们聊聊它的适应场所。
很多架构设计人员或者技术人员一听到这个是新理念就激动不安,不考虑实际就想使用。实际的经验告诉我说:如果你的系统单日访问不到一亿,如果你的团队研发人员不足,那请你还是不要使用这套体系!因为这套体系需要配套的一些系统和组件支持!开源项目都吹嘘自己可以做到这个那个,但是真正应用到自己实际的项目里还需要花很多时间去研究。
接着,我们聊聊微服务的技术选型。
当前适合做微服务开发的开源项目很多。比如:spring家族的SpringBoot,Dubbo和Dubbox(主要区别是后者支持Rest),新浪的motan等等。SpringBoot优点就是不要自己做配置,搭建非常快,比较精简;缺点就是当前还不是很稳定,需要自己填的坑有点多。Dubbo的话缺点就是太笨重(本身它就是采用框架的思路设计的,想大而全);优点就是资料全面,国人开发要的,需要处理的问题能快速找到方案。motan可以说是简版的dubbo,但是作者在开发项目的时候可惜这个还没有正式开源出来。所以我们选择的还是保守的dubbox。后续文章也是围绕dubbox展开。
最后,我们聊聊使用微服务应该有哪些基础能力.
如果想在正式环境中使用微服务,首先你应该建立如下能力:
1)服务注册发现
2)服务 限流、熔断、治理等
3)集中配置管理
4)持续集成、自动化部署
5)服务监控报警
6)链路分析
7)统一日志分析平台
8)大数据分析平台
9)安全体系