自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Nginx 的使用

一、简介1.1、使用场景1.2、使用案例二、配置参数2.1、Nginx配置2.2、项目配置三、项目使用3.1、3.2、

2024-02-26 18:21:36 335

原创 网络的连接

一、IP1.1、机器的IP1.2、局域网的IP二、IP的解析三、IP间的连接方式四、IP间的信息传递五、具体操作事项

2024-02-23 10:22:23 365

原创 常见的加密处理

一、加密原理/效率二、对称加密三、非对称加密四、文件加密

2024-02-22 14:35:10 346

原创 HTTP 协议

一、基础知识1.1、计算机的存储(内存、硬盘)1.2、网络传输的本质()二、HTTP的构成三、HTTP请求头四、HTTP请求体

2024-02-22 10:56:39 415

原创 Spring5.0 — WebClient(响应式web客户端)

HTTP 底库// 选择 HTTP 底库;默认底层用Netty,切换Jetty。全局的请求配置// 设置基础的全局的web请求配置,如cookie、header、baseUrl。Filter// Filter 过滤器,统一修改拦截请求。})})Netty 库配置。

2024-01-17 17:12:08 641

原创 SpringBoot—支付—微信

1.获取商户号微信商户平台 申请成为商户 => 提交资料 => 签署协议 => 获取商户号2.获取 AppID微信公众平台 注册服务号 => 服务号认证 => 获取APPID => 绑定商户号3.申请商户证书登录商户平台 => 选择 账户中心 => 安全中心 => API安全 => 申请API证书 包括商户证书和商户私钥4.获取微信的证书5.获取APIv3秘钥(在微信支付回调通知和商户获取平台证书使用APIv3密钥)

2024-01-03 17:23:25 501

原创 SpringBoot—支付—支付宝

3.创建Client(由通用SDK提供的Client,负责调支付宝的API,设置参数包含网关地址、appid、密钥、公钥、format、charset、签名方式)1.创建Client(由通用SDK提供的Client,负责调用支付宝的API)(参数包含网关地址、appid、密钥、公钥、format、charset、签名方式)2.编写Get请求,(参数是AliPay的配置类里生成的订单号、总金额、支付的名称、支付宝交易凭证号、HttpServletResponse)保存后生成支付宝公钥(需要配置到项目中)

2024-01-02 15:46:23 1563 3

原创 CMS—作品点赞、粉丝关注设计

根据Map的Key特性;删除Map里旧数据;触发时机:进入作品首页、刷新作品、分页1000次时。

2023-12-26 17:01:33 453

原创 CMS—评论功能设计

【代码】CMS—评论设计。

2023-12-14 16:56:24 446

原创 SpringSecurity 手机号登录

1.前端先做非机器人验证。2.生成随机码,与手机号存入缓存或数据库。3.掉第三方接口发送到用户手机。4.用户拿验证码去登录接口校验验证码。5.在过滤器里校验安全性。

2023-12-14 01:07:48 720

原创 Spring Security 的使用

*** 提供给 security 的用户信息的 service,要复写 loadUserByUsername 方法返回数据库中的用户信息*/@Service@Autoware/*** 加载数据库中的认证的用户的信息:用户名、密码、用户的权限列表* 通过username查询用户的信息,(密码,权限列表等)封装成 UserDetails 返回,交给 security。*/@Overridethrow new UsernameNotFoundException("无效的用户名");

2023-12-01 00:43:30 1017

原创 SpringBoot RestTemplate 的使用

RestTemplate 在JDK HttpURLConnection、Apache HttpComponents、OkHttp等基础上,封装了更高级别的API,默认依赖JDK HttpURLConnection,连接方式默认长连接。

2023-11-28 17:17:29 632

原创 Elasticsearch 的使用

数据分散集群的架构模式,Elasticsearch 将一个 Index(索引)中的数据切为多个 Shard(分片),分布在不同服务器节点上。默认每个索引会分配5个主分片和1个副本分片,可根据需要调整主分片和副本分片的数量。主从架构模式,每个Shard(分片)创建多个备份——Replica副本,保证数据不丢失。

2023-11-27 01:17:51 1520

原创 kubernetes (k8s)的使用

谷歌2014年开源的管理工具项目,。自愈和自动伸缩、调度和发布、调用链监控、配置管理、Metrics监控、日志监控、弹性和容错、API管理、服务安全等。

2023-11-08 18:12:58 556

原创 Dubbo 的使用

Invoker是实体域,它是Dubbo的核心模型,其它模型都向它靠扰,或转换成它,它代表一个可执行体,可向它发起invoke调用,它有可能是一个本地的实现,也可能是一个远程的实现,也可能一个集群实现。支持通过一系列流量规则控制服务调用的流量分布与行为,可实现基于权重的比例流量分发、灰度验证、金丝雀发布、按请求参数的路由、同区域优先、超时配置、重试、限流降级等。控制台可视化展示了集群中的应用、服务、实例及依赖关系,支持流量治理规则下发,同时还提供如服务测试、mock、文档管理等提升研发测试效率的工具。

