微服务 | 青训营笔记

104 阅读2分钟

这是我参与「第三届青训营 -后端场」笔记创作活动的第1篇笔记

什么是微服务

微服务提倡将单一应用程序划分成一组小的服务,服务之间互相协调、互相配合。每个服务运行在其独立的进程中,服务与服务间采用轻量级的通信机制互相沟通

微服务的好处

一个词:解耦

  1. 从团队角度来看,利于分工
  2. 从技术+业务角度来看,既然是解耦的,那么实现业务的编程语言也可以根据实际进行选型。作者最近在开发C++后台服务器,需要用到两个组件,但是一个组件默认使用了C++11的新特性,一个则禁用了C++的新特性,因此必须将使用C++11特性的组件在编译的时候取消C++11的新特性,而这带来了效率的下降以及不确定性的提升。
  3. 从运维角度看,修改特定组件不会影响其他组件的正常运行——否则需要整个项目停下来重新编译部署。

微服务的缺点

  1. 要花精力去解耦,解耦不当会增加成本。
  2. 会带来通信成本。

什么时候应该使用微服务

  1. 业务复杂度高。
  2. 对并发有要求时,此时可以很方便的拓展资源。
  3. 业务拆分时发现需要用到不同的技术栈。

常见的微服务框架

  1. Dubbo:Dubbo框架是由阿里巴巴开发的开源式的分布式服务化治理框架,它会通过RPC请求方式访问
  2. Spring Boot: Spring Boot的设计目的是简化新Spring应用初始搭建以及开发过程
  3. Spring Cloud:Spring Cloud是一系列框架的有序集合。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等。
  4. NameKko:Python的微服务框架。