自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 DSL 语句使用入门

     Query DSL 是一个 Java 开源框架,用于构建 类型安全 的 SQL 查询语句。采用 API 代替传统的拼接字符串 来构造查询语句。 目前 Querydsl 支持的平台包括 JPA,JDO,SQL,Java Collections,RDF,Lucene,Hibernate Search。Elasticsearch 提供了一整套基于 JSON 的查询 DSL 语言来定义查询。 Query DSL当作是一系列的抽象的查询表达式树 (AST) 特定查询

2021-03-07 22:12:07 8

原创 微服务商城系统(六)商品搜索 【上】- SpringBoot 整合 Elasticsearch

文章目录一、Elasticsearch一、Elasticsearch    采用 Docker 安装 Elasticsearch。(1)docker 镜像下载docker pull elasticsearch:5.6.8(2)安装 es 容器docker run -di --name=changgou_elasticsearch -p 9200:9200 -p 9300:9300    9200 端口是 W

2021-03-07 22:11:34 7

原创 微服务商城系统 实战记录:广告同步

文章目录一、搭建广告微服务二、广告查询三、广告同步四、总结代码见 https://github.com/betterGa/ChangGou         可以看到,需要一个广告微服务,当它执行广告操作的时候(比如 查询),会记录 操作日志 binlog 到 MySQL,然后将 操作日志 发送给 canal ,canal 将操作记录发送给 canal 微服务 ,canal 微服务根据修改的分类 ID 调用 content

2021-03-04 20:53:12 15 1

原创 微服务商城系统(五)lua、Canal 实现广告缓存

文章目录一、学习目标二、首页分析一、学习目标Lua 简单使用     Lua 语法 输出、变量定义、数据类型、流程控制 (if…)、循环操作、函数、表 (数组) 、模块。    Lua 用作 广告缓存操作    广告缓存载入与读取。    OpenResty 理解配置     OpenRes

2021-03-04 11:09:19 70 1

原创 微服务商城系统(四)商品管理

文章目录一、SPU 与 SKU1、SPU 与 SKU概念     对于商品的管理来说,新增 商品,需要 增加 SPU 和 SKU;修改 商品,需要 修改 SPU 和 SKU (新增 与 修改,和上篇博客中管理的 tb_template、tb_spec、tb_para 模板、规格、参数表,还和 tb_sku 某款商品中某类商品的信息表、 tb_spu 某款商品中某类商品的信息表 有关);审核,需要 修改审核状态;上架下架,需要 修改上架下架状态。 &nbs

2021-02-28 20:19:58 49

原创 解决 Spring Boot 启动类报错 xxx that could not be found. The injection point has the follow.The injection

文章目录一、问题描述二、解决方法一、问题描述     运行 SpringBoot 的启动类时报错,错误详情:APPLICATION FAILED TO STARTDescription:Field idWorker in com.changgou.goods.service.impl.SpuServiceImpl required a bean of type ‘entity.IdWorker’ that could not be found.The

2021-02-28 10:44:40 19

原创 微服务商城系统(三) 分布式文件存储 FastDFS

文章目录一、 分布式文件存储 FastDFS1、简介2、工作原理3、文件上传流程4、框架搭建二、文件上传1、文件信息封装一、 分布式文件存储 FastDFS1、简介     FastDFS 是一个 开源的 轻量级 分布式文件系统,它对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。 特别适合以文件为载体的在线服务,如相册网站、视频网站等等。     Fast

2021-02-25 15:52:13 14

原创 微服务商城系统 实战记录:相册、模板、规格、参数管理

文章目录一、相册管理     上篇博客 https://blog.csdn.net/weixin_41750142/article/details/113869062 中对 brand 品牌表 进行了增删改查,这篇博客将记录对 相册、规格、模板、参数 的增删改查的实战,记录下自己的思路和代码后,再与老师给的作比较和更正。         几个表结构如下所示:相册 tb_allb

2021-02-24 22:45:59 15

原创 解决 SpringBoot 集成 fastDFS 启动类报错:Failed to configure a DataSource: ‘url‘ attribute is not specified...

