自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(170)
  • 资源 (1)
  • 收藏
  • 关注

原创 Swagger接口管理工具

发现了痛点就要去找解决方案。解决方案用的人多了,就成了标准的规范,这就是Swagger的由来。通过这套规范,你只需要按照它的规范去定义接口及接口相关的信息。再通过Swagger衍生出来的一系列项目和工具,就可以做到生成各种格式的接口文档,生成多种语言的客户端和服务端的代码,以及在线接口调试页面等等。这样,如果按照新的开发模式,在开发新版本或者迭代版本的时候,只需要更新Swagger描述文件,就可以自动生成接口文档和客户端服务端代码,做到调用端代码、服务端代码以及接口文档的一致性。

2022-10-22 20:57:50 2018 1

原创 SpringBoot整合MongoDB以及副本集、分片集群的搭建

可以摆脱手动分片的管理困扰,集群自动切分数据做负载均衡。MongoDB分片的基本思想就是将集合拆分成多个块,这些快分散在若干个片里,每个片只负责总数据的一部分,应用程序不必知道哪些片对应哪些数据,甚至不需要知道数据拆分了,所以在分片之前会运行一个路由进程,mongos进程,这个路由器知道所有的数据存放位置,应用只需要直接与mongos交互即可。: 片键,设置分片时需要在集合中选一个键,用该键的值作为拆分数据的依据,这个片键称之为(shard key),片键的选取很重要,片键的选取决定了数据散列是否均匀。

2022-09-28 16:37:30 5730

原创 MongoDB中 $type 字段、索引、聚合的概念以及相应操作命令

索引通常能够极大的提高查询的效率,如果没有索引,MongoDB在读取数据时必须扫描集合中的每个文件并选取那些符合查询条件的记录。这种扫描全集合的查询效率是非常低的,特别在处理大量的数据时,查询可以要花费几十秒甚至几分钟,这对网站的性能是非常致命的。索引是特殊的数据结构,索引存储在一个易于遍历读取的数据集合中,索引是对数据库表中一列或多列的值进行排序的一种结构。MongoDB在集合层面上定义了索引,并支持对MongoDB集合中的任何字段或文档的子字段进行索引。2、查看集合索引大小。3、删除集合所有索引。

2022-09-28 16:35:57 1220

原创 MongoDB常用命令

参考文档: https://docs.mongodb.com/manual/reference/method/MongoDB OR 条件语句使用了关键字。

2022-09-28 16:33:48 2648

原创 MongoDB 简介、特点、安装、核心概念

官方MongoDB是一个文档数据库,旨在方便应用开发和扩展。百度百科MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展高性能数据存储解决方案。MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。他支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,

2022-09-28 16:31:35 466

原创 JWT 认证

JSON Web Token (JWT) is an open standard (RFC 7519) that defines a compact and self-contained way for securely transmitting information between parties as a JSON object. This information can be verified and trusted because it is digitally signed. JWTs can

2022-09-24 17:13:42 269

原创 Elasticsearch

​简称ES,是基于构建的开源搜索引擎,是当前最流行的企业级搜索引擎。Lucene本身就可以被认为迄今为止性能最好的一款开源搜索引擎工具包,但是lucene的API相对复杂,需要深厚的搜索理论。很难集成到实际的应用中去。ES是采用java语言编写,提供了简单易用的RestFul API,开发者可以使用其简单的RestFul API,开发相关的搜索功能,从而避免lucene的复杂性。是一个针对的开源分析及可视化平台,使用Kibana可以查询、查看并与存储在ES索引的数据进行交互操作。

2022-09-24 08:27:17 2892

原创 Spring Cloud Alibaba 中 Sentinel 组件的使用

Sentineltakes “flow” as the breakthrough point, and works on multiple fields including flow control, circuit breaking and load protection to protect service reliability. —[摘自官网]# 0.说明- 翻译:随着微服务的普及,服务调用的稳定性变得越来越重要。

2022-09-10 22:11:40 510

原创 Spring Cloud Alibaba 中 Nacos 组件的使用

spring cloud 用来解决微服务系统中(分布式系统)解决方案spring cloud alibaba 用来解决微服务系统中解决方案# 0.原文翻译- 阿里云为分布式应用开发提供了一站式解决方案。它包含了开发分布式应用程序所需的所有组件,使您可以轻松地使用springcloud开发应用程序。- 有了阿里云,你只需要添加一些注解和少量的配置,就可以将Spring云应用连接到阿里的分布式解决方案上,用阿里中间件搭建一个分布式应用系统。# 1. spring cloud alibaba 特点。

2022-09-09 22:05:54 662

