微服务spring-cloud 学习第一天
了解微服务
微服务架构风格是一种将单一应用程序开发为一组小型服务的方法,每个服务运行在自己的进程中,
服务间通信采用轻量级通信机制(通常使用HTTP)。这些服务围绕业务能力构建并且可通过自动部署机制
独立部署。这些服务公用一个最小型的集中式的管理,服务可用不同的语言开发,使用不同的数据存储技
术。
微服务总结
- 每个微服务可独立运行在自己的进程中。
- 一系列独立运行的微服务构建了整个系统。
- 每个服务独立开发,只关注自己的业务。
- 微服务通过轻量级的通信机制,RESTfulApi。
- 可以使用不同的语言。
- 全自动的部署机制。
微服务优点
- 易于开发和维护,一个微服务只关注特定的功能。
- 单个微服务启动时间快速。
- 局部容易修改容易部署,某个模块出了问题只需要发布当前服务就行。单体应用是需要发布整个应用。
- 技术不受限制,例如:某个模块需要使用MySql数据库,某些模块需要使用Oracle数据库
- 可根据需求,实现细粒度的扩展。例如:某个服务遇到瓶颈可增加内存或者增加节点等
微服务缺点
- 运维成本增加。单体应用只需要保证一个应用正常就行,微服务需要保障多个甚至几十上百个。
- 分布式固定的复杂性,网络延迟、系统容错等情况。
- 接口调整成本高,如果某个接口修改了入参或者返回的类型,那么所有调用该接口的都需要修改。(可使用Json)
微服务设计原则
- 单一职责原则
单一职责原则指的是一个单元(类、方法或者服务等)只应关注整个系统功能中单独、有界限的一部分。单一职责原则可以帮助我们更优雅的开发、更敏捷的交付。 - 服务自治原则
服务自治原则是指每个微服务应具备独立的业务能力、依赖于运行环境。在微服务架构中,服务是独立的单元,应该与其他服务高度解耦。每个服务从开发、测试、构建、部署,都应当独立完成。 - 轻量级通信机制
微服务之间应该通过轻量级的通信机制进行交互。常用协议有REST、AMQP、STOMP(STOMP,Streaming Text Orientated Message Protocol,是流文本定向消息协议,是一种为MOM(Message Oriented Middleware,面向消息的中间件)设计的简单文本协议。其中最流行的STOMP消息代理是Apache ActiveMQ。)、MQTT等. - 微服务粒度
微服务的粒度是难点,也常常是争论的焦点。应当合理的去划分微服务粒度,而不是一味的把服务做小。代码量的多少不能作为微服务的依据。因为微服务本身的业务复杂度不同,代码量也会不同。微服务架构
目前市面上有SpringCloud 和dubbo等,后面笔者会写着两种。
作者:诗和远方
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.