自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 SpringCloud-Ribbon负载均衡

Ribbon入门介绍Spring Cloud Ribbon是基于Netflix Ribbon实现的一套客户端负载均衡的工具。简单的说,Ribbon是Netflix发布的开源项目,主要功能是提供客户端的软件负载均衡算法和服务调用。Ribbon客户端组件提供一系列完善的配置项如连接超时,重试等。简单的说,就是在配置文件中列出Load Balancer(简称LB)后面所有的机器,Ribbon会自动的帮助你基于某种规则(如简单轮询,随机连接等)去连接这些机器。我们很容易使用Ribbon实现自定义的负载均衡算法

2021-09-01 20:14:05 240

原创 SpringCloud-CAP理论

概述CAP:C:Consistency (强一致性)A:Availability (可用性)P:Partition tolerance (分区容错性)CAP理论的核心是:一个分布式系统不可能同时很好的满足一致性,可用性和分区容错性这三个需求,最多只能同时较好的满足两个。。因此,根据CAP原理将NoSQL数据库分成了满足CA原则、满足CP原则和满足AP原则三大类:CA - 单点集群,满足—致性,可用性的系统,通常在可扩展性上不太强大。CP - 满足一致性,分区容忍必的系统,通常性能不是

2021-09-01 17:31:45 576

原创 SpringCloud-Eureka服务注册与发现

Eureka基础知识什么是服务治理Spring Cloud封装了Netflix 公司开发的Eureka模块来实现服务治理在传统的RPC远程调用框架中,管理每个服务与服务之间依赖关系比较复杂,管理比较复杂,所以需要使用服务治理,管理服务于服务之间依赖关系,可以实现服务调用、负载均衡、容错等,实现服务发现与注册。什么是服务注册与发现Eureka采用了CS的设计架构,Eureka Sever作为服务注册功能的服务器,它是服务注册中心。而系统中的其他微服务,使用Eureka的客户端连接到 Eureka S

2021-09-01 17:08:29 321

原创 SpringCloud-入门案例

微服务工程搭建约定 > 配置 > 编码父工程pom文件<?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" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 htt

2021-09-01 12:07:22 186

原创 SpringCloud-微服务入门

微服务理论什么是微服务微服务是一种架构风格一个应用拆分为一组小型服务每个服务运行在自己的进程内,也就是可独立部署和升级服务之间使用轻量级HTTP交互服务围绕业务功能拆分可以由全自动部署机制独立部署去中心化,服务自治。服务可以使用不同的语言、不同的存储技术分布式微服务架构服务注册与发现服务调用服务熔断负载均衡服务降级服务消息队列配置中心管理服务网关服务监控全链路追踪自动化构建部署服务定时任务调度SpringCloud简介SpringCloud=分布式微服

2021-09-01 11:00:02 113

原创 Vue Router

一、认识路由1、锚点的概念案例:百度百科特点:单页Web应用,预先加载页面内容形式:url#锚点2、路由的作用Vue.js 路由允许我们通过锚点定义不同的 URL, 达到访问不同的页面的目的,每个页面的内容通过延迟加载渲染出来。通过 Vue.js 可以实现多视图的单页Web应用(single page web application,SPA)3、参考https://router.vuejs.org/zh/二、路由实例1、创建文件夹和文件创建文件夹 07-router,创建index.

2021-08-27 16:43:56 156

原创 JUC-JUC三大辅助类

7 JUC 三大辅助类JUC 中提供了三种常用的辅助类,通过这些辅助类可以很好的解决线程数量过多时 Lock 锁的频繁操作。这三种辅助类为:CountDownLatch: 减少计数CyclicBarrier: 循环栅栏Semaphore: 信号灯7.1 减少计数 CountDownLatchCountDownLatch 类可以设置一个计数器,然后通过 countDown 方法来进行减 1 的操作,使用 await 方法等待计数器不大于 0,然后继续执行 await 方法之后的语句。Co

2021-08-23 14:33:27 261

原创 JUC-Callable&Future接口