文章目录一、问题描述二、解决方法一、问题描述使用 SpringBoot 集成 fastDFS,实现文件管理的功能,首先 在 resources 文件夹下创建 fastDFS 的配置文件 fdfs_client.conf:connect_timeout=60network_timeout=60charset=UTF-8http.tracker_http_port=8080tracker_server=192.168.211.132:22122然后,提供 application.yml :s

2021-02-20 17:32:52 9

原创 微服务商城系统(二)品牌的增删改查

文章目录一、品牌的增删改查(1)查询所有品牌商品(2)根据品牌 ID 查询商品(3)添加品牌(4)根据品牌 ID 修改商品(5)删除品牌(6)多条件查询(7)分页查询(8)多条件分页查询(9)全局异常处理器(总结)???? 补充:POJO     接下来,主要是做品牌的增删改查了。一、品牌的增删改查先来看 tb_brand 品牌表:     可以看到,属性依次是 主键 id、品牌名称 name、图片 image、首字母

2021-02-20 09:36:36 19

原创 微服务商城系统(一)框架搭建、商品微服务搭建

文章目录一、框架搭建(话说,如果只会增删改查,很容易被代码生成器取代 ???? 。)一、框架搭建需要知道 通用Mapper 和 PageHelper,

2021-02-19 17:56:52 51 1

原创 Spring Cloud 入门(三)Hystrix 容错机制 与 数据监控、Config 配置中心、Zipkin 服务跟踪

文章目录一、Hystrix 容错机制 与 数据监控二、Config 配置中心1、本地文件系统2、远程仓库三、服务跟踪一、Hystrix 容错机制 与 数据监控     容错机制是指 在不改变各个微服务的调用关系的前提下,针对错误情况进行预先处理。(可以联想电路中的保险丝,当电路中某个单元发生故障了,就通过烧断保险丝的方式来阻止事故继续蔓延。)     Hystrix 的主要作用就是 当服务提供者发生故障无法访问的时候,向服

2021-02-15 18:10:54 23

原创 Spring Cloud 入门(二)Zuul 服务网关、Ribbon 负载均衡、Feign 声明式接口调用

文章目录一、Zuul 服务网关一、Zuul 服务网关    可以看到,如果没有服务网关,比如说有 4 个微服务,客户端就要知道每个微服务的 IP 地址和端口号;而如果有了网关,只需要和网关进行交互,这样可以减少客户端 和 微服务的交互次数,降低耦合性。由网关映射到各个微服务,相当于有一个 统一的访问入口,它会对请求进行 统一管理,比如说,验证身份这种操作也可以放到网关里。     Spring Cloud 集成了 Zuu

2021-02-15 11:38:37 53

原创 Spring Cloud 入门(一)简介、服务治理

文章目录一、简介1、集群 和 分布式2、微服务3、为什么选择 Spring Cloud二、服务治理1、注册中心2、服务提供者一、简介1、集群 和 分布式(1)集群     一台服务器无法负荷高并发的数据访问,需要设置更多的服务器一起分担压力。(一台不行就设置十台一起分担压力,十台不行就一百台 ???? 。)从 物理层面 解决高并发的问题,就像 春运期间火车站 多开购票窗口,可以理解成 很多人干同一件事,来分摊压力。   &nb

2021-02-14 18:23:52 71 4

原创 解决 Spring Cloud 集成 eureka 报错 Caused by: org.springframework.beans.factory.NoSuchBeanDefinition...

文章目录一、问题描述二、解决方法一、问题描述    在使用 Spring Cloud 集成 eureka ,先导入 parent 节点的依赖:<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

2021-02-14 17:18:30 61 3

原创 解决 Spring Cloud 整合 zipkin 报错:org.springframework.boot.actuate.health.CompositeHealthIndicator......

文章目录一、问题描述二、解决方法一、问题描述     我的 Spring Boot 版本是 2.3.4,Spring Cloud 版本是 Hoxton.SR1。要整合 zipkin,先在服务端导入了以下依赖: <dependencies> <dependency> <groupId>io.zipkin.java</groupId> <artif

2021-02-14 15:40:55 90 1

原创 解决 jar 包冲突问题 An attempt was made to call a method that does not exists.The attempt was made from....

文章目录一、问题描述二、解决方法一、问题描述    Spring Boot 启动时报错了,可以看到 出现了 jar 包冲突 ,两个 jar 包 中包含同一个类。    二、解决方法     将 The method’s class, javax.servlet.ServletContext, is available from the following locations:

2021-02-14 13:43:49 21

原创 解决 Spring Boot 中使用 Servlet 通过 @WebFilter 指定过滤路径指定路径不起作用 对所有路径进行拦截

文章目录一、问题描述二、解决方法一、问题描述在 Spring Boot 工程中使用过滤器:// 过滤器@WebServletpublic class MyFilter implements Filter { @Override // 在系统启动时就会执行 public void init(FilterConfig filterConfig) throws ServletException { System.out.println("init Method

2021-02-14 11:22:45 108 2

原创 解决 Spring Boot 启动类报错: Your ApplicationContext is unlikely to start due to a @ComponentScan......

文章目录一、问题描述二、解决方法一、问题描述     我在运行 Spring Boot 的一个启动类时,发现控制台输出如下:     可以看到,控制台打印的日志输出 WARNING:RibbonApplication : No active profile set, falling back to default profiles: default,然后几分钟后会输出 ERROR,报 Caused by: jav

2021-02-12 18:08:59 19

原创 Spring Boot 入门(五)Spring Boot 单元测试、整合 MyBatis、保护 Web 应用程序

文章目录一、Spring Boot 单元测试1、controller层的单元测试2、service层的单元测试二、Spring Boot 快速整合 MyBatis (去XML化)一、Spring Boot 单元测试    单元测试是开发人员为确保单个单元或组件功能正常工作而进行的测试之一。1、controller层的单元测试    主要借助于 spring-test 包的 MockMvc 来进行模拟浏览器访问的,也就是说

2021-02-08 20:09:10 14

原创 Spring Boot 入门(四)整合 Thymeleaf、国际化、发邮件、批量处理

文章目录一、Spring Boot Thymeleaf 示例二、SpringBoot 使用 RESTful 服务一、Spring Boot Thymeleaf 示例概述    Thymeleaf 是一个基于 Java 的库,用于创建 Web 应用程序, 它为在Web 应用程序中提供 XHTML/HTML5 提供了很好的支持。    Thymeleaf 是一个跟 Velocity、FreeMarker 类似的模板引擎,它可

2021-02-08 18:50:38 33

原创 Spring Boot 入门(三)拦截器、过滤器、Rest 模板

文章目录一、Spring Boot 拦截器二、Spring Boot Servlet 过滤器三、Spring Boot Rest 模板(1)GET???? 补充:Java Web 中 拦截器和过滤器一、Spring Boot 拦截器    在 Spring Boot 中使用拦截器(看到“拦截器”,可以想到 AOP 的思想????),可在以下情况下执行操作 :preHandle() :在将 请求 发送到 控制器 之前 —— 在 controller 之前。po

2021-02-08 11:10:02 27 2

原创 Spring Boot 入门(二)日志、RESTFUL Web服务、异常处理

文章目录一、Spring Boot 日志二、Spring Boot 构建 RESTful Web 服务1、什么是 RESTful API2、RESTful API 设计规范3、相关注解4、API三、Spring Boot 异常处理一、Spring Boot 日志    日志,通常不会在需求阶段作为一个功能单独提出来,也不会在产品方案中看到它的细节。但是,这丝毫不影响它在任何一个系统中的重要的地位。    为了保证服务的高可

2021-01-30 15:02:53 48

原创 Spring Boot 入门(一)简介、简单部署、应用程序属性

文章目录一、简介1、SpringBoot 和 微服务2、SpringBoot 是什么3、为什么选择 Spring Boot二、部署简单的 SpringBoot 项目4、SpringBoot 是如何工作的?一、简介     Spring Boot 是一个基于 Java 的开源框架,用于创建微服务,用于构建独立的生产就绪 Spring 应用。1、SpringBoot 和 微服务     微服务 是一种允许开发人员独立开发 和

2021-01-29 13:43:24 40 2

原创 Redis(九):新增数据结构 Stream

文章目录一、Stream1、增删改查2、独立消费3、创建消费组一、Stream    Redis5.0 被作者 Antirez 突然放了出来,增加了很多新的特色功能。而 Redis5.0 最大的新特性就是多出了一个数据结构 Stream,它是一个新的强大的支持多播的可持久化的消息队列 ,作者坦言 Redis Stream 狠狠地借鉴了 Kafka 的设计。    Redis Stream 的结构如上图所示,它有一个消息链

