最近休息时间抽空学了一下springcloud微服务框架,对这款框架学完发现还是有些点可以分享的。微服务架构已经不算什么新潮的框架了,早在2015年的时候就已经出现微服务的概念了。目前市面上比较热门的就是阿里巴巴的dubbo和 springcloud这两款了。我是先接触dubbo的所以这次学习感觉很轻松。

一、什么是微服务

很多朋友如果还没有接触过微服务的项目或者第一次听说这个词的时候我觉得第一个需要搞清楚的就是这个概念。

我首先可以说微服务系统可以简单的理解为分布式系统,分布式系统就是强调将一个原本独立的系统拆分成多个小型服务,这些小型服务在各自的独立进程中运行,服务之间基于http的restful API 进行通信协作。

二、 服务器架构的优缺点

1、那么根据微服务的概念将系统拆分成多个模块/服务.这些服务进行独立的开发和部署,每一个服务都运行在自己的进程内,这样服务于服务之间是相互独立的。那我也可以说某种程度上为代码解耦合了(这样理解我不知道准不准确)
2、再者谈由于服务之间独立的,那我们在开发中就可以独立进行开发,减少了代码的冲突,逻辑处理更加的清晰,后续维护与扩展更加容易了。试想一个商城系统包含的用户模块 、订单模块 、 商品模块 那我们开发中订单模块的人员是不是只需要注重订单业务的实现,统一提供对外的接口 ,大大降低开发的成本。
3、第三点 微服务架构是支持 多语言开发的。什么意思 还是上面的例子 用户模块可以java语言 ,订单模块可以PHP开发 。
其实不止这些还有,当然微服务的系统也是有一些缺陷的。
1、微服务架构增加了系统维护、部署的难度。导致一些功能模块或代码无法复用
2、如果一个系统规模特别庞大,微服务在一定程度上其实让系统变得越来越复杂。增加集成测试的复杂度。
3、数据一致性的问题,这一种情况出现在商城居多。这个也是springcloud微服务框架所无法避免的一个问题。

三、 springcloud来构建微服务

这一块我觉得详细阐述,从springcloud框架的技术实现上和具体一个springcloud的简单测试项目上面简绍springcloud这个框架来构建微服务。

1、springcloud对于微服务的技术支持
http://martinfowler.com/articles/microservices.html(马丁-福勒原文) https://www.martinfowler.cn/articles/microservices.html(中文翻译版)

springcloud提供了服务的注册于发现、服务调用、分布式配置管理、负载均衡、服务熔断、API网关、批量任务、服务跟踪等等。

微服务框架 Helidon 微服务框架是什么意思_spring


Service Provider: 暴露服务的服务提供方。

Service Consumer:调用远程服务的服务消费方。

EureKa Server: 服务注册中心和服务发现中心。

微服务的概念/SpringCloud框架简单的认识说到这里。后面详细从SpringCloud提供的这个技术上面通过实例来说明在项目中怎么使用。