自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(39)
  • 收藏
  • 关注

原创 用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 840 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 462 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 544

原创 用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 393

原创 用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 394

原创 用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 517 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 504

原创 用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 321

原创 用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 182

原创 用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 446

原创 用SpringCloud Alibaba搭建属于自己的微服务(二十九)~业务开发~kafka+elasticSearch埋点采集原始数据

一.概述在实际的业务开发中,当我们的产品有了稳定的用户量,我们就会开始去做数据统计,针对用户的各种行为进行统计,拿到了这些数据,我们就可以针对性的开发新的功能,从而增加产品的盈利,为老板的保时捷添砖加瓦,为我们自己的项目奖金也提升一个档次.二.需求和实现逻辑这章节讲解统计用户的访问量,并把数据做持久化,我们采用在gateway网关出集成kafka,gateway收到一个请求,就往kafka中推送数据,server-user服务作为消息中间件的消费者接受数据并且持久化到elasticSearch这样的文

2020-08-12 11:14:02 1102

原创 用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 1084 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 560

原创 用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 299

原创 用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 1097

原创 用SpringCloud Alibaba搭建属于自己的微服务(二十四)~基础搭建~gateway网关实现路由转发

一.概述gateway作为网关,是服务端所有请求的入口,根据不同的路径路由到不同的微服务是核心功能之一.二.gateway网关实现路由转发1.gateway.pom中加入依赖.由于ccm-mall.pom顶级父工程中已经有了springcloud、springcloud alibaba和springboot的版本管理依赖,所以子工程在实际引入其组件的依赖时,已经无需再次声明版本号.<dependencies> <dependency> <gro

2020-08-04 16:16:57 2277

原创 用SpringCloud Alibaba搭建属于自己的微服务(二十三)~基础搭建~gateway介绍

一.概述gateway是springcloud微服务技术全家桶的一员,主要功能是做客户端到微服务的统一入口,或者简称为网关,其使用的核心在其过滤器,它内置了很多过滤,比如路由过滤器、限流过滤器,它也提供了实现过滤器的接口,我们可以通过继承这些接口来写我们自定义的过滤实现鉴权等功能.二.出现的背景spring的第一要义整合世面上最好的组件,springcloud第一代是通过整合Netflix的微服务技术栈实现的,后来Netflix大量的组件进入了停更.包括zuul网关在内,所以springcloud不得

2020-08-04 11:55:13 537 1

原创 用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 482

原创 用SpringCloud Alibaba搭建属于自己的微服务(二十一)~基础搭建~alibaba sentinel热点规则和系统规则

一.概述sentinel的核心功能是限流、熔断和降级,其他的功能列入热点规则、系统规则也是限流、熔断和降级的另外一种配置形式,所以本章节只会以文字的方式简单叙述,不会也没有必要做详细的讲解.二.热点规则1.热点规则其实就是颗粒度更小的限流.2.和流控规则的区别.可以看出除了增加了参数索引、参数例外项,其他的配置和限流一模一样,但是热点规则颗粒度精确到了请求的参数级别,可以根据你是否带了某个参数或者某个参数是否为特定值来判断需不需要限流.三.系统规则1.系统规则就是颗粒度更大的限流,一种系统自

2020-08-03 13:48:12 290 1

原创 用SpringCloud Alibaba搭建属于自己的微服务(二十)~基础搭建~alibaba sentinel降级

一.概述.其实不是有了sentinel才有了降级这个名词,只是sentinel也提供了降级功能,很多组件和框架也提供了降级功能,比如springmvc的全局异常处理器,nginx配置404.html页面,这些都属于降级功能.思想都是在发生错误时,尽可能提供更加友好的视图给用户.二.sentinel提供的降级功能snetinel提供的熔断和限流功能,在触发后,会抛出以BlockException为父类的异常,之后sentinel会根据配置的降级规则进行异常捕获并且降级.1.sentinel降级的方式

2020-08-03 11:39:29 435

原创 用SpringCloud Alibaba搭建属于自己的微服务(十九)~基础搭建~alibaba sentinel熔断

一.概述熔断:当满足某个特定条件的时候,触发熔断,在熔断的时间内,接收到的请求将不会得到处理,而是快速失败响应给客户端.sentinel提供了熔断功能,且熔断策略有三种:RT、异常比例和异常数量.二.sentinel的熔断1.sentinel的熔断策略.熔断策略含义RT平均响应时间超出阈值且在时间窗口内通过的请求数量>=5,两个条件同时满足后触发降级,窗口期过后关闭断路器异常比例(秒级统计比例)qps>=5且异常比例(秒级统计)超过阈值时,触发断路器;时间

2020-07-30 15:29:46 373

原创 用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 835 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 798

原创 用SpringCloud Alibaba搭建属于自己的微服务(十六)~基础搭建~openfegin+ribbon的rpc调用高可用之重试机制