2021-01-19 16:53:06 51

原创 Redis(八)原理:管道、事务、PubSub

文章目录一、管道 Pipeline1、Redis 的消息交互2、管道压力测试一、管道 Pipeline    有了管道技术,可以加速 Redis 的存取速率。不过 管道本身并不是 Redis 服务器直接提供的技术,这个技术本质上是由客户端提供的,跟服务器没有什么直接的关系。下面我们来对这块儿做一个深入的探究。1、Redis 的消息交互    当我们使用客户端对 Redis 进行一次操作时,如下图所示,客户端将请求传送给服

2021-01-19 16:52:40 20

原创 Redis(十一)集群:Sentinel、Codis、Cluster

文章目录一、Sentinel1、消息丢失2、Sentinel 基本使用一、Sentinel    目前我们讲的 Redis 还只是主从方案、最终一致性,如果主节点凌晨 3 点突发宕机怎么办?坐等运维从床上爬起来,然后手工进行从主切换,再通知所有的程序把地址统统改一遍重新上线?毫无疑问,这样的人工运维效率太低,事故发生时估计得至少 1 个小时才能缓过来。如果是一个大型公司,这样的事故足以上新闻了。    所以我们必须有一个高

2021-01-16 17:27:55 62 2

原创 Redis(十)小对象压缩、主从同步

文章目录一、小对象压缩存储 (ziplist)    Redis 是一个非常耗费内存的数据库,它所有的数据都放在内存里。如果我们不注意节约使用内存,Redis 就会因为我们的无节制使用出现内存不足而崩溃。Redis 作者为了优化数据结构的内存占用,也苦心孤诣增加了非常多的优化点,这些优化也是以牺牲代码的可读性为代价的,但是毫无疑问这是非常值得的,尤其像 Redis 这种数据库。32bit vs 64bit    Redis

2021-01-10 10:38:47 36 3

原创 Gradle 安装

    Gradle 和 Maven 类似,都是用来管理项目的工具,因为IDEA 的官网 2018.1 版本支持到 kotlin 1.2.30 版本,支持的 Gradle 的版本是 4.4 ,先到官网下载对应版本:https://gradle.org/releases/ 。    将下载好的 gradle-4.4-all.zip 解压到相对应的文件路径下,如 D:\devSoft\softFile\gradle-4.4,该路

2021-01-06 11:48:15 23

原创 Redis(七)原理:线程 IO 模型、通信协议、持久化

文章目录一、线程 IO 模型1、非阻塞 IO2、事件轮询(多路复用)3、指令队列、响应队列4、定时任务二、通信协议(1)RESP(Redis Serialization Protocol)一、线程 IO 模型    Redis 是个单线程程序 ! 这一点必须铭记,所以要小心使用 Redis 指令,对于那些时间复杂度为 O(n) 级别的指令,一定要谨慎使用,一不小心可能就会导致 Redis 卡顿。也许你会怀疑 高并发的 Redis 中间件怎么可能是单线程?但它确实是

2021-01-02 12:04:13 35

原创 Redis(六)GeoHash、Scan

文章目录一、GeoHash1、基本使用一、GeoHash    Redis 在 3.2 版本后增加了地理位置 GEO 模块,意味着我们可以使用 Redis 来实现摩拜单车 “附件的 Mobike”、美团 和 饿了么 “附近的餐馆” 这样的功能。    我们先来看看如何 用数据库来算附近的人,地图元素的位置数据使用二维的经纬度表示,经度范围 (-180, 180],纬度范围 (-90, 90],纬度正负以赤道为界,北正南负,

2020-12-30 22:16:50 23

原创 Redis(五)应用:HyperLogLog、布隆过滤器、限流

文章目录UV、IP 、PV 和 VV一、HyperLogLog1、使用方法UV、IP 、PV 和 VV    首先知道这几个概念 UV 、IP、PV 和 VV(实习的时候也听到过。)    UV 是 Unique visitor,是指通过互联网访问、浏览这个网页的自然人,访问网站的一台电脑客户端为一个访客,24 小时内相同的客户端只被计算一次。一天内同个访客多次访问仅计算一个 UV。   &

