SpringCloud入门
--by RubyJean
什么是微服务?
简单地说, 微服务是系统架构上的 一 种
设计风格, 它的主旨是将 一 个原本独立的
系统拆分成多个小型服务,这些小型服务都
在各自独立的进程中运行,服务之间通过基
于HTTP的RESTful API进行通信协作。
微服务的九大特征:
• 1.服务组件化
每个服务都独立开发、部署,可有效避免
一个服务的修改引起整个系统的重新部署。
举个栗子:就像 PC 中的 CPU、 内存、
显卡、 硬盘 一样, 独立且可以更换升级而
不影响其他单元
2.按业务组织团队
• 以往对团队的划分多是从技术层面,比
由于每 一 个微服务都是针对特业务的宽
如分为DBA团队,运维团队、后端团队、
栈或是全栈实现, 既要负责数据的持久化
前端团队、设计师团队等。
储, 又要负责用户的接口定义等各种跨专
举个栗子,如果对人物描述增加 一 个
业领域的职能。
字段, 这需要从数据存储开始考虑 一 直到
对于微服务团队的拆分更加建议按业
设计和前端, 虽然大家的修改都非常小,但
务线的方式进行拆分, 方面可以有效减少
服务内部修改所产生的内耗;另 一 方面,
这会引起跨团队的时间耗费和预算审批
团队边界可以变得更为清晰。
3.做产品的态度
很多时候,一 些业务中发生的特殊或异
常情况,很可能产品经理都并不知晓,但细
心的开发者很容易通过生产环境发现这些特
殊的潜在问题或需求。
所以, 我们需要用做“ 产品 ”的态度来
对待每 一 个微服务, 持续关注服务的运行
情况,并不断分析以帮助用户来改善业务功
能。
4.智能端点和哑管道
在单体应用中, 组件间直接通过函数调
在微服务架构中, 通常会使用以下两种服
用的方式进行交互协作。
务调用方式:
第 一 种, 使用 HTTP 的 RESTful API 或轻量
而在微服务架构中,由于服务不在 一 个
级的消息发送协议, 实现信息传递与服务调用的
进程中, 组件间的通信模式发生了改变。
触发。
第二种, 通过在轻量级消息总线上传递消息,
类似 RabbitMQ 等 一 些提供可靠异步交换的中间
件。
5.去中心化管理
实施微服务时,通过采用轻量级的契约
定义接口,使得我们对于服务本身的具体技
术平台不再那么敏感,这样整个微服务架构
系统中的各个组件就能针对其不同的业务特
点选择不同的技术平台。
6.去中心化管理数据
在实施微服务架构时,都希望让每一个
服务来管理其自有的数据库,这就是数据管
理的去中心化。在去中心化过程中,除了将
原数据库中的存储内容拆分到新的同平台的
其他数据库实例中之外,还可将一些具有特
殊结构或业务特性的数据存储到一些其他技
术的数据库实例中。