SpringCloud 项目基础搭建与使用

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/believer123/article/details/78343323

微服务已经渐渐火起来了,现在到哪里都能听到这个词。在微服务方面SpringCloud算是很成熟的开源项目了。虽然项目中还没具体使用到,但是作为个人的学习拓展还是可以深入的学习的。

我眼中的微服务概念:将系统拆分成独立的多个模块,通过网关对外提供服务,模块之间可以互相调用。通过这样拆分就可以根据每个模块的访问情况进行动态配置服务数量,而不需要像之前的项目一样部署整个项目。

工程地址:https://gitee.com/cmlbeliever/springcloud 欢迎star

目前研究SpringCloud涉及到的组件

  • Zuul提供网关服务,用与对外开放接口,与请求转发
  • Feign用于各个模块之间调用
  • Eureka作为服务注册中心和服务端
  • Config作为配置中心,为各个模块提供配置服务

项目以最通用的用户与订单为例,搭建自己的微服务。项目结构如下:
这里写图片描述

外部访问要通过网关服务进行转发处理,服务内部调用是互相信任的,可以内部直接调用,但是不对外开放。

工程中个模块说明:

  • config-server 配置中心,作为其他服务配置中心。(工程中不使用Git而是使用本地文件服务。使用Git每次修正都需要上传到Git对于开发阶段来说过于繁琐)
  • eureka-server 服务注册中心
  • auth-service 授权认证服务,用户接口权限认证与授权。
  • order-service 订单服务
  • user-service 用户服务,目前已提供登录接口
  • api-getway 网关服务工程,使用Zuul对服务进行分发和权限校验,端口:7000

作为其他服务的配置提供者,配置中心是需要最新启动的,其次是服务注册中心(Eureka-Server)。这两个基础服务启动完成后其他服务可以同时启动。

服务注册中心启动后,本地访问:http://localhost:8761/ 就可以看到

这里写图片描述

表示服务已经启动,如果其他服务都启动完成后,可以看到一个服务列表。

服务网关对于一个微服务系统来说是对外服务的统一入口,其他服务只允许内部访问,禁止外部访问。通过服务网关进行请求转发或者其他业务处理。
1、此项目中调用用户相关的服务会转发到用户服务,并且对登录返回的token进行JWT数据加密,postman调用如下:只要用户名和密码一致就认为是登录成功

这里写图片描述
2、同时服务网关还提供自身的业务逻辑接口,获取用户信息和订单信息。调用/biz/zuul接口,通过Feign调用用户和订单服务,获取对应的信息后返回客户端。
这里写图片描述

代码已上传到码云:https://gitee.com/cmlbeliever/springcloud
(为什么不使用GitHub?因为经常访问不了,而且速度慢)

猜你喜欢

转载自blog.csdn.net/believer123/article/details/78343323
今日推荐