2020-12-28 22:02:11 46

原创 CentOS 7 安装 Docker

    上篇博客让 VMware workstation Player 15 可以联网啦,这篇记录一下安装 Docker 的过程:Docker 要求 CentOS 系统的内核版本高于 3.10 ,先验证CentOS 版本是否支持 Docker 。    通过 uname -r 命令查看你当前的内核版本 $ uname -r我的是:使用 root 权限登录 Centos。确保 yum 包更新到最新。$ su

2020-12-24 11:40:25 33

原创 VMware Workstation 15 Player 设置网络之桥接模式、VMware Workstation Pro 设置网络之 NAT 模式

    我的系统是 Windows 10,之前安装 VMWare Workstation 因为兼容性问题用不了,只好使用功能比较简单的 Player,看到网上比较多的都是 VMWare Workstation联网的教程,在此对 Player 联网过程做个记录。首先,先打开控制面板,查看自己正在使用的网络:接下来打开“虚拟机设置”:设置网络适配器,选择“桥接模式”,并选上“复制物理网络连接状态”:点开“配置适配器”,选择那个自己正使用着的网络:然后在用户

2020-12-23 22:42:42 172

原创 Redis(四)应用:延时队列、位图

文章目录一、延时队列1、异步消息队列2、延时队列的实现Redis 延时队列的优势Redis 延时队列的劣势3、Redssion 实现延时队列二、位图1、基本使用一、延时队列    我们平时习惯使用 RabbitMQ 和 Kafka 作为消息队列中间件来给应用程序之间增加异步消息传递功能,这两个中间件都是专业的消息队列中间件,特性之多超出了大多数人的理解能力。(????)    比如,使用 RabbitMQ,发送消息前要创建

2020-12-22 09:01:22 55 2

原创 分布式锁

文章目录一、数据库实现分布式锁1、悲观锁2、乐观锁一、数据库实现分布式锁1、悲观锁    如果获取锁失败,就一直阻塞等待。    比如,有一张资源锁表:CREATE TABLE `resource_lock` `id` int(4) NOT NULL AUTO_INCREMENT COMMENT '主键', `resource_name` varchar(64) NOT NULL DEFAULT '' COMME

2020-12-14 20:56:50 22

原创 Redis(三)应用:分布式锁

文章目录    分布式应用进行逻辑处理时,经常会遇到并发问题。    用并发那块儿的知识理解分布式锁,就类似于获取资源 / 独占锁,(如果理解有误请在评论中指出????)如果一个进程已经获取了资源,当别的进程也要来尝试获取资源时,就会失败。    获取资源一般是使用 setnx(set if not exists)指令 ,先来先获取,使用完毕后调用 del 指令释放资源。&nbs

2020-12-14 16:11:58 44

原创 Redis(二)Jedis 简单使用

    Jedis 就是 Java 同 Redis 建立连接的工具。    使用 Jedis 需要先导入依赖:<!-- https://mvnrepository.com/artifact/redis.clients/jedis --><dependency> <groupId>redis.clients</groupId> <artifactId&gt

2020-12-08 16:12:48 23

原创 Redis(一)简介、基本数据类型、通用指令

文章目录一、Redis 的简介、特点、应用???? 启动 Redis二、Redis 基本操作1、string 类型2、list 类型3、set 类型4、sort_set 类型5、hash 类型一、Redis 的简介、特点、应用    跟随 Redis 官网,https://redis.io/,来学习 Redis 吧 ????。    译:Redis是一种开放源代码(BSD许可)的内存中数据结构存储,用作数据库,缓存 和

2020-12-07 20:01:00 39

原创 并发编程实战(三)线程池、ThreadLocal使用注意事项

文章目录一、创建线程和线程池时要指定与业务相关的名称一、创建线程和线程池时要指定与业务相关的名称    在日常开发中,当在一个应用中需要创建多个线程 或者 线程池时,最好给每个线程 或者 线程池 根据业务类型 设置具体名称,以便在出现问题时方便进行定位。例1 ???? 创建线程需要有线程名:public class ThreadTest1 { public static void main(String[] args) { // 订单模

2020-12-03 18:56:23 54

空空如也

空空如也

空空如也

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

TA关注的人 TA的粉丝

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