微服务基础概念
微服务是什么?
马丁.福勒提出 微服务 的论文
微服务提倡将单一的应用程序划分为一组小的服务,彻底地耦合服务。而这些微小的服务在自己独立的进程中运行,甚至可以拥有自己独立的数据库。并且这些服务之间通过轻量级的机制(HTTP资源API)进行通信。
微服务之间的通讯方式?
- PRC
- Resulf
微服务和微服务架构之间的关系?
- 微服务强调的是服务的大小,是具体实现有一個业务点的服务应用,可以看做是Project中的某一个Module。
- 微服务架构是一种架构模式。每个服务围绕着具体业务进行构建,并且能够被独立部署到生产环境中。
微服务优缺点
优点
- 每个服务内聚,足够小,代码容易聚焦到指定的业务功能或者业务需求
- 能够被小团队进行开发
- 松耦合,开发到部署独立
- 能够使用不同的语言进行开发
- 微服务重点专注于业务逻辑的代码,不会和HTML、CSS,其他界面组件混合
- 每个微服务都有自己的存储能力
缺点
- 分发是系统的复杂性
- 多服务的维护难度大
- 系统部署依赖
- 服务之间通信的成本
- 系统的集成测试
- 性能监控
SpringCloud与微服务架构的区别
服务架构 | Spring Cloud | Motan | gRPC | Thrift | Dubbo/DubboX |
---|---|---|---|---|---|
功能定位 | 完整的微服务架构 | RPC | RPC | PRC | 服务架构 |
支持Rest | 是 | 否 | 否 | 否 | 否 |
支持PRC | 否 | 是 | 是 | 是 | 是 |
服务的注册与发现 | Eureka | zookeeper | 否 | 否 | 否 |
负载均衡 | Ribbon | 是 | 否 | 否 | 否 |
应用案例 | Netflix | Sina | 否 | 否 | 否 |