- 博客(158)
- 收藏
- 关注
原创 Vue详细说明
一、Vue简介1.1 简介Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式的js框架,发布于 2014 年 2 月。与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库(如:vue-router,vue-resource,vuex)或既有项目整合。1.2 MVVM 模式的实现者——双向数据绑定模式 Model:模型层,在这里表示 JavaScript 对象 Vi...
2022-03-14 11:41:58
2615
原创 Mybatis plus使用
导入依赖;<!--mybatis-plus--><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.3.1</version></dependency>正常连接数据库:spring.datasource.driver-c
2022-03-10 20:21:40
1075
原创 Lua介绍与环境搭建
1.1 lua是什么Lua 是一个小巧的脚本语言。它是巴西里约热内卢天主教大学(Pontifical Catholic University of Rio de Janeiro)里的一个由Roberto Ierusalimschy、Waldemar Celes 和 Luiz Henrique de Figueiredo三人所组成的研究小组于1993年开发的。 其设计目的是为了通过灵活嵌入应用程序中从而为应用程序提供灵活的扩展和定制功能。Lua由标准C编写而成,几乎在所有操作系统和平台上都可以编译,运行。
2022-02-18 09:18:10
432
原创 JDK8版本过高引起MySQL连接失败:javax.net.ssl.SSLHandshakeException: No appropriate protocol
com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failureThe last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server. at com.mysql.cj.jdbc.exceptions.SQLError...
2022-02-14 22:43:20
1129
原创 11、内网穿透与自动刷新
什么是内网穿透非学术的说法,通常个人电脑无论连接WiFi上网还是使用网线上网,都属于局域网里边的,外网无法直接访问到你的电脑,内网穿透可以让你的局域网中的电脑内网穿透有什么用?通过内网穿透可以实现通过外网直接访问到你的电脑那么具体可以做什么呢?1、发布应用网站,外网可以访问(这是主要作用):我们平时做的应用开发都只能在局域网本地访问,通过内网穿透,可以是全外网访问(只要有网就能访问到)在做微信支付宝支付回调的时候就需要用到这个了2、可以实现远程控制(在家访问公司电脑不是问题)内
2022-02-12 10:42:20
844
原创 9、配置中心 Spring Cloud Config与 消息总线 Spring Cloud Bus
Config简介分布式系统中,由于服务数量非常多,配置文件分散在不同微服务项目中,管理极其不方便。为了方便配置文件集中管理,需要分布式配置中心组件。在Spring Cloud中,提供了Spring Cloud Config,它支持配置文件放在配置服务的本地,也支持配置文件放在远程仓库Git(GitHub、码云)。配置中心本质上是一个微服务,同样需要注册到Eureka服务中心!【配置中心的架构图】Git配置管理远程Git仓库 知名的Git远程仓库有国外的GitH...
2022-02-11 17:10:41
327
原创 8、网关 Spring Cloud Gateway
网关作用:为微服务提供统一的路由管理,可以在路由管理基础上进行一系列的过滤,可以做一系列的监控操作,限流。1 Gateway 简介Spring Cloud Gateway 是Spring Cloud团队的一个全新项目,基于Spring 5.0、SpringBoot2.0、Project Reactor 等技术开发的网关。 旨在为微服务架构提供一种简单有效统一的API路由管理方式。Spring Cloud Gateway 作为SpringCloud生态系统中的网关,目标是替代Netflix ...
2022-02-11 16:51:38
1468
原创 7、Spring Cloud Feign
1 Feign简介Feign [feɪn] 译文 伪装。Feign是一个声明式WebService客户端.使用Feign能让编写WebService客户端更加简单,它的使用方法是定义一个接口,然后在上面添加注解。不再需要拼接URL,参数等操作。项目主页:GitHub - OpenFeign/feign: Feign makes writing java http clients easier 。 集成Ribbon的负载均衡功能 集成了Hystrix的熔断器功能 支持请求压缩
2022-02-11 16:29:33
633
原创 6 、熔断器 Spring Cloud Hystrix
Hystrix 简介Hystrix,英文意思是豪猪,全身是刺,刺是一种保护机制。Hystrix也是Netflix公司的一款组件。Hystrix的作用是什么?:实现服务熔断降级处理,保护微服务,防止雪崩效应发生。Hystrix是Netflix开源的一个延迟和容错库,用于隔离访问远程服务、第三方库、防止出现级联失败也就是雪崩效应。雪崩效应什么是雪崩效应? 1.微服务中,一个请求可能需要多个微服务接口才能实现,会形成复杂的调用链路。 2.如果某服务出现异常,请求阻塞,用户得不到响
2022-02-08 23:24:42
429
原创 5、 负载均衡 Spring Cloud Ribbon
Ribbon 简介什么是Ribbon?Ribbon是Netflix发布的负载均衡器,有助于控制HTTP客户端行为。为Ribbon配置服务提供者地址列表后,Ribbon就可基于负载均衡算法,自动帮助服务消费者请求。Ribbon默认提供的负载均衡算法:轮询(默认),随机,重试法,加权。当然,我们可用自己定义负载均衡算法多个服务集群如果想要做负载均衡,我们的服务至少2个以上,为了演示负载均衡案例,我们可以复制2个工程(去电脑目录操作也行),分别为user-provider和user-provi
2022-02-08 23:10:30
661
1
原创 4 、注册中心 Spring Cloud Eureka
执行过程:1.Provider:服务提供者,异步将自身信息注册到Register(注册中心)2.Consumer:服务消费者,异步去Register中拉取服务数据3.Register异步推送服务数据给Consumer,如果有新的服务注册了,Consumer可以直接监控到新的服务4.Consumer同步调用Provider5.Consumer和Provider异步将调用频率信息发给Monitor监控Eureka 简介Eureka解决了第一个问题(作用):服务的管理,注册和发现、状态..
2022-02-08 22:42:46
318
原创 2、springcloud 服务调用方式
RPC和HTTP常见远程调用方式:RPC:(Remote Produce Call)远程过程调用1.基于Socket2.自定义数据格式3.速度快,效率高4.典型应用代表:Dubbo,WebService,ElasticSearch集群间互相调用HTTP:网络传输协议1.基于TCP/IP2.规定数据传输格式3.缺点是消息封装比较臃肿、传输速度比较慢4.优点是对服务提供和调用方式没有任何技术限定,自由灵活,更符合微服务理念RPC和HTTP的区别...
2022-02-08 22:11:50
1134
原创 1、Spring Cloud概述
1.2.1 技术架构演变(1)单一应用架构当网站流量很小时,只需要一个应用,所有功能部署在一起,减少部署节点成本的框架称之为集中式框架。此时,用于简化增删改查工作量的数据访问框架(ORM)是影响项目开发的关键。(2)垂直应用架构当访问量逐渐增大,单一应用增加机器带来的加速度越来越小,将应用拆成互不相干的几个应用,以提升效率。此时,用于加速前端页面开发的Web框架(MVC)是关键。(3)分布式服务架构当垂直应用越来越多,应用之间交互不可避免,将核心业务抽...
2022-02-08 22:02:38
145
原创 SpringBoot如何实现,避免消息重复消费
利用redis实现,因此先导入Redis依赖:<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId></dependency>编写配置文件,增加redis的ip和端口配置spring: rabbitmq: host: 192
2022-01-25 12:21:50
2807
原创 RabbitMQ整合到SpringBoot
SpringBoot整合RabbitMQ创建SpringBoot工程的时候选择Web依赖导入mq依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-amqp</artifactId></dependencyyml配置文件配置mq五大参数,除了hostip和端口,补上用户名密码和虚
2022-01-25 12:00:27
1693
原创 RabbitMQ架构、RabbitMQ的使用
官方的简单架构图 Publisher - 生产者:发布消息到RabbitMQ中的Exchange Consumer - 消费者:监听RabbitMQ中的Queue中的消息 Exchange - 交换机:和生产者建立连接并接收生产者的消息 Queue - 队列:Exchange会将消息分发到指定的Queue,Queue和消费者进行交互 Routes - 路由:交换机以什么样的策略将消息发布到Queue 简单架构图,巧记,pe,r,qc ..
2022-01-24 09:45:56
2556
原创 RabbitMQ安装在Linux上
1、创建相应的文件夹配置文件,启动:[root@localhost ~]# cd /opt[root@localhost opt]# mkdir docker_rabbitmq[root@localhost opt]# cd docker_rabbitmq/[root@localhost docker_rabbitmq]# vi docker-compose.yml[root@localhost docker_rabbitmq]# docker-compose up -dCreating r
2022-01-24 09:15:02
1068
原创 SpringBoot单元测试、SpringBoot程序打包
SpringBoot单元测试需要的依赖:<!--test--><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> <!--新版本需要排除下面的干扰,但2.1.6版本.
2022-01-22 17:42:30
484
原创 SpringBoot开启定时器,引导类开启计划注解,创建一个类的对象调用方法加上计划注解,进行注解属性配置
1、在SpringBoot引导程序中添加开启定时任务注解:@EnableScheduling@SpringBootApplication@EnableScheduling//启动类开启计划即定时任务public class SpringbootJpaApplication { public static void main(String[] args) { SpringApplication.run(SpringbootJpaApplication.class, args)
2022-01-22 17:34:05
376
原创 SpringBoot与其他框架集成( 集成mybatis、集成Spring Data Redis)
通过spring initializr创建maven工程springboot-mysql-redis,并且勾选相关依赖(web、数据库驱动、mybatis)springboot-mysql-redis工程,做了上面的勾选,对应的pom.xml依赖如下↓<properties> <java.version>1.8</java.version> </properties> <dependencies> <dependenc
2022-01-22 17:25:42
1013
原创 SpringBoot配置文件的使用
我们知道SpringBoot是基于约定的,所以很多配置都有默认值。如果想修改默认配置,可以使用application.properties或application.yml(application.yaml)来自定义配置。SpringBoot默认从resources目录加载自定义配置文件。application.properties是键值对类型(一直在用,而且默认生成)。而application.yml是SpringBoot中一种新的配置文件方式,现在开始流行使用1 application.propert
2022-01-22 16:36:58
410
原创 SpringBoot原理分析(记录)
问题:1.依赖只引入了1个起步包,内置依赖了很多其他的包,为什么? 原因:Maven的依赖具有传递性,起步包依赖其他的包,所以当前工程会传递依赖其他包。 每个包之间没有冲突,怎么做到的呢? 因为当前SpringBoot工程引入的依赖包的坐标全部被父工程管理了。2.dispatcherServlet等一些对象,需要手动创建对象Bean,但是工程中并没有手动创建,是如何实现创建的?1 起步依赖原理我们可以打开方式一工程的pom.xml中的parent,并查看...
2022-01-22 16:20:15
107
原创 Idea创建SpringBoot工程(两种方法)
方式一(1)创建maven工程创建一个maven工程(建议:java工程,也可以是web工程),无需勾选maven骨架1、添加起步依赖(依赖一个父工程)2、添加web依赖<!--父工程--><parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId>
2022-01-22 16:08:40
8468
原创 Java中ElasticSearch的各种查询(普通,模糊,前缀,高亮,聚合,范围)
1、term&terms查询1.1 term查询(分页)term的查询是代表完全匹配,搜索之前不会对你搜索的关键字进行分词,对你的关键字去文档分词库中去匹配内容。ElasticSearch查询语法:# term查询POST /sms-logs-index/sms-logs-type/_search{ "from": 0, "size": 5, "query": { "term": { "province": {
2022-01-21 23:48:38
9618
2
原创 IDEA操作ElasticSearch 增删改
新建MAVEN工程导入依赖: <!-- 1. elasticsearch--> <dependency> <groupId>org.elasticsearch</groupId> <artifactId>elasticsearch</artifactId> <version>6.5.4</version> </de
2022-01-20 17:50:31
825
原创 ElasticSearch基本操作
1 ES的结构1.1 索引Index,分片和备份索引是ElasticSearch存放数据的地方,可以理解为关系型数据库中的一个数据库。事实上,我们的数据被存储和索引在分片(shards)中,索引只是一个,把一个或多个分片分组在一起的逻辑空间。然而,这只是一些内部细节——我们的程序完全不用关心分片。对于我们的程序而言,文档存储在索引(index)中。剩下的细节由Elasticsearch关心既可(索引的名字必须是全部小写,不能以下划线开头,不能包含逗号) ES的服务中,可以创建多个索引。
2022-01-19 22:11:18
1125
原创 linux中ElasticSearch的安装 安装ES&Kibana 配置IK分词器(环境搭建)
以docker为基础安装ES&Kibana1进入/opt文件夹创建yml文件所在目录,然后编辑文件,拷贝笔记配置内容过来,启动容器[root@localhost ~]# cd /opt[root@localhost opt]# lscontainerd docker_mysql_tomcat docker_nginx docker_nginx_cluster docker_redis[root@localhost opt]# mkdir docker_es[root@lo
2022-01-19 22:01:35
1666
原创 ES的介绍
ES是一个使用Java语言并且基于Lucene( Apache Lucene - Welcome to Apache Lucene )编写的搜索引擎框架,他提供了分布式的全文搜索功能,提供了一个统一的基于RESTful风格的WEB接口,官方客户端也对多种语言比如java等都提供了相应的API支持 Lucene:Lucene本身就是一个搜索引擎的底层 分布式:ES主要是为了突出他的横向扩展能力 全文检索:将一段词语进行分词,并且将分出的单个词语统一的放到一个分词库中,在搜...
2022-01-19 21:49:00
3347
原创 Redis常见问题(key生存时间,Redis淘汰机制,Redis缓存问题)
1、key的生存时间到了,Redis会立即删除吗?不会立即删除 定期删除:Redis每隔一段时间就去会去查看,Redis设置了过期时间的key,会在100ms的间隔中默认查看3个key 惰性删除:如果当你去查询一个已经过了生存时间的key时,Redis会先查看当前key的生存时间,是否已经到了,直接删除当前key,并且给用户返回一个空值 2 、Redis的淘汰机制在Redis内存已经满的时候,添加了一个新的数据时,执行淘汰机制可以通过查看redis服务器软件的配置文件
2022-01-17 18:24:53
300
原创 Redis的集群 与 Java连接Redis集群
主从结构添加哨兵能够解决读写分离和单点故障高可用但是如果数据量过大,特别是写数据量过大,这个时候一个主节点是不够的,需要进行集群搭建↓Redis集群在保证主从加哨兵的基本功能之外,还能够提升Redis存储数据的能力↓配置上图的集群,可以按照以下步骤配置:停止并删除所有容器,创建docker_redis_cluster文件夹,里面编辑docker-compose.yml文件:version: "3.1"services: redis1: image: dao
2022-01-17 18:17:04
2457
原创 Redis的主从架构(主从复制,读写分离) 与哨兵(能够实现主挂从上,保证高可用)
单机版 Redis存在读写瓶颈的问题↓所以用下面的主从架构来解决问题↓上面的主从架构读写分离,有一个问题,如果主服务器挂了就无法写了↓而哨兵可以帮助我们解决主从架构中的单点故障问题↓添加哨兵 哨兵扩展:详解,Redis 哨兵(Sentinel)工作原理,实现及哨兵运维【附源码】_已注销_51CTO博客Redis 哨兵机制以及底层原理深入解析,这次终于搞清楚了 - 知乎REDIS sentinel-old -- Redis中国用户组(CRUG).
2022-01-17 17:56:03
1879
原创 Redis持久化机制
RDBRDB是Redis默认的持久化机制 RDB持久化文件,速度比较快,而且存储的是一个二进制文件,传输起来很方便。 RDB持久化的时机: save 900 1:在900秒内,有1个key改变了,就执行RDB持久化。 save 300 10:在300秒内,有10个key改变了,就执行RDB持久化。 save 60 10000:在60秒内,有10000个key改变了,就执行RDB持久化。 RDB无法保证数据的绝对安全。 流程如下↓ 1进入redis的配
2022-01-17 12:24:54
576
原创 Redis事务
进入redis容器内部,执行客户端命令,redis-cli,才能执行下面的操作↓Redis的事务:一次事务操作,该成功的成功,该失败的失败(比如数据类型不匹配)↓先开启事务,执行一些列的命令,但是命令不会立即执行,会被放在一个队列中,如果你执行事务,那么这个队列中的命令全部执行,如果取消了事务,这个队列中的命令全部作废。 开启事务:multi 输入要执行的命令:被放入到一个队列中 执行事务:exec 取消事务: discard Red..
2022-01-17 12:14:12
163
原创 Java连接Redis
Jedis连接Redis需要依赖: <!-- 1、 Jedis--> <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.9.0</version> </dependency>测试连接:pu
2022-01-17 11:15:49
437
原创 Linux安装Redis 与 Redis基本语法
非关系型数据库: Redis就是一款NoSQL。 Redis介绍 有一位意大利人Salvatore,在开发一款LLOOGG的统计页面,因为MySQL的性能不好,自己研发了一款非关系型数据库,并命名为Redis。 Redis(Remote Dictionary Server)即远程字典服务,Redis是由C语言去编写,Redis是一款基于Key-Value的NoSQL,而且Redis是基于内存存储数据的,Redis还提供了多种持久化机制,性能可以达到110000/s读取数据
2022-01-15 23:28:55
172
原创 Linux中Docker的使用
1.Docker的思想 集装箱:会将所有需要的内容放到不同的集装箱中,谁需要这些环境就直接拿到这个集装箱就可以了。 标准化: 运输的标准化:Docker有一个码头,所有上传的集装箱都放在了这个码头上,当谁需要某一个环境,就去搬运这个集装箱就可以了。 命令的标准化:Docker提供了一些列的命令,帮助我们去获取集装箱等等操作。 提供了REST的API:衍生出了很多的图形化界面,Rancher。 隔离性:Docker运行集装箱内..
2022-01-15 15:00:35
5541
原创 Linux用户与用户组的操作
用户的常用操作命令Linux是一个多用户的操作系统,任何一个用户想要操作Linux操作系统,必须向系统管理员申请一个账号才可以,并且以这个账号的身份去操作Linux。(跟之前学的mysql用户类似)用户账号一方面可以帮助系统管理员追踪当前用户的操作。另一方面可以控制当前用户对系统资源的访问。用户添加useradd [-cgd] [选项指定的具体内容] 用户名# -c:代表comment,给用户添加一段注释# -g:代表group,可以修改用户的所在组# -d:代表指定用户的HOM
2022-01-15 13:38:18
761
原创 Linux的压缩包命令
针对tar命令Linux中常用的压缩包,大多是.tar,.tar.gz,tgz的解压压缩包针对压缩包后缀的情况,采用不同的参数,否则可能会损失文件tar [-zxvf] 压缩包名称 [-C 路径]# -z: 代表压缩包后缀是.gz的# -x: 代表解压# -v: 解压时,打印详细信息# -f: -f选项必须放在所有选项的最后,代表指定文件名称# -C 路径: 代表将压缩包内容解压到指定路径打包成压缩包可以将多个文件以及目录打包成压缩包,根据选择的参数指定压缩
2022-01-15 11:43:51
2543
原创 Linux系统命令简单介绍
Windows的目录结构是带有盘符的。D: E: C:,而Linux中是没有盘符的在Xterm中输入ls / 查看Linux的顶级目录/下面的东西Linux常用目录: root:该目录为系统管理员HOME目录 bin:这个目录下放着经常使用的命令 boot:这里存放的是启动Linux时的一些核心文件 etc:存放系统管理所需要的配置文件和子目录 home:普通用户的HOME目录 usr:默认安装软件的目录,类似Windows中的Pr..
2022-01-15 10:37:04
1690
原创 SpringMVC 框架中的拦截器
拦截器的概述 SpringMVC框架中的拦截器用于对处理器进行预处理和后处理的技术。 可以定义拦截器链,连接器链就是将拦截器按着一定的顺序结成一条链,在访问被拦截的方法时,拦截器链中的拦截器会按着定义的顺序执行。 拦截器和过滤器的功能比较类似,有区别 过滤器是Servlet规范的一部分,任何框架都可以使用过滤器技术。 拦截器是SpringMVC框架独有的。 过滤器配置了/*,可以拦截任何资源。 拦截器只会对控制器中的方法进
2022-01-14 10:11:08
217
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人