原创 统一配置中心Config、Bus组件的使用以及 SpringCloud 微服务工具集总结

0.说明- config(配置)又称为 统一配置中心顾名思义,就是将配置统一管理,配置统一管理的好处是在日后大规模集群部署服务应用时相同的服务配置一致,日后再修改配置只需要统一修改全部同步,不需要一个一个服务手动维护。注意:注册中心的配置是不能放到远端仓库的# 1.统一配置中心组件流程图统一配置中心服务端(server) :集中管理配置文件统一配置中心客户端(client) :其实就是一个一个的微服务前置操作# 1. 使用gitee创建新的仓库 [github会出错,建议使用gitee]

2022-09-08 18:55:17 488

原创 SpringCloud中服务熔断组件Hystrix和网关组件Gateway的使用

1.共同点- 目的很一致,都是从可用性可靠性着想,为防止系统的整体缓慢甚至崩溃,采用的技术手段;- 最终表现类似,对于两者来说,最终让用户体验到的是某些功能暂时不可达或不可用;- 粒度一般都是服务级别,当然,业界也有不少更细粒度的做法,比如做到数据持久层(允许查询,不允许增删改);- 自治性要求很高,熔断模式一般都是服务基于策略的自动触发,降级虽说可人工干预,但在微服务架构下,完全靠人显然不可能,开关预置、配置中心都是必要手段;sentinel# 2.异同点。

2022-09-07 17:38:45 1938

原创 SpringCloud中服务间通信方式以及Ribbon、Openfeign组件的使用

如果返回类型为map,在业务中map定义一般是 Map,key是String,value是Object,比如我们的类别服务调用商品服务的话,返回一个map,如果想在类别服务中处理一下map,因为数据在处理时只能由子类转为父类,不能由父类转为子类,所以我们要自定义序列化,先将Object转为json,再自定义将json转为指定类型数据。RestTemplate是由java管理的,我们希望日后直接注入使用,建议写一个配置类,日后直接注入RestTemplate即可。

2022-09-05 21:41:08 1169

原创 SpringCloud简介以及服务注册中心eureka、consul的client和server端的开发

官网: https://www.martinfowler.com/articles/microservices.htmlIn short, the microservice architectural(架构) style is an approach to developing a single application asa suite(系列) of small services, eachrunning in its own process(进程)

2022-09-03 22:00:38 619

原创 Hutool工具(一)

准备环境Hutool是一个小而全的Java工具类库,通过静态方法封装,降低相关API的学习成本,提高工作效率,使Java拥有函数式语言般的优雅,让Java语言也可以“甜甜的”。Hutool中的工具方法来自于每个用户的精雕细琢,它涵盖了Java开发底层代码中的方方面面,它既是大型项目开发中解决小问题的利器,也是小型项目中的效率担当;Hutool是项目中“util”包友好的替代,它节省了开发人员对项目中公用类和公用工具方法的封装时间,使开发专注于业务,同时可以最大限度的避免封装不完善带来的bug。...

2022-08-31 18:03:33 11740 1

原创 Zookeeper

ZooKeeper(动物园管理者) 简称,,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。ZooKeeper 使用 Java 所编写,但是支持 Java 和 C 两种编程语言。

2022-08-26 22:46:56 804

原创 RabbitMQ

connections:无论生产者还是消费者,都需要与RabbitMQ建立连接后才可以完成消息的生产和消费,在这里可以查看连接情况,哪些客户端与rabbitmq建立了连接channels:通道,建立连接后,会形成通道,消息的投递获取依赖通道。Exchanges:交换机(路由),用来实现消息的路由AMQP default direct D 代表 AMQP default 是直连的方式,D代表存在在磁盘中的,也就是说日后不会随着 rabbitmq 重启或错误而丢失数据。...

2022-08-25 20:47:58 682

原创 后端开发常用工具Lombok

