
spring cloud alibaba
文章平均质量分 66
合格的搬砖人
这个作者很懒,什么都没留下…
展开
-
接口幂等性操作
接口幂等性概念存在的问题接口幂等性什么情况下需要保证接口的幂等性哪些场景需要做幂等性操作幂等性的措施Token机制各种锁机制数据库悲观锁数据库乐观锁业务层分布式锁概念存在的问题现如今我们的系统大多拆分为分布式SOA,或者微服务,一套系统中包含了多个子系统服务,而一个子系统服务往往会去调用另一个服务,而服务调用服务无非就是使用RPC通信或者restful,既然是通信,那么就有可能在服务器处理完毕后返回结果的时候挂掉,这个时候用户端发现很久没有反应,那么就会多次点击按钮,这样请求有多次,那么处理数据的结果原创 2022-02-18 16:30:54 · 229 阅读 · 0 评论 -
rabbitMQ的进阶使用
rabbitMQ的进阶使用(生产者发布消息与消费者订阅消息)整合rabbitMQ实现服务端的消息抵达通知测试接受消息服务器端消息发送整合rabbitMQ首先整合rabbitMQ 需要的初步参考初步使用rabbitMQ实现服务端的消息抵达通知我们现在对配置文件进行修改 # RabbitMQ配置 rabbitmq: host: 123.57.234.28 port: 5672 # 虚拟主机配置 virtual-host: / publisher-retu原创 2022-02-14 14:57:33 · 1142 阅读 · 0 评论 -
rabbitMQ初步使用
rabbitMQ初步使用整合springbootrabbitMQ简介MQ简介为什么要使用MQ应用方式协议AMQP 与 JMS 区别rabbitMQ简介核心概念rabbitMQ在liunx安装整合springboot初步测试rabbitMQ简介MQ简介MQ全称为Message Queue,消息队列是应用程序和应用程序之间的通信方法。多用于分布式系统之间进行通信。为什么要使用MQ在没使用MQ之前可能需要对多个操作进行同步异步的操作,例如下图,在每项操作完成之后才能返回执行结果。这样会造成大量请求下原创 2022-01-30 11:17:03 · 277 阅读 · 0 评论 -
谷粒商城高级篇-购物车技术详解
购物车技术详解原创 2022-01-24 15:02:58 · 1786 阅读 · 1 评论 -
谷粒商城高级篇-sso单点登录
单点登录单点登录介绍sso思路流程开源框架xxl-sso实现原理源码分析客户端代码分析回到第二层代码服务端代码分析其他客户端登录单点登录介绍基于spring session 的方式只能解决session在同域或者是同服务的session共享问题。但是无法解决不同域名之前的共享问题,因此我们需要一台认证服务器。sso思路sso思路记住一个核心思想:建议一个公共的登陆点server,他登录了代表这个集团的产品就登录过了流程有两个子系统app1、app2登录app1用户访问app1系统,ap原创 2022-01-09 17:22:15 · 1516 阅读 · 0 评论 -
谷粒商城高级篇——session一致性解决方案(SpringSession)
session一致性解决方案问题描述解决方案session复制session存储在客户端hash一致性算法统一存储(中间件存储)集成SpringSession集成文档核心原理代码问题描述由于现在服务都是分布式的,且域名存在多个。各个系统之前的信息可能需要保持一致(存在跨域名和跨服务甚至是多个同一服务的不同机器session一致性问题),通过原始session的存储方式必然产生信息缺失问题。解决方案session复制多个服务之间用session同步技术共享(例如 tomcat 可以共享sessio原创 2022-01-02 20:26:21 · 1504 阅读 · 1 评论 -
谷粒商城高级篇(39)——认证服务之验证码注册
认证服务之验证码注册说明需求梳理技术点发送验证码准备集成第三方短信服务gulimall-api(第三方服务模块)com.xfwang.gulimall.api.component.SmsComponentcom.xfwang.gulimall.api.controller.SmsSendControllerapplication.yaml认证服务注册会员说明需求梳理这块功能主要是,在商城的注册页面,需要后台提供一个发送验证码校验的注册功能,主要涉及发送验证码设置时限性,验证通过会员模块注册用户技术点原创 2021-12-17 16:21:04 · 2354 阅读 · 1 评论 -
谷粒商城高级篇(36)——商品上架之上传数据到Elasticsearch
商品上架之上传数据到Elasticsearch功能需求分析分析-怎么设计存储结构来保存数据空间换时间时间换空间最终方案-存储结构关于 nested 类型商品上架功能实现guimall-commonpom.xmlcom/xfwang/gulimall/common/to/es/SkuEsModel.javacom/xfwang/gulimall/common/exception/BizCodeEnume.javacom/xfwang/gulimall/common/constant/ProductConsta原创 2021-08-03 20:14:56 · 1213 阅读 · 0 评论 -
谷粒商城高级篇(35)——springboot整合Elasticsearch
springboot整合Elasticsearch导入依赖pom.xml去除启动类数据源设置全局客户端测试录入测试数据查询导入依赖使用idea创建springboot工程依赖项选择spring web不要选择spring data es 因为现在版本最多支持到6.8es我们自己手动导入pom.xml<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" x原创 2021-07-25 14:53:59 · 351 阅读 · 0 评论 -
谷粒商城高级篇(34)——安装Elastisearch和可视化界面kibana
安装Elastisearch和可视化界面kibanaElastisearch基本概念Docker安装esDocker安装KibanaElastisearch基本概念基本概念Index(索引)Elastic 会索引所有字段,经过处理后写入一个反向索引(Inverted Index)。查找数据的时候,直接查找该索引。所以,Elastic 数据管理的顶层单位就叫做 Index(索引)。它是单个数据库的同义词。每个 Index (即数据库)的名字必须是小写。• 动词,相当于mysql的insert•原创 2021-04-23 16:18:10 · 737 阅读 · 0 评论 -
谷粒商城学习日记(33)——属性分组
属性分组前端页面抽取category组件属性页面属性增加修改页面后台接口品牌tree返回修改查询属性entity返回所属品牌全路径AttrGroupController.javaCategoryService.javaCategoryServiceImpl.javaAttrGroupService.javaAttrGroupServiceImpl.javaAttrGroupEntity.java效果显示左侧品牌数右侧 属性管理联动前端页面抽取category组件首先需要抽取一个品牌树的组件vi原创 2021-04-12 23:43:33 · 390 阅读 · 0 评论 -
谷粒商城学习日记(32)——JSR303进阶
JSR303进阶统一异常处理使用分组校验自定义校验器的使用JSR3031)、给Bean添加校验注解:javax.validation.constraints,并定义自己的message提示2)、开启校验功能@Valid效果:校验错误以后会有默认的响应;3)、给校验的参数bean后紧跟一个BindingResult,就可以获取到校验的结果4)、分组校验(多场景的复杂校验)1)、 @NotBlank(message = “品牌名必须提交”,groups = {AddGroup.class,U原创 2021-04-08 15:32:58 · 234 阅读 · 0 评论 -
谷粒商城学习日记(31)——数据校验
数据校验前端校验设置页面的rule列表页面显示后端jsr303校验前端校验设置页面的rulebrand-add-or-update.vue修改data(){}中的datarules dataRule: { name: [{ required: true, message: "品牌名不能为空", trigger: "blur" }], logo: [ { required: true, message: "品牌logo地址不能为空", trigge原创 2021-04-05 23:10:47 · 242 阅读 · 0 评论 -
谷粒商城学习日记(30)——使用OSS上传文件并整合
使用OSS上传文件并整合开通阿里云OSS服务并配置开通OSS配置创建OSS代码上传服务阿里云创建accesskeys创建OSS模块gateway网关路由联调前端品牌管理图标上传使用自定义组件上传本服务集成可以参考文档spring cloud alibabaoss example开通阿里云OSS服务并配置开通OSS登录阿里云账号控制台选择oss对象存储点击开通账号首次使用实名认证配置开通之后需要配置一个bucket列表测试使用的话选择低频,其他情况自行决定创建OSS代码上传服务阿里云原创 2021-04-04 16:44:43 · 5067 阅读 · 2 评论 -
谷粒商城学习日记(29)——品牌管理使用逆向工程模板,以及优化
品牌管理使用逆向工程模板,以及优化使用逆向工程模板创建后台菜单使用模板优化模板brand.vuebrand-add-or-update.vue使用逆向工程模板创建后台菜单首先打开后台在菜单管理添加菜单使用模板使用product的逆向工程生成的文件brand.vuebrand-add-or-update.vue添加到vue项目src/views/modules/product优化模板状态显示组件使用switch组件brand.vue<template> <di原创 2021-04-01 22:47:04 · 224 阅读 · 0 评论 -
谷粒商城学习日记(28)——三级分类拖拽修改、批量修改、删除
三级分类拖拽修改、批量修改、删除拖拽修改(页面效果)页面效果数据收集批量修改(数据交互)前端数据传输后台代码修改批量删除拖拽修改(页面效果)页面效果首先设置el-tree的属性:draggable=“draggable”可拖拽效果绑定变量:allow-drop=“allowDrop”是否可以拖拽后放置定义方法绑定@node-drop=“handleDrop”拖拽放置后调用方法ref=“menuTree”绑定tree组件获取checkbox选中元素 <el-tree原创 2021-03-31 15:14:36 · 599 阅读 · 0 评论 -
谷粒商城学习日记(27)——三级分类添加、修改(dialog组件)
三级分类添加、修改添加修改category.vue添加和修改都需要弹出框,引入elementui的dialog组件<!-- --><template> <el-tree :data="menus" node-key="catId" :props="defaultProps" @node-click="handleNodeClick" show-checkbox :expand-on-click-node="fals原创 2021-03-30 22:06:25 · 317 阅读 · 0 评论 -
谷粒商城学习日记(26)——三级分类删除
三级分类删除——逻辑删除后台处理后台配置改变设置gateway网关路由设置renrenfast,nacos配置中心设置product模块mybatis-plus配置后台代码修改前端改变设置tree组件调用后台方法联调后台处理后台配置改变首先需要修改后台配置设置gateway网关路由由于我们前端调用是通过网关调用的,首先要修改路由让前端可以正常访问其他模块的接口设置application.ymlspring: cloud: gateway: routes:原创 2021-03-28 16:54:51 · 313 阅读 · 0 评论 -
谷粒商城学习日记(25)——网关配置同一跨域
网关配置同一跨域跨域介绍解决方案通过NGINX反向代理到同一域名同一端口在代码中加跨域响应代码解决跨域介绍解决XHR的跨域请求(推荐使用)解决XHR的跨域 的原理?浏览器对XHR跨域拦截是先请求还是先判断?1.简单请求 【先请求,后判断】方法为:GETHEADPOST请求header里面无自定义头Content-Type为以下几种:text/plainmultipart/form-dataapplication/x-www-form-urlencoded非简单请求 【先判断后原创 2021-03-25 22:21:45 · 370 阅读 · 0 评论 -
谷粒商城学习日记(24)——三级分类——配置网关路由和路径重写
三级分类——配置网关路由和路径重写配置gulimall-product到nacos配置renren-fast到nacos添加后台管理系统菜单配置后台菜单编写组件重写访问路径并配置路由访问配置gulimall-product到nacos首先pom依赖已经添加了common依赖所以只需要修改application.ymlspring: application: name: gulimall-product cloud: nacos: discovery:原创 2021-03-24 23:04:55 · 420 阅读 · 0 评论 -
谷粒商城学习日记(23)——商品三级分类递归树形结构获取
商品三级分类递归树形结构获取controllerentityservice测试controller在product模块的控制层GategoryController中新增方法 /** * 返回三级分类tree */ @RequestMapping("/list/tree") public R listTree(){ List<CategoryEntity> tree = categoryService.getTree();原创 2021-03-23 22:29:48 · 632 阅读 · 0 评论 -
谷粒商城学习日记(11)——使用spring cloud alibaba的gateway组件作api网关(测试)
使用spring cloud alibaba的gateway组件作api网关使用gateway测试使用gatewaygateway流程图创建,使用initilizer,Group:com.xfwang.gulimall,Artifact: gulimall-gateway,package:com.xfwang.gulimall.gateway。 搜索gateway选中。开启注册服务发现@EnableDiscoveryClient配置nacos注册中心地址applicaion.properties原创 2021-03-12 22:15:53 · 262 阅读 · 2 评论 -
谷粒商城学习日记(10)——使用spring cloud alibaba的nacos组件作配置中心
spring cloud alibaba的nacos组件作配置中心nacos组件作配置中心的简单使用nacos实现开发环境隔离nacos组件作配置中心的简单使用common中添加依赖 nacos配置中心<dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId原创 2021-03-10 21:53:21 · 224 阅读 · 0 评论 -
谷粒商城学习日记(9)——使用spring cloud alibaba的nacos组件作注册中心和Feign(远程调用)
nacos组件作注册中心和配置中心并使用Feign(远程调用)配置阿里云的公共配置(版本配置)集成中间件使用NACOS做注册中心下载nacos并启动使用openFeign远程调用配置阿里云的公共配置(版本配置)在公共的模块common中添加如下代码 <dependencyManagement> <dependencies> <dependency> <groupId>com.alib原创 2021-03-09 23:12:38 · 266 阅读 · 0 评论 -
谷粒商城学习日记(8)——配置数据库连接并测试各个微服务
配置数据库连接并测试各个微服务配置数据源连接测试配置数据源连接1.导入mysql的连接驱动到common模块<!-- 数据库驱动 https://mvnrepository.com/artifact/mysql/mysql-connector-java --><dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactI原创 2021-03-06 14:45:16 · 424 阅读 · 0 评论 -
谷粒商城学习日记(7)——逆向工程搭建和使用
逆向工程搭建和使用下载逆向工程项目创建gulimall的公共依赖修改逆向工程的模板并使用下载逆向工程项目使用git下载在这里插入代码片创建gulimall的公共依赖修改逆向工程的模板并使用原创 2021-03-01 15:28:40 · 238 阅读 · 0 评论 -
谷粒商城学习日记(6)——使用人人开源快速搭建后台管理系统
使用人人开源快速搭建后台管理系统使用人人开源代码配置vue所需要的环境使用人人开源代码首先使用git clone 人人开源的后台java代码以及vue的前端代码人人开源地址找到renren-fast renren-fast-vue这两个克隆到本地,去掉文件夹中的.git文件夹renren-fast添加到gulimall模块中修改renren-fast中的数据库连接并测试连接 url: jdbc:mysql://47.103.206.82:3306/gulimall_admin?useUni原创 2021-02-25 16:28:04 · 261 阅读 · 0 评论 -
谷粒商城学习日记(5)——初始化数据库
初始化数据库配置初始化数据库初始化数据库1.建立各个数据库,并设置编码集为utf-8mp42.使用已有的sql文件执行文件地址在giteesql文件地址原创 2021-02-25 14:26:15 · 328 阅读 · 0 评论 -
谷粒商城学习日记(4)——构建项目并上传至码云
构建项目并上传至码云构建项目创建模块配置gulimall的最外层pom设置忽略提交文件并首次上传至码云构建项目1.使用idea拉取git的仓库代码2.创建各个微服务的模块创建模块使用idea创建新的模块 new module使用spring in 初始化依次添加商品服务、仓储服务、订单服务、优惠券服务、消费者服务共性就是添加依赖web:Spring webspring cloud routing:OpenFeign包名com.xfwang.gulimall.xxx(product/原创 2021-02-24 16:29:29 · 190 阅读 · 0 评论 -
谷粒商城学习日记(3)——使用git-ssh
代码git上传码云安装git配置码云gitee码云ssh免密登录配置测试安装git首先打开git的官网下载git客户端git官网下载最新版本然后默认安装即可安装完成右键菜单就会出现git的控制台配置码云gitee首先右键菜单打开git bash控制台配置git的作者信息git config --global user.name "xfwang"git config --global user.email "884257889@qq.com"码云ssh免密登录配置由于github在国原创 2021-02-23 10:20:17 · 228 阅读 · 1 评论 -
谷粒商城学习日记(2)—— docker安装redis
环境准备docker安装redis拉取redis镜像创建实例并启动使用redis镜像redis-cli命令连接拉取redis镜像docker pull redis一般不加版本号拉取的都是最新的版本创建实例并启动首先要创建redis配置文件的文件夹和配置文件mkdir -p /myfile/mydata/redis/conftouch /myfile/mydata/redis/conf/redis.conf启动redis并挂载docker run -p 6379:6379 --name原创 2021-02-22 14:41:00 · 242 阅读 · 0 评论 -
谷粒商城学习日记(1)—— docker容器的安装和使用
docker的安装和使用centos 7安装docker使用阿里云镜像安装mysql并使用首先要保证使用的是liunx环境,系统我使用的是centos 7centos 7安装docker1.可以进入docker的官网查看文档,里面有完整的安装教程docker官网地址2.依次执行命令sudo yum remove docker \ docker-client \ docker-client-latest \原创 2021-02-22 10:21:17 · 761 阅读 · 0 评论