自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【Go】十四、图形验证码、短信验证码、注册接口与redis的简单使用

如何嵌入图形验证码工作:这里选择使用captcha 开源库进行验证码设计:选用下面的地址进行验证码开发工作。

2024-06-18 19:45:17 551

原创 【Go】十三、TOKEN机制与跨域处理方式

对于微服务场景来说,使用 cookie + session 来进行身份校验是一种不合适的做法,因为 生成的sessionid 是不存储任何信息的,这样我们如果要在其他模块中进行身份校验就是做不到的,例如:我们无法在商品模块中筛选出对应登录用户上传的商品,因为我们无法通过sessionid 知道当前登录的是哪个用户。由此,登录逻辑中产生了 TOKEN 的做法,TOKEN 中会携带一定的用户信息,这样即使不处于用户模块,也可以获取用户的相关信息 - 利用 TOKEN 中的用户信息去另外的模块进行查找。

2024-06-13 14:56:08 946

原创 【Go】十二、业务逻辑:验证器与登录的基本逻辑

在 validate 包中定义 validators.go 文件,用来存放自定义的验证器:import ("regexp"// 利用正则判断是否验证通过// 使用 正则 判断字符串是否合法if!ok {// ok 为false。代表正则匹配失败,后续整体返回 false 代表验证失败import (...// 初始化翻译。验证器工作,配置翻译为中文err!

2024-06-11 14:39:18 477

原创 【Go】十一、标准化请求返回与viper管理配置文件的简单使用

这里指的是:传参的方式,类似与Java的r.setData()创建目录:user-webglobalresponseuser.go定义一个结构体用于接收返回值,这里的 json 属于将对象转换为 json 时的规则定义。

2024-05-29 15:51:57 921

原创 【Go】十、路由配置以及ZAP 高性能日志库的使用

mxshop-apiuser-webapi ---- 服务接口config ---- 配置信息forms ---- 表单验证信息global ---- 全局信息initialize ---- 初始化信息middlewares ---- 中间件信息proto ---- 数据信息router ---- 路由信息utils ---- 公用工具信息validator ---- 表单校验器。

2024-05-28 15:30:47 638

原创 【Go】九、API 编写测试_实现一个用户模块的接口

New Project 直接创建项目,只需要起名字,之后在根目录中创建对应的微服务,这里先开发用户微服务模块:user_srvglobal 公共内容handler 服务model 数据模型(表结构对应的模型)proto 暴露接口main.go 用来启动程序。

2024-04-17 11:26:52 1088

原创 【Go】八、Gin 入门使用简介

GIN 是一个高性能,简单易用的轻量级 WEB 框架。

2024-03-26 14:36:51 741

原创 【大数据】五、yarn基础

YarnYarn 是用来做分布式系统中的资源协调技术MapReduce 1.x对于 MapReduce 1.x 的版本上:由 Client 发起计算请求,Job Tracker 接收请求之后分发给各个TaskTrack进行执行在这个阶段,资源的管理与请求的计算是集成在 mapreduce 上的,这种架构会导致 mapreduce 的功能过于臃肿,也会衍生出一系列的问题。而 YARN 的出现及时的对这个问题作出了改变,YARN 就类似于一个操作系统,mapreduce 就类似于运行在 YARN 这

2024-03-22 16:58:09 1079

原创 【大数据】四、HDFS 基础操作

在本地电脑上解压 hadoop.tar.gz,配置环境变量之后 去github 上 把 winutil.exe 和 hadoop.dll 下载到 hadoop 的bin 文件夹下再修改 etc/hadoop-env.cmd 中的 JDK 路径我们使用 IDEA 打开一个 JAVA Maven项目,进行测试</</</</</</</</</</</</

2024-03-21 12:18:09 459

原创 【大数据】三、HDFS 基础原理

HDFS 是一种典型的分布式文件系统,但其不是唯一的分布式文件系统HDFS 是一种新型的文件系统,不同于传统的文件系统,新型文件系统解决了传统文件系统存在的负载不均衡与网络瓶颈问题。但归根结底、这些弊端都是由传统文件系统所存在的文件存储大小不均衡造成的:文件在拆分时导致某些磁盘利用率过高等等注意:HDFS 选择使用 块机制 来解决这个问题,HDFS 中,每个块的大小为 128 MB。

2024-03-21 12:17:27 648

原创 【大数据】二、HDFS 入门演示

要了解大数据,我们就要先了解什么是数据?数据就是指人们的行为,人们的某个行为都被称为是一项数据,这些数据可以用来对生活中各种各样的事物进行分析,而我们进行分析所需要的技术就是我们所学的大数据的一系列的技术栈所谓大数据,就是指将现在的数据进行处理,并得出一定结果的技术其中,大数据的核心工作就是从海量的高增长、多类别、低信息密度的数据中发掘出高质量的结果由此延伸而出的大数据核心工作就是:数据存储、数据计算、数据传输。

2024-03-15 15:49:24 963

原创 【大数据】一、大数据环境配置

按照VMWare的流程创建虚拟机,CentOS7,创建完成之后将其复制三份,使用复制出来的三份进行后续的开发,将主要机器的内存设置为4GB、次要的虚拟机内存设置为2GB。

2024-03-15 15:48:24 805

原创 【GO】七、架构基础与 GORM 简要介绍

ORM 全称为 Object Relation Mapping(对象关系映射),主要作用就是在编程中,将每张表作为一个对象,将对象 - 表的关系进行一一映射,这里介绍 gorm 作为 go 语言的 orm 框架。ORM的优点:大幅度提高开发效率ORM的缺点:屏蔽了SQL 的细节,时间长了会阻碍对于SQL 的理解其转换成SQL的过程也降低了性能数据库的创建:字符集:utf8mb4排序规则:utf8mb4_general_ci。

2024-03-13 16:47:59 1125

原创 【Scala】一、Scala 语法基础

用于练习以及开发的 Scala 版本:2.11.8这里使用 IDEA 作为 Scala 的 IDE注意,我们必须安装 scala 插件 才可以创建scala项目${s1注意,scala 2.11 必须配合 JDK1.8 进行编译Scala 是一种存在类型推断的语言此时,f 是一个没有返回值的函数,数据类型会被定义为 Unit此时 f 是一个只有返回值为 1 的函数。

2024-03-13 16:43:38 525

原创 【GO】六、protubuf 与 GRPC (二)

client.go:server.go超时机制超时机制的设置有其必要性,每个对服务的调用都要设置超时机制,因为服务的调用需要超时机制来限制网络,以及可能发生的一系列情况,后面会慢慢提到,这里需要理解的是:超时机制是一个务必设置的内容超时机制最简单的设置就是在修改context:在客户端:若超时,我们可以捕捉到错误,其状态码是 DeadlineExceeded对于一个简单的proto源码message 部分其会生成对应的structrpc部分的serverstub部分:其会生成统一管理的xxxSe

2024-03-04 09:27:10 451

原创 【GO】六、protobuf 与 GRPC (一)

protobuf 有诸多数据类型,其中要注意的一个是:在对可能有负值参与的运算中,尽量不使用 int32 而是使用 sint64,它的效率要优于 int32。

2024-03-04 09:26:18 905 1

原创 【Go】五、Grpc 的入门使用

grpc 使用的是 protobuf 协议,其是一个通用的 rpc 框架,基本支持主流的所有语言、其底层使用 http/2 进行网络通信,具有较高的效率protobuf 是一种序列化格式,这种格式具有 序列化以及解码速度快(对比json、xml 速度快 2 - 100 倍),压缩率高等优点,是一个性能炸弹。

2024-02-20 15:05:12 623

原创 【Go】四、rpc跨语言编程基础与rpc的调用基础原理

早期 Go 语言不使用 go module 进行包管理,而是使用 go path 进行包管理,这种管理方式十分老旧,两者最显著的区别就是:Go Path 创建之后没有 go.mod 文件被创建出来,而 go module 模式会创建出一个 go.mod 文件用于管理包信息现在就是:尽量使用 Go Modules 模式另外,我们在引入包的时候,可以先进行 import 再通过编译器来下载内容,这样能让我们更简便的处理包关系。

2024-02-18 16:23:11 1326

原创 【Go】三、Go并发编程

我们主流的并发编程思路一般有:多进程、多线程但这两种方式都需要操作系统介入,进入内核态,是十分大的时间开销由此而来,一个解决该需求的技术出现了:用户级线程,也叫做 绿程、轻量级线程、协程由于 go 语言是 web2.0 时代发展起来的语言,go语言没有多线程和多进程的写法,其只有协程的写法 golang - goroutine我们可以使用这种方式来进行并发编程,但这个程序里要注意,我们主程序在确定完异步之后结束,会立即让程序退出,这就导致我们并发的子线程没来得及执行就退出了。

2024-02-06 11:02:18 1445 1

原创 【GO】二、函数、结构体与错误处理

go 语言中的函数支持 匿名函数、闭包,且其具有一等公民的特性:函数本身可以被当做变量进行传递注意函数之间参数的传递都是值传递可变形参在传递时会被当做一个 Slice 进行传递一等公民特性:函数可以作为参数进行传递,我们可以在函数的形参中定义函数,来将一个设定好的函数传入,并控制它的调用时机,令程序更加灵活。

2024-02-06 11:01:29 1090

原创 【Go】一、Go语言基本语法与常用方法容器

基础变量定义:GO语言的变量定义出来之后是有一个初值的,int为0,string为’',这一点区别于C和Javavar a int注意这里的string是不会显示的,因为是一个空串var a int// 下面这种格式会自动给字符串加一个双引号// 这个是%q的功效// 赋初值更进一步的,我们还可以省略类型在省略类型之后,我们就可以在一行赋很多不同类型的数值// 更进一步的,我们还可以省略类型// 在省略类型之后,我们就可以在一行赋很多不同类型的数值。

2024-02-06 11:00:12 1379

原创 【缓存】一、Redis的基本使用与Redisson分布式锁

Redisson通过看门狗机制和LUA脚本保证了对Redis的操作是一个原子操作,以及我们系统中断时也能保证锁的释放,同时也能保证自己的锁不会去解别人的锁,这就避免了死锁问题的出现锁的粒度问题:这样的每一条数据一把锁,这样可以保证我们一个业务只会影响自己的业务,不会影响到其他内容,否则就可能出现 A 请求被 B 阻塞的问题,就很抽象// 使用try-finally块来保证锁的释放try {

2023-12-18 17:30:38 372

原创 【性能优化】一、使用JMeter进行压力测试并进行简单调优

压力测试不同于功能测试,其目的是为了测试出系统在高并发,高数据量的情况下可能会出现的问题(内存泄露、并发、同步)有效的压力测试应用的关键条件:重复、并发、量级、随机变化。

2023-12-18 17:29:07 1087

原创 【中间件】ElasticSearch在Java中的调用尝试

日志采集(服务器、移动设备、IOT传感器) -> 数据传输汇聚(Kafka、LogStash) -> 数据存储索引(ElasticSearch集群) -> 异常定位与监控(全文检索、结构化查询、数据可视化)ES是一个基于内存的数据检索与分析引擎,我们如果有十分多的数据需要保存的话,我们可以构建多台服务器,利用ES天然适配于分布式的属性对ES中存储的数据进行分片存储。

2023-12-18 17:28:04 372

原创 【中间件】ElasticSearch:ES的基本概念与基本使用

Index索引、Type类型,类似于数据库中的数据库和表,我们说,ES的数据存储在某个索引的某个类型中(某个数据库的某个表中),Document文档(JSON格式),相当于是数据库中内容的存储方式MySQL:数据库、表、数据ElasticSearch:索引、类型、文档。

2023-11-15 14:06:05 895

原创 【函数式编程】Lambda、Stream、Optional、方法引用、并行流

这些高级特性由于自适应了并行流的技术,可以在不进行JUC并发编程优化的条件下在海量数据的场景下拥有较高的运行效率。大幅度简化代码行数,在对于熟悉新特性的开发人员来说,具有更高的可读性。

2023-10-07 17:21:11 148

原创 【MySql】MySql存储过程与函数

存储过程没有返回值,函数有返回值。

2023-09-10 13:53:28 612

原创 【JUC】一、Java并发编程基础知识

程序由指令和数据组成,程序要执行就必须将指令加载到CPU,将数据加载至内存。同时在程序的运行过程中还需要用到磁盘、网络等设备,进程就是用来加载指令、管理内存、管理IO的。程序被执行时,程序会将代码加载至内存,这时就开启了一个进程进程可以视为是程序的一个实例。大部分程序可以同时运行多个实例(记事本、画图、浏览器等),但也有一部分程序只能运行一个实例(安全卫士、网易云音乐等)

2023-09-10 13:52:23 139

原创 【MyBatis】五、MyBatis的缓存机制与逆向工程

MyBatis的一级缓存是默认开启的,是基于SqlSession级别的缓存,也就是说,只要是同一个sqlSession,只要执行的语句相同,则不会去数据库中进行查找,而是会从缓存中找到对应的结果。

2023-09-10 13:50:51 1331

原创 【MyBatis】四、MyBatis中的动态SQL标签

动态SQL语句是动态的拼接Mybatis中SQL语句的情况,可以动态的在Mybatis中使用SQL。

2023-09-10 13:47:35 176

原创 【MyBatis】三、ResultMap与多表查询的处理

在mapper.xml文件中进行定义:-- 就算是自定义映射关系,也需要相对应的实体类 --> < resultMap id = " empResultMap " type = " Emp " > <!-- id用来声明主键,property用来表示实体类中的属性名、column用来标识数据库表中的字段名 --> < id property = " eid " column = " eid " > </ id > <!

2023-09-10 13:46:48 256

原创 【MyBatis】MyBatis项目结构的搭建

将打包方式添加为jar包</</</</添加如下依赖</</</</</</</</</</</</</</</</</</

2023-09-10 13:45:04 146

原创 【MyBatis】二、MyBatis的传参与增删改查

当Sql需要传入参数时,传入参数的地方要使用${}(字符串拼接,会导致sql注入问题,且要加’')或者#{}(占位符替代方式)若要传入多个参数时,不能直接使用传入的形参名称作为参数,而要是用arg0、arg1来获取传入的参数,这是因为在mybatis中,若传入了多个参数,传入的参数是以键值对的方式存储在底层中的,存储方式为:(arg0-values1、arg1-values2…)</

2023-09-10 13:43:49 143

原创 【MyBatis】一、MyBatis概述与基本使用

Mybatis是一个半自动化的框架,需要自己写sql语句,对比JDBC其有耦合性更低的SQL语句与Java代码,各司其职不相互冗杂,对比Hibernate与JPA其又有更灵活的SQL编写能力。

2023-09-10 13:41:39 153

原创 【JDBC】数据库连接池

为数据库建立一个缓冲池,与现在缓冲池中放一定数量的数据库连接,当需要使用连接时,从缓冲池中拿出一个使用,使用完毕后再放回去,其允许应用程序重复的使用一个数据库连接,而并不是不断的进行创建和关闭。数据库连接池负责分配、管理和释放连接。

2023-07-24 15:48:02 163

原创 【JDBC】三、Blob和批处理操作

将Blob视为一个流,进行流一样的插入。

2023-07-24 15:46:46 56

原创 【JDBC】二、JDBC的操作

Statement:用于执行静态SQL语句PreparedStatement:SQL语句被预编译在此对象中,可以多次高效的使用这段语句。CallableStatement:用于执行SQL存储过程Statement也会因为Java语言和写法问题产生依赖注入问题,导致查询语句的WHERE条件恒成立。

2023-07-24 15:45:05 68

原创 【SpringCloud】三、Gateway网关进行信息过滤以及Docker部署步骤概要

创建一个AuthorizeFilter类用来实现功能@Order(- 1) //该注解决定过滤器的优先级,value越小,执行越靠前,或者实现一个Ordered接口并重写方法,在方法的return中标记数字也可以 @Component //注入IOC public class AuthorizeFilter implements GlobalFilter {// 1. 获取请求参数 ServerHttpRequest request = exchange . getRequest();

2023-07-02 16:35:18 756

原创 【Utils】EasyExcel简单使用流程

添加EasyExcel依赖</</</</</

2023-06-29 12:40:06 207

原创 【SpringCloud】二、Nacos集群与Feign服务调用简介

在父工程中加载springcloudalibaba依赖用来管理版本信息</</</</</</</</</更改Nacos的注册端口:就可以完成Nacos注册。

2023-06-26 09:53:12 1317

空空如也

空空如也

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

TA关注的人

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