一.概述服务之间的rpc调用要能达到高可用,重试机制不比不可少的.二.重试机制1.场景一a.场景(1).server-user调用server-basic.(2).server-basic服务有节点A和节点B.(3).server-user服务通过ribbon的算法拿到了节点A.(4).server-basic服务节点A挂了.(5).server-user发起调用.(6).server-user调用连接超时,调用失败.b.问题分析server-basic服务有节点A和节点B,serv

2020-07-21 16:18:16 527

原创 用SpringCloud Alibaba搭建属于自己的微服务(十五)~基础搭建~使用openfeign集成ribbon负载均衡.

一.概述微服务的部署往往是集群模式,一个微服务往往有多个节点,ribbon提供了客户端负载均衡算法,让我们能够实现压力分摊的调用,保证了高可用.但是服务之间调用有几个高并发的问题,我们是需要处理的,比如服务雪崩,注册表未能及时剔除不可用的服务节点,导致调用失败等,本章节将详细讲解如何通过这些组件的配置达到真正的高可用.二.微服务集成ribbon.1.我们可以看到openfeign中有了ribbon相关的依赖,默认实现了负载均衡.2.我们编写代码测试下.(1).rpc调用服务端(server-ba

2020-07-18 20:16:56 461

原创 用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 996 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 650 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 715 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 616

原创 用SpringCloud Alibaba搭建属于自己的微服务(十)~基础搭建~自定义异常、统一结果集和全局异常处理器

一.自定义异常体系1.背景在业务代码的开发中,往往会有这种情况,代码逻辑走到某一步,通过if的判断发现程序的逻辑无法继续往下面走了,否则会有一定的问题,这时候我们需要抛出异常组织程序往下进行,快速响应这个请求,并且回滚事物,这就是我们的自定义异常体系.2.设计如何设计自定义异常体系,需要我们对自身系统的业务有一定的了解,例如一个商城,可能会有以下的自定义异常.异常场景OrderException.class订单业务发生异常PayException.class支付业务发

2020-07-15 10:40:05 938 1

原创 用SpringCloud Alibaba搭建属于自己的微服务(九)~基础搭建~参数校验框架的使用

一.概述在我们设计接口时,往往在逻辑最开始的地方,我们首先面临的就是参数校验,之后才是整体的业务逻辑实现.例如,通过手机号和验证码实现注册功能的接口,首先需要做的就是对手机号进行正则校验,验证码的长度是否正确.在我们引入参数校验框架之后,这些事情可以不用编码,直接使用注解就能完成参数校验框架了.二.使用1.@valid和校验注解的使用姿势(1)例如一个用户注册的接口,有用户名和密码,我们需要对其进行非空校验.(2)代码package com.ccm.server.user.controller;

2020-07-10 14:15:43 620

原创 用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 616

原创 用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 1023

原创 用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 740

原创 用SpringCloud Alibaba搭建属于自己的微服务(五)~基础搭建~cloud、cloud alibaba和boot的版本选择

a

2020-07-08 16:32:10 1889

原创 用SpringCloud Alibaba搭建属于自己的微服务(四)~基础搭建~maven工程管理

一.maven工程结构二.ccm-mall1.项目的顶级父工程,负责maven依赖的版本管理.三.assembly(组件)1.该工程对引用的第三方组件进行管理,这样微服务需要用到的组件直接引入我们自己的依赖就可以了.2.比如使用alibaba的德鲁伊作为持久层框架时,服务需要引入三个pom依赖,现在只需要引入assembly-mysql的依赖就可以了,因为assembly-mysql引入了德鲁伊的三个相关依赖,统一维护.四.common(公共)1.工程负责整合一些通用的类,比如之后我们的微服

2020-07-04 00:15:01 1173 3

原创 用SpringCloud Alibaba搭建属于自己的微服务(三)~准备工作~mysql,elasticsearch,kafka,redis的安装

一.概述mysql,elasticsearch,kafka,redis属于主流技术,在linux服务器上安装,我就直接引用已有的文章链接.二.mysql的安装链接: link.三.elasticsearch的安装链接: link.四.redis的安装链接: link.

2020-07-02 17:02:34 841

原创 用SpringCloud Alibaba搭建属于自己的微服务(二)~技术选型

一.概述技术选型的业务场景是以高并发为前提订单业务,所以使用分布式微服务架构,提升系统的并发量.二.技术选型思想落地业务数据库mysql内存数据库redis文档数据库elasticsearch消息中间件kafka反向代理服务器nginx开发框架springboot服务网关springcloud gateway服务限流springcloud alibaba sentinel服务熔断springcloud alibaba

2020-07-02 15:30:54 1236 2

原创 用SpringCloud Alibaba搭建属于自己的微服务(一)~产品需求

一.概述本文章以简单版本的下订单业务作为支撑,讲解从0开始搭建微服务,主要使用springcloud alibaba,适合中级java开发学习和参考.二.产品需求1.用户登录和注册2.用户下订单和支付3.用户活跃度统计...

2020-07-02 14:56:53 726

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除