SpringCloud微服务技术(一)——了解微服务架构以及项目搭建
了解微服务架构以及项目搭建
微服务架构:SpringCloud
什么是微服务
微服务架构是一种架构模式,它提倡将单一应用程序划分成一组小的服务,服务之间相互协调、互相配合,为用户提供最终价值。每个服务运行在其独立的进程中,服务和服务之间采用轻量级的通信机制相互沟通(通常是基于HTTP的Restful API).每个服务都围绕着具体的业务进行构建,并且能够被独立的部署到生产环境、类生产环境等。另外,应尽量避免统一的、集中的服务管理机制,对具体的一个服务而言,应根据业务上下文,选择合适的语言、工具对其进行构建。
微服务和分布式的关系和区别
区别
- 从概念理解,分布式服务架构强调的是服务化以及服务的分散化,微服务则更强调服务的专业化和精细分工;
- 从实践的角度来看,微服务架构通常是分布式服务架构,反之则未必成立。所以,选择微服务通常意味着需要解决分布式架构的各种难题;
- 微服务与分布式的细微差别是,微服务的应用不一定是分散在多个服务器上,他也可以是同一个服务器;
微服务重在解耦合,使每个模块都独立。分布式重在资源共享与加快计算机计算速度。分布式:分散压力。微服务:分散能力
关系
分布式是否属于微服务
不一定,如果一个很大应用,拆分成三个应用,但还是很庞大,虽然是分布式,但不是微服务。微服务核心要素是微小,更加强调单一职责、轻量级通信(HTTP)、独立性并且进程隔离。
微服务架构是分布式服务架构的子集。
微服务架构通过更细粒度的服务切分,使得整个系统的迭代速度并行程度更高,但是运维的复杂度和性能会随着服务的粒度更细而增加。
微服务和SpringCloud的区别
微服务只是一种项目的架构方式,或者说是一种概念,就如同我们的MVC架构一样, 那么Spring-Cloud便是对这种技术的实现。
微服务要面临的问题
- 业务拆分和相关业务数据库拆分
- 监听服务有没有宕机
- 负载均衡 --nginx, ribbon
- 熔断,限流,降级 -hystrix
- 网关,路由,过滤 -zuul
- 服务注册和发现 – Eureka zookeeper
微服务面临的这些的问题,SpingCloud提供了相应的方案来解决
SpingCloud项目搭建
因为spring-cloud是基于spring-boot项目来的,所以我们项目得是一个spring-boot项目,这里要注意的一个点是spring-cloud的版本与spring-boot的版本要对应下图:
创建并配置某业务服务模块
1.先创建一个maven空项目
2.在此项目上新建module
3.pom.xml文件配置
父pom.xml文件
User模块pom文件引入boot,cloud,eureka,feign,hystrix依赖
4.创建main方法
application.yml配置
创建并配置eureka服务端
1.创建eureka模块
2.Pom文件引入相关配置
3.创建模块启动类,引入对应注解
4.application.yml配置
结果展示
启动eureka服务,user服务,在浏览器上查看结果