2023-10-24 09:36:06 148

原创 数据结构-表、树、图

也叫哈希表,把数据分散在列表中,依赖于数组下标访问的特性,数组的一种拓展。即映射思想,用键值对来保存信息,键(key)和值(value)间的映射法则叫散列函数(Hash函数),通过散列函数得到的值叫散列值(Hash值)。散列函数根据key生成一个对应的散列值(数组下标),将key的信息保存到该数组下标对应的内存空间。构造散列函数三个基本要求1.通过散列函数得到的散列值是一个非负整数,因为散列值是数组下标。

2023-10-15 23:36:45 198

原创 SpringMVC

Web 模块:提供了基本的 Web 开发集成特性,例如多文件上传功能、使用的 Servlet 监听器的 IOC 容器初始化以及 Web 应用上下文。Servlet 模块:提供了一个 Spring MVC Web 框架实现。Spring MVC 框架提供了基于注解的请求资源注入、更简单的数据绑定、数据验证等及一套非常易用的 JSP 标签,无缝与 Spring 其他技术协作。

2023-10-06 15:51:03 429

原创 线性数据—栈、队列、链表

先进后出,进去123,出来321。基于数组:最后一位为栈尾,用于取操作。基于链表:第一位为栈尾,用于取操作。

2023-10-03 23:47:43 1010

原创 SpringIOC

抽象类,同时实现了 EnvironmentCapable 接口,提供环境的get和set方法。实现了BeanDefinitionReader的通用方法,如按路径读取Bean,根据资源读取Bean交由子类来实现。

2023-09-25 13:34:04 102

原创 工作流 Flowable 的使用

act_re_deployment:部属信息表,存储流程定义、模板部署信息;act_re_procdef:流程定义信息表,存储流程定义相关描述信息,但其真正内容存储在act_ge_bytearray表中,以字节形式存储;act_re_model:流程模板信息表,存储流程模板相关描述信息,但其真正内容存储在act_ge_bytearray表中,以字节形式存储;

2023-09-19 19:42:47 1319

原创 RocketMQ 的使用

RocketMQ的注册中心,管理集群的Topic-Queue的路由配置、Broker的实时配置信息。其它模块通过NameServer提供的接口获取最新的Topic配置和路由信息。各 NameServer 都有完整的路由信息,不互相通信。Topic:消息主题。分区,物理上的概念,每个Topic包含一个或多个分区。Offset:消费位点,每个分区当前消息的总条数为最大位点MaxOffset;每个分区的起始位置为起始位点MinOffset。Queue:队列,消息主题有多个队列来存消息。

2023-09-19 15:00:57 717 1

原创 SpringBoot 的版本、打包、Maven

该版本的开源将于2023年11月停止支持,商业支持可延长到2025年2月。

2023-09-18 00:32:03 2272

原创 Docker 的使用

软件集装箱化平台,可让开发者构建应用程序时,将它与环境一起打包到一个容器中,发布应用到任意平台中。能在单台机器上运行多个Docker微容器,而每个微容器里都有一个微服务或独立应用,如:Tomcat运行在一个Docker,MySQL运行在另外一个Docker,两者可以运行在同一个服务器。

2023-09-15 15:51:17 1020 1

原创 常用设计模式—

命令模式可使 命令的 发送者 和 接收者 完全解耦,发送者与接收者靠命令交互,把命令执行的逻辑类封装在命令类里。将各种状态的转换逻辑,分到状态的子类中,减少相互依赖。Factory:具体⼯⼚类,实现创建产品类对象,实现抽象⼯⼚类的接⼝,有多个需要定义多个。Product:具体产品类,实现抽象产品类的接⼝,⼯⼚ 类创建对象,有多个需要定义多个。3.子类实现父类的方法时,方法的前置条件(即方法的形参)要比父类方法的输入参数更宽松。4.子类实现父类的抽象方法时,方法的后置条件(即方法的返回值)要比父类更严格。

2023-09-13 15:21:57 363

原创 Mysql数据库的主从、读写

MySQL的配置文件:/etc/my.cnf查看MySQL的数据目录:show variables like '%datadir%';

2023-09-13 15:12:30 476

原创 Zookeeper的使用

分布式协调框架,小型的树形结构数据共享储存系统。zookeeper的应用场景集群管理注册中心配置中心发布者将数据发布到ZooKeeper一系列节点上面,订阅者进行数据订阅,当数据有变化时,可及时得到数据的变化通知。数据的发布/订阅分布式锁分布式队列负载均衡负载均衡是通过负载均衡算法,客户端负载均衡。

2023-08-30 15:08:15 1322

原创 分布式—雪花算法生成ID

由64个Bit(比特)位组成的long类型的数字1个bit:符号位,始终为0。41个bit:时间戳,精确到毫秒级别,可以使用69年。10个bit:工作机器ID,可以部署在1024个节点上。12个bit:序列号,每个节点每毫秒内最多可以生成4096个ID。

2023-08-27 16:47:00 1932

原创 Linux 常用命令

