微服务概念讲解
微服务是按照业务功能做拆分:在更大的项目中可能会将代码封装在处理不同业务服务中,按功能将代码拆分成几个服务,每个服务都是可独立运行的。
在项目开发中,可能有一部分代码会在多个模块中频繁的被用到,这种复用性很高的模块常常会抽离出来作为公共服务使用,比如验证模块,当它要扩展功能(添加短信验证码登录等)时,
单一代码库的规模只增不减, 整个应用还需重新部署。在微服务架构中,验证模块可作为单个服务独立出来,能独立运行、测试和部署。
遵循微服务拆分代码的理念,能大大降低模块间的耦合性,横向扩展也会容易许多,正适合当下云计算的高性能、高可用和分布式的开发环境。
微服务是一种架构理念而不是具体的框架项目,许多编程语言都可以实现。
微服务之间通信
1)使用 HTTP 的 JSON 或 XML 协议进行通信
优点:数据易读,使用便捷,是与浏览器交互必选的协议
缺点:在数据量大的情况下 encode、decode 的开销随之变大,多余的字段信息导致传输成本更高
2)在两个微服务之间通信时,若彼此约定好传输数据的格式,可直接使用二进制数据流进行通信,不再需要笨重冗余的元数据。