springcloud gateway_谈springcloud微服务妙处

0c052dfa71ab9ff55b3629c9b9c95562.png

怎么说呢?今天搞一个分库分表,感觉微服务有挺多妙处的,实现一个电商流程、通过一个微服务框架:springcloud+springboot+mysqlbatis集成的一个bladex大型系统框架,实现集权的管理,我大概从以下四点谈谈呗!

一、整体思路:

参考https://blog.csdn.net/wohiusdashi/article/details/83957989

在介绍微服务时,首先得先理解什么是微服务,顾名思义,微服务得从两个方面去理解,什么是"微"、什么是"服务", 微 狭义来讲就是体积小、著名的"2 pizza 团队"很好的诠释了这一解释(2 pizza 团队最早是亚马逊 CEO Bezos提出来的,意思是说单个服务的设计,所有参与人从设计、开发、测试、运维所有人加起来 只需要2个披萨就够了 )。 而所谓服务,一定要区别于系统,服务一个或者一组相对较小且独立的功能单元,是用户可以感知最小功能集。....

二、关键词解说。

1、Nacos是阿里巴巴开源的一款支持服务注册与发现,配置管理以及微服务管理的组件。用来取代以前常用的注册

中心(zookeeper , eureka等等),以及配置中心(spring cloud config等等)。Nacos是集成了注册中心和配

置中心的功能,做到了二合一。

2、Sentinel是面向分布式服务框架的轻量级流量控制框架,主要以流量为切入点,从流量控制,熔断降级,系统负载保护

等多个维度来维护系统的稳定性

三、demo案例

1、工具:后端使用 IntelliJ IDEA 、前端使用 IntelliJ WebStorm

2、环境:JDK: 1.8 、Maven: 3.3+ 、MySql: 5.7+ 、Redis: 4.0+ 、Nacos: 1.1.3+ 、Sentinel: 1.5.0+ 、Node Js: 10.15.0+ 、Npm: 5.6.0+

3、两个工程springcloud、BIZ工程

一、springcloud工程

1. 先启动 redis 、 mysql 、 nacos 、 sentinel 等基础服务

2. 启动除 blade-gateway 之外的项目

3. 最后启动 blade-gateway

7个启动类:认证Auth、Des加密、网关CateWay、日记log、资源库resource、用户

er、系统System

二、BIZ工程

启动你需要的子系统、在o

三、数据库。

一个主库bladex、biz子库

四、说说我的感受呗!!

整体来说把微服务当做大型大型三角型、

一个全能代码生成器的业务生成、一个springcloud微服务框架、一个团队管理业务子系统的BIZ工程、最后是一个分库分表构成完成正方形微服务中心。

  • 小:微服务体积小,2 pizza 团队。
  • 独:能够独立的部署和运行。
  • 轻:使用轻量级的通信机制和架构。
  • 松:为服务之间是松耦合的。

Spring Boot:

旨在简化创建产品级的Spring应用和服务,简化了配置文件,使用嵌入式web服务器,含有诸多开箱即用微服务功能,可以和spring cloud联合部署。

Spring Cloud:

微服务工具包,为开发者提供了在分布式系统的配置管理、服务发现、断路器、智能路由、微代理、控制总线等开发工具包。

注意:

一、2.4 Swagger

简介

由于架构革新,进入了前后端分离,服务端只需提供RESTful API的时代。

而构建RESTful API会考虑到多终端的问题,这样就需要面对多个开发人员甚至多个开发团队。

为了减少与其他团队对接的沟通成本,我们通常会写好对应的API接口文档。

从最早开始的word文档,到后续的showdoc,都能减少很多沟通成本,但随之带来的问题也比较麻烦。在

开发期间接口会因业务的变更频繁而变动,如果需要实时更新接口文档,这是一个费时费力的工作。

为了解决上面的问题,Swagger应运而生。他可以轻松的整合进框架,并通过一系列注解生成强大的API文

档。他既可以减轻编写文档的工作量,也可以保证文档的实时更新,将维护文档与修改代码融为一体,是目

前较好的解决方案。

常用注解

@Api()用于类;

表示标识这个类是swagger的资源

@ApiOperation()用于方法;

表示一个http请求的操作

@ApiParam()用于方法,参数,字段说明;

表示对参数的添加元数据(说明或是否必填等)

@ApiModel()用于类

表示对类进行说明,用于参数用实体类接收

@ApiModelProperty()用于方法,字段

表示对model属性的说明或者数据操作更改

@ApiIgnore()用于类,方法,方法参数

表示这个方法或者类被忽略

@ApiImplicitParam() 用于方法

表示单独的请求参数

@ApiImplicitParams() 用于方法,包含多个 @ApiImplicitParam

二、 BladeX

├── blade-auth -- 授权服务提供

├── blade-common -- 常用工具封装包

├── blade-gateway -- Spring Cloud 网关

├── blade-ops -- 运维中心

├ ├── blade-admin -- 服务监控

├ ├── blade-develop -- 代码生成

├ ├── blade-flow -- 工作流

├ ├── blade-flow-design -- 工作流设计器

├ ├── blade-log -- 日志模块

├ ├── blade-resource -- 资源模块

├ ├── blade-turbine -- 监控控制台

├ ├── blade-xxljob -- 分布式任务调度

├ ├── blade-xxljob-admin -- 分布式任务调度后端

├ └── blade-zipkin -- 分布式链路追踪

├── blade-service -- 业务模块

├ ├── blade-desk -- 工作台模块

├ ├── blade-system -- 系统模块

├ └── blade-user -- 用户模块

├── blade-service-api -- 业务模块api封装

├ ├── blade-desk-api -- 工作台api

├ ├── blade-dict-api -- 字典api

├ ├── blade-scope-api -- 数据权限api

├ ├── blade-system-api -- 系统api

└── └── blade-user-api -- 用户api

三、导入json配置文件到postman,直接调用oauth2的token接口

https://sns.bladex.vip/article-14982.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值