很重要一个原因就是因为随着项目业务模块功能不断扩展,项目中涉及库表越来越多,导致项目中实体类(Entity)对象越来越多,每次写Entity对象最头疼就是生成Get,SET等相关方法,极大影响开发效率,如何更好的解决呢?通俗解释: lombok快速开发工具,提供了一组java相关注解,通过注解用来更快速生成java对象中我们想要的相关方法(get,set,toString …用来给类中set方法开启链式调用 , chain属性: 用来指定是否开启SET方法链式调用 true 开启 false 不开启。

2022-08-23 21:39:53 245

原创 Git安装、原理、常用命令、版本控制、如何上传普通文件到仓库以及如何修改IDEA中Terminal为git窗口

Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。Git 与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持。在 Windows 平台上安装 Git ,有个叫做 msysGit 的项目提供了安装包,可以到 GitHub 的页面上下载 exe 安装文件并运行:安装包下载地址:https://gitforwindo

2022-08-23 20:19:49 822

原创 Docker Compose 和 Docker可视化工具

Compose项目是 Docker 官方的开源项目,负责实现对 Docker 容器集群的快速编排。从功能上看,跟OpenStack中的Heat十分类似。其代码目前在 https://github.com/docker/compose 上开源。Compose定位是 「定义和运行多个 Docker 容器的应用(Defining and running multi-container Docker applications)」,其前身是开源项目 Fig。通过第一部分中的介绍,我们知道使用一个。

2022-08-23 19:23:20 1453

原创 docker高级网络配置、高级数据卷机制和Dockerfile说明

Dockerfile可以认为是Docker镜像的描述文件,是由一系列命令和参数构成的脚本。主要作用是用来构建docker镜像的构建文件。通过架构图可以看出通过DockerFile可以直接构建镜像。

2022-08-23 19:19:59 588

原创 docker安装常用服务(mysql、redis、nginx、tomcat、MongoDB、Elasticsearch)

【代码】docker安装常用服务(mysql、redis、nginx、tomcat、MongoDB、Elasticsearch)

2022-08-23 19:16:48 738

原创 docker配置阿里云镜像加速、镜像和容器常用命令、docker镜像原理

对于一个精简的OS,rootfs可以很小,只需要包括最基本的命令,工具,和程序库就可以了,因为底层直接使用Host的Kernal,自己只需要提供rootfs就行了。rootfs(root file system),在bootfs之上,包含的就是典型的linux系统中的/dev,/proc,/bin,/etc等标准的目录和文件。镜像是一种轻量级的,可执行的独立软件包,用来打包软件运行环境和基于运行环境开发的软件,它包含运行某个软件所需的所有内容,包括代码、运行时所需的库、环境变量和配置文件。

2022-08-22 15:21:24 1321

原创 docker定义、起源、和虚拟机的区别、docker的安装以及docker的核心架构

最新官网首页# 1.官方介绍- 翻译: 我们为你提供了一个完整的容器解决方案,不管你是谁,不管你在哪,你都可以开始容器的的旅程。- 官方定义: docker是一个容器技术。在开发的时候,在本机测试环境可以跑,生产环境跑不起来这里我们拿java Web应用程序举例,我们一个java Web应用程序涉及很多东西,比如jdk、tomcat、mysql等软件环境。当这些其中某一项版本不一致的时候,可能就会导致应用程序跑不起来这种情况。

2022-08-21 17:10:20 160

原创 手写简易Spring

实现其中的两个方法,一个在初始化bean前调用,一个在初始化bean后调用,在其中写我们自己想要写的逻辑。AOP 其实就是利用 BeanPostProcessor 实现的,并且它就是在初始化后这一步实现的。如果想要在初始化的时候专门有一个方法用于处理一些逻辑时,我们应该怎么做呢?注意:下面有些代码有的只是简单写了一下大致流程,具体细节会在之后实现。在工厂中的名字传给这个值,我们应该如何实现呢,这就需要用到。那么在 Spring 中我们如何实现呢?我们新创建一个类,然后让其实现。Spring实现包中。

2022-08-21 17:08:26 1074 4

原创 第7章 项目进阶,构建安全高效的企业服务(下)

AccessKey、SecretKey,其中AccessKey是用来标识用户的身份的,就是说我们要往空间里传东西,不是谁都能传的,你只有有AccessKey表示你是当前空间的使用者才有权限传,SecretKey是用来在上传具体内容的时候为这个内容加密,所以需要两个key,这两个key最好把它配到配置文件里,万一将来这两个key有所变化好去改动而不是把它写死在程序里(注意:我们的这个域名只支持http访问,不支持https访问)主要配两个内容,配这个秘钥,一共有两个秘钥,...

2022-08-18 08:42:32 301

原创 第7章 项目进阶,构建安全高效的企业服务(上)

所谓CSRF攻击就是浏览器向服务器发送了一个提交表单请求,此时浏览器访问了另一个不安全的网站,这个网站获取到了浏览器的cookie,而浏览器的cookie存着登录凭证,这个时候这个不安全的网站会伪装自己为浏览器向服务器提交表单,如果这个表单是转账相关的业务的话,那就比较危险了。我们最终要把用户的权限存到SecurityContext里,首先这个用户查到以后具有什么权限,我们还得做一个适配,就是提供根据用户获得用户权限的方法,当需要的时候调一下就可以了。我们开发的时候是在业务层,想做。...

2022-08-18 08:28:07 198

原创 第6章 Elasticsearch,分布式搜索引擎

postman可以模拟web客户端, 说白了可以模仿网页,发送http请求,为什么需要这么一个工具呢,因为其实我们直接通过命令行去访问ES服务器,如果是查询某些东西还好,但是如果要往里面存东西,这个命令太长了,记不住,也很难写,因为ES支持用http方式去访问,如果我们有一个现成的网页,有一个框往里面填数据很方便,但是我们没有这个网页,那么这个 postman 就能替代那个网页,然后可以通过框构造一些数据提交给ES服务器,这样比较方便。总之,为了提高入门ES使用的体验,我们使用postman。...

2022-08-18 08:24:41 260

原创 第5章 Kafka,构建TB级异步消息系统

5.2 Kafka入门http://kafka.apache.orgBroker:Kafka的服务器,每一台服务器称其为BrokerZookeeper:可以用 Zookeeper 管理 Kafka 的集群Topic:主题,理解为文件夹,用来存放消息的位置Partition:分区,是对主题位置的分区Offset:消息在分区内存放的索引Leader Replica:祖副本,可以从祖副本读数据,也可以对数据做备份,Follower Replica:随从副本,只是备份kafka不分操作系统,都是一个包配置 zoo

2022-08-18 08:22:24 268

原创 第4章 Redis,一站式高性能存储方案(下)

在常量接口CommunityConstant中定义一个常量表示实体类型是User。在主页显示正确的状态和数量,主页是通过UserController访问的。因为关注、取关比较高频,所以我们存到key里,所以我们在。表现层(Controller和themeleaf模板)然后我们要使用reid存储凭证,所以我们可以把之前的。页面,因为我们是通过这个页面跳转到。开发过程很相似,所以这里一起开发。里增加两个方法去生成key。里增加两个方法去生成key。业务层(Service)然后是处理展示个人主页。...

2022-08-18 08:16:23 189

原创 第4章 Redis,一站式高性能存储方案(上)

因为redis是一个数据库,它也是支持事务的,但是它所支持的事务的机制不完全满足ACID四个特性,因为毕竟它不是关系型数据库,只有关系型数据库才严格满足这四个特点,整体来说redis的事务管理是比较简单的。Spring支持redis的声明式事务和编程式事务,也是声明式事务更简单,只要做一些配置,加上@Transactional注解就可以了,但是因为redis的事务有刚才所说的问题的存在,所以我们通常。:因为事务之内的命令不会立刻执行,而是提交时统一批量的执行,所以如果在事务的过程中做了一个查询(这个。...

2022-08-18 08:14:15 233

原创 第3章 Spring Boot进阶,开发社区核心功能(下)

因为controller发生异常之后,我们统一处理,记了日志,处理完以后我们得去到 500那个页面,这个时候因为是我们人为处理的,我们需要手动的重定向过去,所以我们需要提前把 500 页面这个请求的访问给它配一下,增加一下这个请求的处理。这个注解的作用是,页面向服务器传参,会被自动的做转换,是因为内部调了很多的参数转换器,万一程序当中默认的参数转换器不够用,有一个特殊的类型需要处理,可以自定义一个转换器,然后用 @DataBinder 把它注册上。表现层我们需要两个功能,一个是私信列表,一个是私信详情。..

2022-08-14 07:19:19 324 1

原创 第3章 Spring Boot进阶,开发社区核心功能(上)

在下面的工具类中我们会读取这个文本文件,这里提前给出2. 开发过滤敏感词的工具类为了方便以后复用,我们把过滤敏感词写成一个工具类SensitiveFilter。上面就是过滤敏感词工具类的全部代码,接下来我们来解释一下开发步骤开发过滤敏感词组件分为三步:我们将定义前缀树写为SensitiveFilter工具类的内部类将敏感词添加到前缀树中如何过滤文本中的敏感词:特殊符号怎么处理:敏感词前缀树初始化完毕之后,过滤文本中的敏感词的算法应该如下:定义三个指针:经测试,过滤敏感词的工具类开发完成,这个工

2022-08-11 16:31:37 266

原创 第2章 Spring Boot实践,开发社区登录模块(下)

自定义注解我们在定义自己的注解的时候需要用元注解定义我们自己的注解@Target用来声明自定义的注解可以写在哪个位置:类 / 方法@Retention用来声明自定义注解保留的时间或有效时间:编译时有效 / 运行时有效@Document用来声明自定义注解在生成文档时要不要把这个注解也带上去@Inherited表示这个自定义注解可不可以被子类继承自定义注解的时候前两个元注解基本上是必须写的。...

2022-08-04 09:49:26 397

原创 第2章 Spring Boot实践,开发社区登录模块(上)

不是在LoginController中的getLoginPage访问登录方法之中写的,getLoginPage这个方法是给浏览器返回一个html,而这个html里面会包含一个图片的路径,浏览器会依据路径再次访问服务器获得这个图片,所以我们需要再单独写一个请求(LoginController中的方法)向浏览器返回图片,当然登录页面的html会引用这个方法的路径。,能存到cookie就存到cookie,不能存到cookie的数据就存到关系型数据库里,数据库的数据存在硬盘里,存取比较慢,性能慢。...

2022-08-02 07:29:19 568

原创 第1章 初识Spring Boot,开发社区首页(下)

浏览器在给服务器发送请求时,首先发送给 Controller 然后 Controller 调 Service,然后 Service 调 DAO,所以我们开发的时候建议先开发 DAO,然后开发 Service,最后开发 controller。社区首页需要用到的数据库表本次开发用到的类在下面图中显示首先需要建立一个与该表对应的实体类DiscussPost接下来开发DAO接口:DiscussPostMapper接下来我们要创建这个DAO接口对应的mapper配置文件:discusspost-mapper.

2022-07-21 17:54:36 813 1

原创 第1章 初识Spring Boot,开发社区首页(上)

Maven的作用maven可以帮我们创建项目、编译项目、测试项目httpshttpsHTTP**超文本传输协议(HTTP)**是一个用于传输超媒体文档(例如HTML)的应用层协议。它是为Web浏览器与Web服务器之间的通信而设计的。HTTP遵循经典的客户端-服务端模型,客户端打开一个连接以发出请求,然后等待直到收到服务器端响应。HTTP是一种能够获取如HTML这样的网络资源的protocol(通讯协议)。打开一个TCP连接SpringMVC就是基于HTTP协议的框架。...

2022-07-19 21:25:37 418

原创 SpringBoot整合Mybatisplus

Mybatis-Plus 实战教程1.什么是Mybatis-Plus1.1 什么是mybatis-plus官网:https://www.mybatis-plus.com/guide/MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。1.2 官方愿景1.3 特性无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑损耗小:启动即会自动注入基本 CURD,性能基本无损耗,直接面向对象

2022-04-30 06:25:25 1930

原创 Linux环境下Tomcat负载均衡集群的搭建

1. Tomcat负载均衡集群搭建关于代理服务器代理服务器自身并不负责处理请求,而是把请求转发给真正的服务器,真正的服务器处理完之后,返回给它,它再去做一个响应,这叫反向代理服务器。Nginx就是一个反向代理服务器,日后它可以接收大规模的请求,接收完成之后它可以把我们的请求均分到所有的集群结点之中。也就是说,日后可以通过Ngnix去管理服务器集群中的众多节点。日后所有的请求经过Ngnix时,Ngnix就可以帮助我们解决负载均衡,Ngnix的核心就是去完成负载均衡。Ngnix不仅可以作为方向代理服

2022-04-27 19:45:40 3550

原创 Linux环境下搭建MySQL的读写分离架构

5. Linux搭建MySQL的读写分离架构如果在一个时刻有大量的请求涌向master,master可能由于并发压力问题宕机,为了解决单节点的并发压力问题,就产生了一种新的架构,叫做读写分离架构,读写分离架构是基于主从复制架构和集群的基础之上所做的处理。在日常服务中,查询请求是要远多于修改请求的,比如京东618时可能在1000次查询之中只会有 10 ~ 100 次订单请求。我们让 master 用来处理写请求(增、删、改),而所有的读请求(查)都交由 slave 处理这就是读写分离架构,这种架构可以有

2022-04-26 13:36:32 1693 1

原创 Linux系统中安装MySQL以及搭建MySQL主从复制架构

3. 在Linux系统中安装MySQL3.1 环境准备# 1.卸载mariadb 在安装 MySQL 之前,我们首先需要卸载 mariadb, 因为它会和 MySQL产生冲突。 执行命令rpm -qa | grep mariadb 搜索和 mariadb 相关的安装包 rpm -qa | grep mariadb 之后使用 rpm 指令执行命令rpm -e --nodeps mariadb-libs-5.5.68-1.el7.x86_64,自己执行查询命令出 现什么,这里就删除什么,

2022-04-25 13:08:45 3026

SpringBoot+JSP+Mybatis用户管理员工项目源码

源码讲解在我的博客里

2022-03-23

空空如也

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

TA关注的人

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