6 Callable&Future 接口6.1 Callable 接口目前我们学习了有两种创建线程的方法:一种是通过创建 Thread 类,另一种是通过使用 Runnable 创建线程。但是,Runnable 缺少的一项功能是,当线程终止时(即 run()完成时),我们无法使线程返回结果。为了支持此功能,Java 中提供了 Callable 接口。Callable 接口的特点如下(重点)为了实现 Runnable,需要实现不返回任何内容的 run()方法,而对于Callable

2021-08-23 14:24:12 128

原创 JUC-多线程锁

5 多线程锁5.1 锁的八个问题演示import java.util.concurrent.TimeUnit;/** * @Description: 8 锁 * 1 标准访问,先打印短信还是邮件 * ------sendSMS * ------sendEmail * 2 停 4 秒在短信方法内,先打印短信还是邮件 * ------sendSMS * ------sendEmail * 3 新增普通的 hello 方法,是先打短信还是 hello * ------getHello

2021-08-23 11:31:37 101

原创 JUC-线程间通信

3 线程间通信线程间通信的模型有两种:共享内存和消息传递,以下方式都是基于这两种模型来实现的。场景—两个线程,一个线程对当前数值加 1,另一个线程对当前数值减 1,要求用线程间通信3.1 synchronized 方案/** * volatile 关键字实现线程交替加减 */public class TestVolatile { /** * 交替加减 * * @param args */ public static void ma

2021-08-23 10:41:41 155

原创 JUC-Lock接口

2 Lock 接口2.1 Synchronized2.1.1 Synchronized 关键字回顾synchronized 是 Java 中的关键字,是一种同步锁。它修饰的对象有以下几种:修饰一个代码块,被修饰的代码块称为同步语句块,其作用的范围是大括号{}括起来的代码,作用的对象是调用这个代码块的对象修饰一个方法,被修饰的方法称为同步方法,其作用的范围是整个方法,作用的对象是调用这个方法的对象;虽然可以使用 synchronized 来定义方法,但 synchronized 并不属于方法定义

2021-08-23 10:09:15 96

原创 JUC-01概述

1 什么是 JUC1.1 JUC 简介在 Java 中,线程部分是一个重点,本篇文章说的 JUC 也是关于线程的。JUC就是 java.util .concurrent 工具包的简称。这是一个处理线程的工具包,JDK 1.5 开始出现的。1.2 进程与线程进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。 在当代面向线程设计的计算机结构中,进程是线程的容器。程序是指令、数据及其组织形式的描述,进程是程序的实体。是计算

2021-08-20 18:14:57 209

原创 RocketMQ应用04-事务消息

1 问题引入这里的一个需求场景是:工行用户A向建行用户B转账1万元。我们可以使用同步消息来处理该需求场景:工行系统发送一个给B增款1万元的同步消息M给Broker消息被Broker成功接收后,向工行系统发送成功ACK工行系统收到成功ACK后从用户A中扣款1万元建行系统从Broker中获取到消息M建行系统消费消息M,即向用户B中增加1万元这其中是有问题的:若第3步中的扣款操作失败,但消息已经成功发送到了Broker。对于MQ来说,只要消息写入成功,那么这个消息就可以被消费。此时建行系统

2021-08-16 17:10:44 467

原创 RocketMQ应用03-延时消息

1 什么是延时消息当消息写入到Broker后,在指定的时长后才可被消费处理的消息,称为延时消息。采用RocketMQ的延时消息可以实现定时任务的功能,而无需使用定时器。典型的应用场景是,电商交易中超时未支付关闭订单的场景,12306平台订票超时未支付取消订票的场景。在电商平台中,订单创建时会发送一条延迟消息。这条消息将会在30分钟后投递给后台业务系统(Consumer),后台业务系统收到该消息后会判断对应的订单是否已经完成支付。如果未完成,则取消订单,将商品再次放回到库存;如果完成支付,则忽略。

2021-08-16 16:23:53 660

原创 RocketMQ应用02-顺序消息

1 什么是顺序消息顺序消息指的是,严格按照消息的发送顺序进行消费的消息(FIFO)。默认情况下生产者会把消息以Round Robin轮询方式发送到不同的Queue分区队列;而消费消息时会从多个Queue上拉取消息,这种情况下的发送和消费是不能保证顺序的。如果将消息仅发送到同一个Queue中,消费时也只从这个Queue上拉取消息,就严格保证了消息的顺序性。2 为什么需要顺序消息例如,现在有TOPIC ORDER_STATUS (订单状态),其下有4个Queue队列,该Topic中的不同消息用于描

2021-08-16 15:57:05 267

原创 RocketMQ应用01-普通消息

1 消息发送分类Producer对于消息的发送方式也有多种选择,不同的方式会产生不同的系统效果。同步发送消息同步发送消息是指,Producer发出⼀条消息后,会在收到MQ返回的ACK之后才发下⼀条消息。该方式的消息可靠性最高,但消息发送效率太低。异步发送消息异步发送消息是指,Producer发出消息后无需等待MQ返回ACK,直接发送下一条消息。该方式的消息可靠性可以得到保障,消息发送效率也可以。单向发送消息单向发送消息是指,Producer仅负责发送消息,不等待、不处理MQ的ACK。该

2021-08-16 15:24:32 162

原创 IntelliJ IDEA使用指南

正确导入项目查看配置文件或java类是否导入正常,避免编译无法找到配置文件运行当前上下文Shift+F10 运行主程序Shift+F9 Debug运行主程序在当前可运行列表中选择一个运行Alt+Shift+F10 运行Alt+Shift+F9 Debug运行断点调试Debug操作Ctrl+F8 添加断点F8 单步执行F7 进入方法Shift+F8 退出方法,跳到调用方法处Ctrl+Shift+F8 查看所有断点,设置条件断点F9 执行到下一个断点,没有下一个断点则执行完Alt+

2021-08-16 09:56:00 2430

原创 NuxtJS服务器端渲染

01-服务端渲染技术一、搜索引擎优化1、什么是SEO总结:seo是网站为了提高自已的网站排名,获得更多的流量,对网站的结构及内容进行调整和优化,以便搜索引擎 (百度,google等)更好抓取到优质网站的内容。2、搜索引擎工作流程常见的SEO方法比如:对url链接的规范化,多用restful风格的url,多用静态资源url;注意keywords、description、title的设置;h1-h6、a标签的使用– 等等注意:spider对javascript支持不好,ajax获取

2021-08-15 19:56:21 979

原创 04-模块化

一、模块化简介1、背景创建04-module-demo目录,创建 “no-module” 目录,创建a.jsvar star = '王力宏'创建b.jsvar star = 5创建demo.html从这个例子可以看出,star的值的不确定性很大,a和b两个脚本文件中的同名变量互相干扰。<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta nam

2021-08-15 17:36:34 85

原创 03-axios

一、axios入门1、axios的作用Axios 是一个基于 promise 的 HTTP 库,可以用在浏览器和 node.js 中。官方网站:http://www.axios-js.com2、axios应用案例step1:mybatis-plus中添加后端接口依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-s

2021-08-15 17:30:10 170

原创 02-ECMAScript 6 简介

一、ECMAScript1、ECMAECMA(European Computer Manufacturers Association)中文名称为欧洲计算机制造商协会,这个组织的目标是评估、开发和认可电信和计算机标准。1994 年后该组织改名为 Ecma 国际。2、ECMAScriptECMAScript 是由 Ecma 国际通过 ECMA-262 标准化的脚本程序设计语言。3、什么是 ECMA-262Ecma 国际制定了许多标准,而 ECMA-262 只是其中的一个4、ECMA-262 历史

2021-08-15 17:21:59 241

原创 Alibaba EasyExcel

01-EasyExcel简介一、Excel导入导出的应用场景1、数据导入减轻录入工作量2、数据导出统计信息归档3、数据传输异构系统之间数据传输二、EasyExcel简介常见excel分析框架:POI、EasyExcel1、官方网站https://github.com/alibaba/easyexcel快速开始:https://www.yuque.com/easyexcel/doc/easyexcel2、EasyExcel特点Java领域解析、生成Excel比较有名的框架有Apa

2021-08-15 13:16:57 254

原创 Elasticsearch进阶

路由计算分片控制数据写流程数据读流程文档刷新&文档刷写&文档合并

2021-08-13 14:44:11 70

原创 RocketMQ-介绍

RocketMQ概述1、RocketMQ简介RocketMQ是一个统一消息引擎、轻量级数据处理平台。RocketMQ是一款阿里巴巴开源的消息中间件。2016年11月28日,阿里巴巴向 Apache 软件基金会捐赠RocketMQ,成为 Apache 孵化项目。2017 年 9 月 25 日,Apache 宣布 RocketMQ孵化成为 Apache 顶级项目(TLP ),成为国内首个互联网中间件在 Apache 上的顶级项目。官网地址:http://rocketmq.apache.org2、R

2021-08-10 18:05:01 3683 3

原创 消息队列MQ概述

1、MQ简介MQ,Message Queue,是一种提供消息队列服务的中间件,也称为消息中间件,是一套提供了消息生产、存储、消费全过程API的软件系统。消息即数据。一般消息的体量不会很大。2、MQ用途限流削峰MQ可以将系统的超量请求暂存其中,以便系统后期可以慢慢进行处理,从而避免了请求的丢失或系统被压垮。异步解耦上游系统对下游系统的调用若为同步调用,则会大大降低系统的吞吐量与并发度,且系统耦合度太高。而异步调用则会解决这些问题。所以两层之间若要实现由同步到异步的转化,一般性做法就是,在这两

2021-08-10 15:34:46 1140

原创 01-Node.js入门

一、Node.js的概念1、JavaScript引擎浏览器的内核包括两部分核心:DOM渲染引擎JavaScript解析引擎创建文件夹01-Node_demo,案例:dom引擎和js引擎.html<!DOCTYPE html><html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-widt

2021-08-07 19:43:05 101

原创 00-前端开发和前端开发工具

一、软件开发流程最初所有的开发工作都是由后端工程师完成的,随着业务越来越繁杂,工作量变大,于是我们将项目中的可视化部分和一部分交互功能的开发工作剥离出来,形成了前端开发。大约从2005年开始正式的前端工程师角色被行业所认可,到了2010年,互联网开始全面进入移动时代,前端开发的工作越来越重要。二、VS Code1、下载和安装https://code.visualstudio.com/Download2、配置中文插件1、首先安装中文插件:Chinese (Simplified) Languag

2021-08-07 19:29:45 934 4

原创 05-MyBatisPlus条件构造器

一、wapper介绍1、Wrapper家族在MP中我们可以使用通用Mapper(BaseMapper)实现基本查询,也可以使用自定义Mapper(自定义XML)来实现更高级的查询。当然你也可以结合条件构造器来方便的实现更多的高级查询。Wrapper : 条件构造抽象类,最顶端父类 AbstractWrapper : 用于查询条件封装,生成 sql 的 where 条件 QueryWrapper : 查询条件封装 UpdateWrapper : Update

2021-08-06 16:39:11 141

原创 04-MyBatisPlus插件

一、分页插件MyBatis Plus自带分页插件,只要简单的配置即可实现分页功能1、添加配置类创建config包,创建MybatisPlusConfig类package com.atguigu.mybatisplus.config;@Configuration@MapperScan("com.atguigu.mybatisplus.mapper") //可以将主类中的注解移到此处public class MybatisPlusConfig {}2、添加分页插件配置类中添加@Bea

2021-08-06 16:28:49 142

原创 03-MyBatisPlus常用注解

一、@TableNamevalue属性实体类的名字是User,数据库表名是t_user@TableName(value = "t_user")public class User {二、@TableId1、雪花算法默认情况下数据库的id列使用的是基于雪花算法的策略生成背景随着业务规模的不断扩大,需要选择合适的方案去应对数据规模的增长,以应对逐渐增长的访问压力和数据量。数据库的扩展方式主要包括:业务分库、主从复制,数据库分表。数据库分表将不同业务数据分散存储到不同的数据库服务器,能够

2021-08-06 16:20:17 298

原创 02-MyBatisPlus基本CRUD

一、通用MapperMP中的基本CRUD在内置的BaseMapper中都已得到了实现。创建MapperTests测试类:package com.atguigu.mybatisplus;@SpringBootTestpublic class MapperTests { @Resource private UserMapper userMapper;}1、Create新增@Testpublic void testInsert(){ User user = new

2021-08-06 15:52:16 149

原创 01-MyBatisPlus入门

快速入门1、创建数据库创建数据库:mybatis_plus创建数据表:userCREATE TABLE user( id BIGINT(20) NOT NULL COMMENT '主键ID', name VARCHAR(30) NULL DEFAULT NULL COMMENT '姓名', age INT(11) NULL DEFAULT NULL COMMENT '年龄', email VARCHAR(50) NULL DEFAULT NULL COMMENT '邮箱', PRIMA

2021-08-06 15:38:40 72

原创 Elasticsearch学习记录

面试题es 在数据量很大的情况下(数十亿级别)如何提高查询效率?性能优化重点——filesystem cache:向es 里写的数据,实际上都写到磁盘文件里去了,查询的时候,操作系统会将磁盘文件里的数据自动缓存到 filesystem cache 里面去;es 的搜索引擎严重依赖于底层的 filesystem cache,你如果给 filesystem cache 更多的内存,尽量让内存可以容纳所有的 idx segment file 索引数据文件,那么你搜索的时候就基本都是走内存的,性能会非常高;要让

2021-08-04 16:58:03 91

原创 Mycat学习记录

简介Mycat的官网:http://www.mycat.io/数据库中间件Mycat 是数据库中间件。中间件:是一类连接软件组件和应用的计算机软件,以便于软件各部件之间的沟通。例子:Tomcat,web中间件。数据库中间件:连接java应用程序和数据库为什么要用MycatJava与数据库紧耦合。高访问量高并发对数据库的压力。读写请求数据不一致数据库中间件对比Mycat的作用读写分离数据分片垂直拆分(分库)、水平拆分(分表)、垂直+水平拆分(分库分表)多数据源整

2021-08-03 20:23:25 73

原创 SpringBoot整合MongoDB开发记录

异常排查1、查询抛ConverterNotFoundException异常org.springframework.core.convert.ConverterNotFoundException: No converter found capable of converting from type [java.util.Date] to type [java.sql.Timestamp]解决方法自定义转换器package com.zx.mongoconfig;import org.sprin

2021-07-21 17:21:03 617

原创 Nginx指南

1.概述Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点开发的,第一个公开版本0.1.0发布于2004年10月4日。Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行。其特点是占有内存少,并发能力强。2.工作模式nginx有两种工作模式:master-worker模式和单进程

2021-07-15 16:35:13 522

原创 前端打包到后台Vue elementui字体图标显示问题解决方案

原因分析如果你的前端打包资源放置在了诸如 sprint boot 的后端项目中,可以看看是不是后端的项目把你的 woff 的字体图标文件进行了转义,导致浏览器解析失败。解决方案在maven文件的pom文件的build标签加入下面的<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-resources-plugin</artifactId>

2021-04-02 09:38:15 453

原创 Nacos指南

Nacos 快速开始这个快速开始手册是帮忙您快速在您的电脑上,下载、安装并使用 Nacos。0.版本选择您可以在Nacos的release notes及博客中找到每个版本支持的功能的介绍,当前推荐的稳定版本为1.4.1。1.预备环境准备Nacos 依赖 Java 环境来运行。如果您是从代码开始构建并运行Nacos,还需要为此配置 Maven环境,请确保是在以下版本环境中安装使用:64 bit OS,支持 Linux/Unix/Mac/Windows,推荐选用 Linux/Unix/Mac。6

2021-01-22 11:37:15 168

原创 SpringBoot整合SpringSecurity角色名称不匹配

异常报错Whitelabel Error PageThis application has no explicit mapping for /error, so you are seeing this as a fallback.Mon Apr 13 10:14:58 CST 2020There was an unexpected error (type=Forbidden, statu...

2020-04-13 10:34:06 240

原创 SpringBoot整合Spring Security自定义UserDetailsService使用@Autowired注入为NULL

问题分析Spring Security在Spring加载完Bean之前就加载了解决方案在SecurityConfig中添加如下代码@Bean public UserDetailsService myUserService(){ return new MyUserDetailsService(); }@Override public void co...

2020-04-13 10:22:32 2677

空空如也

空空如也

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

TA关注的人

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