![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
springcloud
文章平均质量分 78
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 · 854 阅读 · 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 · 469 阅读 · 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 · 560 阅读 · 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 · 399 阅读 · 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 · 399 阅读 · 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 · 534 阅读 · 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 · 514 阅读 · 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 · 328 阅读 · 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 · 187 阅读 · 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 · 457 阅读 · 0 评论 -
用SpringCloud Alibaba搭建属于自己的微服务(二十九)~业务开发~kafka+elasticSearch埋点采集原始数据
一.概述在实际的业务开发中,当我们的产品有了稳定的用户量,我们就会开始去做数据统计,针对用户的各种行为进行统计,拿到了这些数据,我们就可以针对性的开发新的功能,从而增加产品的盈利,为老板的保时捷添砖加瓦,为我们自己的项目奖金也提升一个档次.二.需求和实现逻辑这章节讲解统计用户的访问量,并把数据做持久化,我们采用在gateway网关出集成kafka,gateway收到一个请求,就往kafka中推送数据,server-user服务作为消息中间件的消费者接受数据并且持久化到elasticSearch这样的文原创 2020-08-12 11:14:02 · 1123 阅读 · 0 评论 -
用SpringCloud Alibaba搭建属于自己的微服务(二十八)~业务开发~gateway实现鉴权
一.概述gateway作为客户端访问微服务的统一入口,鉴权是一件绕不开的事情,在前后端完全分离的今天,通常都是采用jwt生成token,客户端每次请求的时候都会把token放在请求头,gateway做校验,token解密没有问题,gateway就会路由分发到对应的微服务.之前的两个章节已经完成了登录和注册,这个章节写二.server-user服务中加入解密token的接口.package com.ccm.server.user.controller;import com.auth0.jwt.JWT原创 2020-08-10 17:41:27 · 1100 阅读 · 1 评论 -
用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 · 572 阅读 · 0 评论 -
用SpringCloud Alibaba搭建属于自己的微服务(二十六)~业务开发~用户注册
一.创建用户表,写好domain、mapper和mapper.xml1.用户表.CREATE TABLE `user_info` ( `user_id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键', `username` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '用户名', `password` va原创 2020-08-06 15:52:54 · 306 阅读 · 0 评论 -
用SpringCloud Alibaba搭建属于自己的微服务(二十五)~基础搭建~gateway整合swagger接口文档
一.概述在springboot的单体工程中,整合swagger接口文档我们已经做好.现在加入了gateway网关了,所有的请求要是先经过gateway网关,gateway网关再路由转发到对应的微服务上.那么gateway整合所有微服务的swagger接口文档势在必行.二.整合的思路1.分析swagger接口文档的本质是,swagger的包中有html界面,也有实现了的接口,界面上访问这些接口获取到有所有接口的信息,并且模拟http请求.打开swagger的html界面,我们就可以看到这些接口.2原创 2020-08-05 11:27:26 · 1110 阅读 · 0 评论 -
用SpringCloud Alibaba搭建属于自己的微服务(二十四)~基础搭建~gateway网关实现路由转发
一.概述gateway作为网关,是服务端所有请求的入口,根据不同的路径路由到不同的微服务是核心功能之一.二.gateway网关实现路由转发1.gateway.pom中加入依赖.由于ccm-mall.pom顶级父工程中已经有了springcloud、springcloud alibaba和springboot的版本管理依赖,所以子工程在实际引入其组件的依赖时,已经无需再次声明版本号.<dependencies> <dependency> <gro原创 2020-08-04 16:16:57 · 2292 阅读 · 0 评论 -
用SpringCloud Alibaba搭建属于自己的微服务(二十三)~基础搭建~gateway介绍
一.概述gateway是springcloud微服务技术全家桶的一员,主要功能是做客户端到微服务的统一入口,或者简称为网关,其使用的核心在其过滤器,它内置了很多过滤,比如路由过滤器、限流过滤器,它也提供了实现过滤器的接口,我们可以通过继承这些接口来写我们自定义的过滤实现鉴权等功能.二.出现的背景spring的第一要义整合世面上最好的组件,springcloud第一代是通过整合Netflix的微服务技术栈实现的,后来Netflix大量的组件进入了停更.包括zuul网关在内,所以springcloud不得原创 2020-08-04 11:55:13 · 540 阅读 · 1 评论 -
用SpringCloud Alibaba搭建属于自己的微服务(十四)~基础搭建~使用springcloud openfeign实现rpc调用
一.概述既然分布式系统,那么就避免不了服务之间的调用,我们这里使用的是springcloud的openfeign.二.openfeign是什么?和feign、resetTemplate、httpUtils、ribbon是什么关系?(1)openfeign出现的背景.springcloud最初是以集成Netflix的feign来实现rpc调用的,之后的事情众所周知Netflix的这些微服务组件都是停更或者不再维护,所以springcloud得自己出一套rpc调用框架,openfeign就出现了,ope原创 2020-07-17 11:20:02 · 1008 阅读 · 1 评论 -
用SpringCloud Alibaba搭建属于自己的微服务(十三)~基础搭建~alibaba nacos作为分布式配置中心
一.概述1.何谓分布式配置中心?通俗的来说就是在分布式系统中,有一个集中的配置文件管理中心,其他的组件从配置中心读取配置,想修改组件的配置,可以通过修改配置中心的配置来实现修改组件的配置.2.为什么使用nacos?(1) nacos是alibaba的项目(值得信赖).(2) 支持国产.(3) 文档学习成本低(有中文文档).(4) nacos属于alibaba自用,淘宝的并发量以14亿中国人为基础堪称世界之最.二.server-user服务配置文件部分迁移到nacos配置中心.1.nacos原创 2020-07-16 22:32:23 · 664 阅读 · 2 评论 -
用SpringCloud Alibaba搭建属于自己的微服务(十二)~基础搭建~alibaba nacos的服务注册和发现
一.概述在第十章节,我们已经安装了nacos的服务端,本章节把我们的微服务注册到nacos上面.二.服务注册和发现1.ccm-mall.pom中有了springcloud-alibaba的版本管理依赖,子工程中实际引入时无需再声明依赖.<!--springcloud alibaba版本管理依赖--><dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>s原创 2020-07-15 17:20:36 · 718 阅读 · 4 评论 -
用SpringCloud Alibaba搭建属于自己的微服务(十一)~基础搭建~alibaba nacos的安装
一.概述(1)alibaba nacos集成了服务的注册发现和分布式配置中心,这里我们使用nacos作为服务注册发现和分布式配置中心.二.安装1.nacos官方地址:https://nacos.io/zh-cn/docs/quick-start.html.2.下载nacos,选择1.1.4的版本.3.上传至服务器,并解压.// 解压tar -zxvf /home/mall/service/nacos/nacos-server-1.1.4.tar.gz4.修改配置,让nacos以我们的my原创 2020-07-15 15:20:53 · 622 阅读 · 0 评论 -
用SpringCloud Alibaba搭建属于自己的微服务(十)~基础搭建~自定义异常、统一结果集和全局异常处理器
一.自定义异常体系1.背景在业务代码的开发中,往往会有这种情况,代码逻辑走到某一步,通过if的判断发现程序的逻辑无法继续往下面走了,否则会有一定的问题,这时候我们需要抛出异常组织程序往下进行,快速响应这个请求,并且回滚事物,这就是我们的自定义异常体系.2.设计如何设计自定义异常体系,需要我们对自身系统的业务有一定的了解,例如一个商城,可能会有以下的自定义异常.异常场景OrderException.class订单业务发生异常PayException.class支付业务发原创 2020-07-15 10:40:05 · 952 阅读 · 1 评论 -
用SpringCloud Alibaba搭建属于自己的微服务(九)~基础搭建~参数校验框架的使用
一.概述在我们设计接口时,往往在逻辑最开始的地方,我们首先面临的就是参数校验,之后才是整体的业务逻辑实现.例如,通过手机号和验证码实现注册功能的接口,首先需要做的就是对手机号进行正则校验,验证码的长度是否正确.在我们引入参数校验框架之后,这些事情可以不用编码,直接使用注解就能完成参数校验框架了.二.使用1.@valid和校验注解的使用姿势(1)例如一个用户注册的接口,有用户名和密码,我们需要对其进行非空校验.(2)代码package com.ccm.server.user.controller;原创 2020-07-10 14:15:43 · 624 阅读 · 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 · 628 阅读 · 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 · 1031 阅读 · 0 评论 -
用SpringCloud Alibaba搭建属于自己的微服务(五)~基础搭建~cloud、cloud alibaba和boot的版本选择
a原创 2020-07-08 16:32:10 · 1894 阅读 · 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 · 741 阅读 · 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 · 1178 阅读 · 3 评论 -
用SpringCloud Alibaba搭建属于自己的微服务(二)~技术选型
一.概述技术选型的业务场景是以高并发为前提订单业务,所以使用分布式微服务架构,提升系统的并发量.二.技术选型思想落地业务数据库mysql内存数据库redis文档数据库elasticsearch消息中间件kafka反向代理服务器nginx开发框架springboot服务网关springcloud gateway服务限流springcloud alibaba sentinel服务熔断springcloud alibaba原创 2020-07-02 15:30:54 · 1244 阅读 · 2 评论 -
用SpringCloud Alibaba搭建属于自己的微服务(一)~产品需求
一.概述本文章以简单版本的下订单业务作为支撑,讲解从0开始搭建微服务,主要使用springcloud alibaba,适合中级java开发学习和参考.二.产品需求1.用户登录和注册2.用户下订单和支付3.用户活跃度统计...原创 2020-07-02 14:56:53 · 731 阅读 · 0 评论