springcloud alibaba
文章平均质量分 66
The Old Captain
这个作者很懒,什么都没留下…
展开
-
用SpringCloud Alibaba搭建属于自己的微服务(三十九)~自动化运维~使用jenkins为微服务提供一键部署(完结篇)
一.概述自动化运维可以让我们在部署我们服务的时候更加的迅速和简洁.二.jenkins的安装jenkins的安装比较简单,网上有大量的博客,这里推荐一篇优质的博客.https://www.jianshu.com/p/c517f09df025三.微服务部署一键化1.新建任务2.选择创建maven项目3.添加构建时要输入的参数,参数为微服务的名称4.加入源码管理,填入我们工程的源代码地址5.设置maven构建的pom和打包完成后要执行的脚本6.进入linux服务器的 /usr/li原创 2020-08-27 18:59:24 · 885 阅读 · 1 评论 -
用SpringCloud Alibaba搭建属于自己的微服务(三十八)~业务开发~下订单核心接口加入seata做分布式事务
一.概述我们这个ccm-mall工程,核心接口就是下订单接口,在之前的章节已经讲解过,该接口涉及了四个微服务server-user、server-goods、server-pay和server-order.本章节我们将该接口加入seata分布式事务,保证在异常情况下的数据一致性.二.server-user、server-goods、server-pay和server-order集成seata.1.server-user、server-goods、server-pay和server-order的pom中原创 2020-08-27 16:59:14 · 496 阅读 · 1 评论 -
用SpringCloud Alibaba搭建属于自己的微服务(三十七)~基础搭建~alibaba seata客户端(TM和RM)的集成
一.概述上一个章节已经讲解了seata服务端,也就是seata中TC、TM和RM概念中的TC的部署,本章节讲解seata客户端也就是TM和RM的集成.虽然分TM和RM,但是这是逻辑上的概念,在实质的集成中,TM和RM的集成方式是一样的.以server-user服务和server-pay为例集成.server-user为TM,server-pay为RM.二.server-user集成seata1.server-user.pom中加入相关依赖.<dependency> <gro原创 2020-08-27 15:05:12 · 587 阅读 · 0 评论 -
用SpringCloud Alibaba搭建属于自己的微服务(三十六)~基础搭建~alibaba seata以nacos作为注册和配置中心的服务端安装
一.下载工作1.下载seata1.2的服务端jar包,上传至linux服务器https://github.com/seata/seata/releases/tag/v1.2.02.下载seata的资源包,里面包含数据库脚本和运行脚本等,上传至linux服务器https://github.com/seata/seata/tags二.seata服务端的部署1.建立seata服务端所需要的数据库2.建立seata服务端所需要的表(1).数据库脚本文件:seata-1.2.0/script/原创 2020-08-27 13:55:37 · 425 阅读 · 0 评论 -
用SpringCloud Alibaba搭建属于自己的微服务(三十五)~基础搭建~alibaba seata介绍
一.概述在上个章节中我们已经完成了这个商城的核心功能,下单.下单接口涉及了4个微服务,那么就一定存在分布式事务的问题,在分布式事务框架完善以前,企业里面处理分布式带来的事务问题时,一般都是人肉反向sql的方式去处理,我们这里引入alibaba seata给我们提供分布式事务的功能.二.介绍1.alibaba seata官网:https://seata.io/zh-cn/docs/user/configurations.html.2.seata是什么?3.seata的事务模式.模式含义原创 2020-08-21 13:33:21 · 419 阅读 · 0 评论 -
用SpringCloud Alibaba搭建属于自己的微服务(三十四)~业务开发~下订单核心接口开发
一.概述之前章节开发的接口都是为了下订单接口的开发做了铺垫,下订单的接口内部将调用这些接口,是一个涉及到4-5个微服务的重量级接口.二.下订单接口伪代码可以看到该接口涉及的微服务有:server-user、server-goods、server-pay和server-order服务.三.新建server-order微服务1.创建maven工程.2.server-order.pom中引入maven依赖.<dependencies> <dependency&g原创 2020-08-20 15:37:28 · 583 阅读 · 1 评论 -
用SpringCloud Alibaba搭建属于自己的微服务(三十三)~业务开发~支付接口开发
一.概述本文本打算接入微信支付和支付宝支付作为讲解,但是没有弄到微信和支付宝的商户账户.所以支付将只会讲解扣除账户余额的方式.二.新建server-pay微服务1.创建server-pay的maven工程.2.引入maven工程依赖. <dependencies> <dependency> <groupId>com.ccm</groupId> <artifactId>ass原创 2020-08-20 10:19:16 · 540 阅读 · 0 评论 -
用SpringCloud Alibaba搭建属于自己的微服务(三十二)~业务开发~扣款接口开发
一.准备工作1.user.user_info表增加account_money(账户金额)字段(真是的业务场景一般是建一张user_account的表,这里为了简单,博客都是以技术讲解为主,业务简单化做支撑).2.user.user_info表实体映射也增加accountMoney字段.package com.ccm.server.user.dao.mysql.domain;import lombok.Data;import java.util.Date;/** * @Descript原创 2020-08-19 14:13:08 · 351 阅读 · 0 评论 -
用SpringCloud Alibaba搭建属于自己的微服务(三十一)~业务开发~查看商品信息接口开发
一.业务代码1.控制层(1).GoodsControllerpackage com.ccm.server.goods.controller;import com.ccm.common.exception.result.ResultSet;import com.ccm.server.goods.controller.req.ReduceStockReq;import com.ccm.server.goods.dao.mysql.domain.GoodsSku;import com.ccm.se原创 2020-08-18 16:58:48 · 211 阅读 · 0 评论 -
用SpringCloud Alibaba搭建属于自己的微服务(三十)~业务开发~扣库存接口开发
一.概述这一个章节开始讲解商品扣库存.二.新建微服务server-goods1.创建server-goods的maven工程.2.server-goods.pom中引入mysql依赖.<dependencies> <dependency> <groupId>com.ccm</groupId> <artifactId>assembly-mysql</artifactId>原创 2020-08-13 16:10:08 · 478 阅读 · 0 评论 -
用SpringCloud Alibaba搭建属于自己的微服务(二十七)~业务开发~jwt实现用户登录
一.server-user服务中加入jwt的maven依赖和工具类.<dependency> <groupId>com.auth0</groupId> <artifactId>java-jwt</artifactId> <version>2.2.0</version></dependency>package com.ccm.server.user.util;import com原创 2020-08-06 16:51:20 · 594 阅读 · 0 评论 -
用SpringCloud Alibaba搭建属于自己的微服务(二十二)~基础搭建~alibaba sentinel整合nacos做配置持久化
一.概述我们不难发现,如果我们重启服务或者sentinel控制台,sentinel上面的配置就会被清空,原因是sentinel默认是没有集成配置持久化的,本章节我们讲解sentinel整合nacos做配置的持久化.二.sentinel整合nacos做配置持久化.1.sentinel官方文档:https://github.com/alibaba/spring-cloud-alibaba/wiki/Sentinel.可以看到已经给了我们整合nacos做配置持久化的式例.2.nacos上新建senti原创 2020-08-03 22:28:46 · 505 阅读 · 0 评论 -
用SpringCloud Alibaba搭建属于自己的微服务(二十一)~基础搭建~alibaba sentinel热点规则和系统规则
一.概述sentinel的核心功能是限流、熔断和降级,其他的功能列入热点规则、系统规则也是限流、熔断和降级的另外一种配置形式,所以本章节只会以文字的方式简单叙述,不会也没有必要做详细的讲解.二.热点规则1.热点规则其实就是颗粒度更小的限流.2.和流控规则的区别.可以看出除了增加了参数索引、参数例外项,其他的配置和限流一模一样,但是热点规则颗粒度精确到了请求的参数级别,可以根据你是否带了某个参数或者某个参数是否为特定值来判断需不需要限流.三.系统规则1.系统规则就是颗粒度更大的限流,一种系统自原创 2020-08-03 13:48:12 · 320 阅读 · 1 评论 -
用SpringCloud Alibaba搭建属于自己的微服务(二十)~基础搭建~alibaba sentinel降级
一.概述.其实不是有了sentinel才有了降级这个名词,只是sentinel也提供了降级功能,很多组件和框架也提供了降级功能,比如springmvc的全局异常处理器,nginx配置404.html页面,这些都属于降级功能.思想都是在发生错误时,尽可能提供更加友好的视图给用户.二.sentinel提供的降级功能snetinel提供的熔断和限流功能,在触发后,会抛出以BlockException为父类的异常,之后sentinel会根据配置的降级规则进行异常捕获并且降级.1.sentinel降级的方式原创 2020-08-03 11:39:29 · 473 阅读 · 0 评论 -
用SpringCloud Alibaba搭建属于自己的微服务(十九)~基础搭建~alibaba sentinel熔断
一.概述熔断:当满足某个特定条件的时候,触发熔断,在熔断的时间内,接收到的请求将不会得到处理,而是快速失败响应给客户端.sentinel提供了熔断功能,且熔断策略有三种:RT、异常比例和异常数量.二.sentinel的熔断1.sentinel的熔断策略.熔断策略含义RT平均响应时间超出阈值且在时间窗口内通过的请求数量>=5,两个条件同时满足后触发降级,窗口期过后关闭断路器异常比例(秒级统计比例)qps>=5且异常比例(秒级统计)超过阈值时,触发断路器;时间原创 2020-07-30 15:29:46 · 399 阅读 · 0 评论 -
用SpringCloud Alibaba搭建属于自己的微服务(十八)~基础搭建~alibaba sentinel限流
一.概述sentinel提供了限流的功能,本章节讲解如何使用sentinel对我们开发的接口进行限流.二.sentinel限流1.server-user服务,加入了spring.cloud.sentinel和management的相关配置.(1)management.endpoints.web.exposure.include这个配置属于springboot Actuator,众所周知,这个包的主要作用是服务健康监控,提供了大量的接口,很多监控服务的组件比如nacos都是以调用这个包提供的一些接口实原创 2020-07-28 19:32:50 · 863 阅读 · 1 评论 -
用SpringCloud Alibaba搭建属于自己的微服务(十七)~基础搭建~alibaba sentinel服务端的安装
一.概述sentinel是一个熔断、限流和降级的框架,可以为我们的微服务提供熔断、限流和降级的功能,保证在高并发的情况下,我们能够保证系统的稳定,避免出现入服务雪崩等问题.二.服务端的安装1.sentinel的官网地址:https://github.com/alibaba/Sentinel/tags2.下载sentinel的jar包,这里我们按国际惯例,选择比最新版本低一个的版本.3.jar包上传至我们的linux服务器.4.java -jar sentinel-dashboard-1.7.1原创 2020-07-24 23:26:03 · 837 阅读 · 0 评论 -
用SpringCloud Alibaba搭建属于自己的微服务(十)~基础搭建~自定义异常、统一结果集和全局异常处理器
一.自定义异常体系1.背景在业务代码的开发中,往往会有这种情况,代码逻辑走到某一步,通过if的判断发现程序的逻辑无法继续往下面走了,否则会有一定的问题,这时候我们需要抛出异常组织程序往下进行,快速响应这个请求,并且回滚事物,这就是我们的自定义异常体系.2.设计如何设计自定义异常体系,需要我们对自身系统的业务有一定的了解,例如一个商城,可能会有以下的自定义异常.异常场景OrderException.class订单业务发生异常PayException.class支付业务发原创 2020-07-15 10:40:05 · 992 阅读 · 1 评论 -
用SpringCloud Alibaba搭建属于自己的微服务(九)~基础搭建~参数校验框架的使用
一.概述在我们设计接口时,往往在逻辑最开始的地方,我们首先面临的就是参数校验,之后才是整体的业务逻辑实现.例如,通过手机号和验证码实现注册功能的接口,首先需要做的就是对手机号进行正则校验,验证码的长度是否正确.在我们引入参数校验框架之后,这些事情可以不用编码,直接使用注解就能完成参数校验框架了.二.使用1.@valid和校验注解的使用姿势(1)例如一个用户注册的接口,有用户名和密码,我们需要对其进行非空校验.(2)代码package com.ccm.server.user.controller;原创 2020-07-10 14:15:43 · 650 阅读 · 0 评论 -
用SpringCloud Alibaba搭建属于自己的微服务(八)~基础搭建~springboot整合swagger接口文档
一.概述swagger接口文档是根据我们编写的controller自动生成,我只需要在接口上加上特定的注解,启动服务后,就直接可以在web页面上进行接口的调试.二.springboot整合swagger1.pom依赖(1).ccm-mall.pom的 <dependencyManagement/>中加入以下依赖,声明版本号.<!--swagger相关--><dependency> <groupId>io.springfox</grou原创 2020-07-08 17:54:17 · 665 阅读 · 0 评论 -
用SpringCloud Alibaba搭建属于自己的微服务(七)~基础搭建~springboot整合druid和mybatisPlus
一.pom文件1.ccm-server.pom<dependencyManagement> <dependencies> <!--mysql相关--> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot原创 2020-07-08 16:52:34 · 1061 阅读 · 0 评论 -
用SpringCloud Alibaba搭建属于自己的微服务(五)~基础搭建~cloud、cloud alibaba和boot的版本选择
a原创 2020-07-08 16:32:10 · 1920 阅读 · 0 评论 -
用SpringCloud Alibaba搭建属于自己的微服务(六)~基础搭建~启动第一个springboot工程server-user
一.springcloud和springboot版本对照1.springcloud的版本号以英国伦敦地铁站命名,截止到现在,已经到了H版本了.2.springboot版本以数字命名,我最常用的就是2.x.x版本.3.所以我们以先选择springcloud版本来决定springboot的版本,这里springcloud的版本选择Hoxton.SR1版本,对应的springboot版本是2.2.2.RELEASE.4.springcloud和springboot的版本对照表项目Value原创 2020-07-08 16:36:27 · 765 阅读 · 0 评论 -
用SpringCloud Alibaba搭建属于自己的微服务(四)~基础搭建~maven工程管理
一.maven工程结构二.ccm-mall1.项目的顶级父工程,负责maven依赖的版本管理.三.assembly(组件)1.该工程对引用的第三方组件进行管理,这样微服务需要用到的组件直接引入我们自己的依赖就可以了.2.比如使用alibaba的德鲁伊作为持久层框架时,服务需要引入三个pom依赖,现在只需要引入assembly-mysql的依赖就可以了,因为assembly-mysql引入了德鲁伊的三个相关依赖,统一维护.四.common(公共)1.工程负责整合一些通用的类,比如之后我们的微服原创 2020-07-04 00:15:01 · 1210 阅读 · 3 评论 -
用SpringCloud Alibaba搭建属于自己的微服务(二)~技术选型
一.概述技术选型的业务场景是以高并发为前提订单业务,所以使用分布式微服务架构,提升系统的并发量.二.技术选型思想落地业务数据库mysql内存数据库redis文档数据库elasticsearch消息中间件kafka反向代理服务器nginx开发框架springboot服务网关springcloud gateway服务限流springcloud alibaba sentinel服务熔断springcloud alibaba原创 2020-07-02 15:30:54 · 1270 阅读 · 2 评论 -
用SpringCloud Alibaba搭建属于自己的微服务(一)~产品需求
一.概述本文章以简单版本的下订单业务作为支撑,讲解从0开始搭建微服务,主要使用springcloud alibaba,适合中级java开发学习和参考.二.产品需求1.用户登录和注册2.用户下订单和支付3.用户活跃度统计...原创 2020-07-02 14:56:53 · 753 阅读 · 0 评论