存放最常使用的命令,由系统、系统管理员和用户共享存放启动Linux时使用的一些核心文件,包括一些链接文件以及镜像文件存放Linux的外部设备,在Linux中访问设备的方式和访问文件的方式是相同的大多数重要的系统配置文件都在/etc目录下普通用户的家目录,在Linux中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的库文件,包括系统和用户所需要的各种程序的文件/lost+found 每个分区在其上目录中都有一个lost+found。故障期间保存的文件在这里。

2023-08-25 14:59:20 437

原创 线上异常的处理

top + top -Hp + jstack 排查是"VM Thread"消耗过多资源,可以进一步使用 jmap 工具进行内存溢出排查。top + top -Hp + jstack 排查发现是普通业务线程,可看到具体是哪个接口。jstack + Java 进程打印堆栈信息中包含死锁信息deadlock线程处于waiting状态:多打印几次``jstack` 信息,对比一直停留在waiting状态的线程。

2023-08-20 17:05:29 286

原创 Java日常的String、Date、计算问题

金钱应采用java.math.BigDecimal存储;BigDecimal入库时,选decimal类型,注意默写成0.00,不要用默认的NULL。使用BigDecimal(String val) 创建对象,如BigDecimal numA=new BigDecimal("0.6");不要用参数为float、double 创建对象,如BigDecimal numA=new BigDecimal(0.6);用参数为float、double 创建对象会丢失精度。

2023-08-19 15:24:33 236

原创 SpringBoot 的 RedisTemplate、Redisson

优先使用Lettuce,需要分布式锁,分布式集合等分布式的高级特性,添加Redisson结合使用。对于高并发,1000/s的并发,数据库可能由行锁变成表锁,性能下降会厉害。

2023-08-18 17:33:51 2484

原创 SpringBoot + Mybatis多数据源

一、配置文件spring:# datasource:# username: root# password: 123456# url: jdbc:mysql://127.0.0.1:3306/jun01?characterEncoding=utf-8&serverTimezone=UTC# driver-class-name: com.mysql.cj.jdbc.Driver datasource: # 数据源1 onedata:

2023-08-16 00:42:10 784

原创 Java 的 Stream

【代码】Java 的 Stream。

2023-08-13 16:11:18 210

原创 Mybatis 小结

封装了JDBC Statement操作,负责对JDBC statement 的操作,如设置参数、将Statement结果集转换成List集合。对用户传递的参数转换成JDBC Statement 所需要的参数。资源加载模块java数据类型和jdbc数据类型之间的映射和转换。根据用户传递的parameterObject,动态地生成SQL语句,将信息封装到BoundSql对象中,并返回。动态生成的SQL语句及相应的参数信息。10.

2023-08-13 03:02:33 311

原创 Mybatis批处理、Mysql深分页

会拼接成:insert into table (ID, PHONE,MESSAGE) values (?), (?), (?当数据过多时,可能生成的动态sql过大,mysql默认仅1M的sql字符串,过长可能会执行失败。在sql循环时设置batch与否其实执行时间差别不是很大,所以其实如果不是特别要求性能,可直接在sql中使用for循环即可。实践发现,当表的列数较多(超过20),以及一次性插入的行数较多(上万条)时,插入性能非常差,通常需要20分钟以上。

2023-08-08 23:28:18 385

原创 Mysql存储引擎InnoDB

MySQL 5.7 支持的存储引擎有 InnoDB、MyISAM、Memory、Merge、Archive、Federated、CSV、BLACKHOLE 等。

2023-08-08 00:27:32 405

原创 SpringBoot 的事务及使用

事务是最小单元,不可再分隔的一个整体。事务中的方法要么同时成功,要么都不成功,要不都失败。多个事务操作数据库中同一个记录或多个记录时,对事务进行隔离开来有序执行。事务成功时,操作的结果永久的写入到数据库磁盘中。

2023-08-07 14:13:25 1149

原创 线程池的使用案例一

/ 设置核心线程数// 设置最大线程数// 设置阻塞队列大小// 默认是 60s,这里设置30s// 设置线程池中线程名前缀//当达到 MaxPoolSize 不再调用新线程,用调用者所在线程之星异步任务。

2023-08-07 13:55:41 368

原创 SpringBoot的pom文件、容器、组件

是否有新的 Web 应用目录放进来了,或者有新的 WAR 包放进来了,就部署相应的 Web 应用。热部署跟热加载的本质区别是,热部署会重新部署 Web 应用,原来的 Context 对象会整个被销毁掉,因此这个 Context 所关联的一切资源都会被销毁,包括 Session。它提供了各种组件和工具,如消息处理器、绑定器、端点等,使得构建Web服务更加容易。因此 HostConfig 做的事情都是比较“宏观”的,它不会去检查具体类文件或者资源文件是否有变化,而是检查 Web 应用目录级别的变化。

2023-07-30 23:08:17 1926

原创 InnoDB-索引、锁机制

ngram一种基于统计语言模型的算法,是通过一个大小为n的滑动窗口,将一段文本分成多个由n个连续单元组成的term。

2023-07-25 01:47:52 289

空空如也

空空如也

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

TA关注的人

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