- 博客(40)
- 收藏
- 关注
原创 本地启动Elasticsearch(docker启动)
进入容器,修改/usr/share/elasticsearch/config/elasticsearch.yml。删除容器,再次启动,将vendor.js 文件挂载进去。拷贝文件vendor.js。
2023-10-30 18:46:29
577
原创 Kubernetes学习01
它消除了编排的需要。它依赖于Linux容器的特性来运行异构应用,而且无需知道这些应用的内部详情,也不需要手动将这些应用部署到每台服务器。持续集成的 (CI)工作流方面,不同的用户有不同的需求和偏好的区域,因此,我们提供分层的 CI工作流,但并不定义它应该如何工作。由于Kubernetes运行在应用级别而不是硬件级,因此提供了普通的Paas平台提供的一些通用功能,比如部署,扩展,负载均衡,日志,监控等。在Kubernetes进行管理应用的时候,基本步骤是:创建集群,部署应用,发布应用,扩展应用,更新应用。
2023-10-27 11:27:14
198
原创 Flowable学习[一]
一、参考CSDN博主[水中加点糖]的博客[采用springboot+flowable快速实现工作流],文章地址:https://puhaiyang.blog.csdn.net/article/details/79845248,下载其发布在github上的代码。参考文章:https://blog.csdn.net/BThinker/article/details/123471514。三、使用docker安装一个mysql[若本地已有可用的mysql环境,可跳过]二、本地解压代码,并加载到idea中。
2023-08-21 15:54:07
259
原创 Mybatis自定义的AbstractMethod方法注入后调用提示 Parameter ‘XXXXX‘ not found
因为业务需要,mybatis自带的逻辑删除is_delete,领导在这个基础上要求所有的表统一添加删除时间delete_at记录什么时候删除的,自带的boolean removeById(Serializable id) 方法并不能满足业务需求。结合之前记录的文章《
2023-06-14 12:01:51
339
原创 记录:easyexcel模板full导出数据本地电脑成功liunx环境失败
在使用复杂的excel模板导出数据时,类似复杂的报告,花样的表头,多个工作区间,在使用easyexcel的full填充时遇到本地调试成功,当相同的代码发布的Linux环境,在相同参数的情况下,没有任何错误日志输出,却填充失败。对比了两个环境的差异,首先排除了可能是网关转发导致的原因,查询线上大家遇到的情况,定位到可能是由于两侧的环境不同引起的。调整了模板中的所有字体为“宋体”,再次尝试导出,{.xxxx} 被成功填入想要的值,判断确实是由于字体缺失引起的。查看已有的字体,模板中确实不存在。
2023-05-23 15:13:29
792
1
原创 mybatis-plus 统一管理创建时间、更新时间、创建人与更新人
在设计数据库模型的时候,我们通常会在表中创建创建人、创建时间、更新人、更新时间等通用的字段来记录每行数据的创建和变动信息。
2022-09-16 17:52:43
7705
5
原创 数据权限是否应该与角色绑定
数据权限是否应该与角色绑定数据权限一些主要的概念为什么我想写这么一个记录矛盾的来源我梳理的方案打工路上的成长数据权限在业务系统中,我们常常会有多种角色比如:系统管理员、项目管理员、普通用户等,不同的人员会依据各自业务的需要,拥有不同的资源的数据权限(用户A可以看见项目P1,P2; 用户B则中看见项目P2)。这些资源的分配和菜单权限不同,往往与我们的业务紧密相连。并且每当业务系统多新增一种资源,都需要我们考虑到新增资源的数据控制。针对数据权限业内一直也没有一个统一的框架或者方案(像shiro控制菜单权限这
2022-05-26 12:00:54
2143
原创 我在研究MySQL online DDL 更改Varchar的字段长度
MySQL online DDL 更改Varchar的字段长度一、这里是可以跳过的牢骚开年上班的第一个星期,周围的同事们都在“表面上努力的工作,朋友圈一打开都在祝福谷爱凌夺冠”,哈哈哈,比较闲啦。 今天研究了一下varchr长度变更会不会把表给锁了。事情是这样的,我一直觉得自己是项目的后妈,在加入项目的时候,表结构的设计我的领导已经设计好了,我妥妥的CURD工具人。之后项目一直在迭代,需求也是面目全非的迭代升级(hhhh 这里有点夸张),导致我们表里很多代表一个意义的字段长度不太统一,想着年后第一周比
2022-02-08 18:36:04
1229
原创 mybatis-plus动态表名实现
mybatis-plus动态表名实现1.使用场景一个mybatis entity 对应多张表(表明不同的表–> 多张表结构一致只有表名称不同),在使用时,可以动态映射表名称。比如:按照时间分表,某些业务冷热数据分离后数据存在不同的表中等2.一定要时常注意工具的更新,不吃亏因为工作需要,最近需要实现一个类似如下业务等功能交互:简单的描述就是:有一部分的表数据,采用了外部同步的模式,同步到了doris中,在业务中采用双数据源的方式,数据写在mysql,读走doris (此处不考虑数据同步的延
2022-02-07 14:56:21
10853
3
原创 Mybatis Plus自定义IService与BaseMapper
Mybatis Plus自定义IService与BaseMapper一、为什么研究起了这个东西最近在公司独立负责了一个创新业务的java模块的服务研发,在搭建项目的时候,选择了Mybatis Plus 做数据库Dao层的工作。从工作以来,虽然不是第一次接触Mybatis Plus了,但是之前的接触都是在组里的前辈们搭建好框架后直接使用,这次是完完全全自己亲自提刀上阵了。想要自己去自定义IService 和 BaseMapper 实际上是来自一个问题:当一个entity类的某个字段被@TableLogic
2021-12-01 18:27:59
3683
原创 spring-boot国际化实现
spring-boot国际化实现项目国际化,应该是很多研发同学在工作中需要涉及到的,就结合我最近项目里国际化的工作,做一个简单的总结吧。一、整体的前后端配合流程首先前端会有自己的语言包,对应不同的语言信息,用于前端洁面的渲染(实际上就是code对应不同的语言版本value,可以存储在在服务器上,在获取用户的语言信息后,加载对应的语言资源即可)。这里并不推荐将语言包的映射信息存储在后端的数据库中,因为一旦后端服务器或者数据库出现问题,将会导致前端基本的页面都渲染失败。后端维护一份当前登陆用户的语言信
2021-11-22 18:53:44
1886
2
原创 spring-cloud-netflix-sidecar接入案例
spring-cloud-netflix-sidecar接入案例为什么想要了解spring-cloud-netflix-sidecar一些关于边车的概念关于spring-cloud-netflix-sidecar介绍的传送门话不多说,上代码新建一个边车服务pom.xml配置文件启动类上添加@EnableSidecar注解被边车的其他语言的服务添加一个健康检测的接口启动服务一点简单的总结为什么想要了解spring-cloud-netflix-sidecar这是第二次在工作中遇到夸语言的合作了,主体服务群是
2021-09-02 16:55:32
913
1
原创 3.事务隔离
1.什么是事务数据库事务( transaction)是访问并可能操作各种数据项的一个数据库操作序列,这些操作要么全部执行,要么全部不执行,是一个不可分割的工作单位。 事务由事务开始与事务结束之间执行的全部数据库操作组成。事务具有四大特性(ACID),分别是:原子性(Atomic):一个事务是一个不可再分的单元一致性(Consistent):事务完成后,所有数
2021-07-23 17:30:22
270
原创 2.解析MySQL中一条SQL变更语句的执行过程
变更语句与查询不同,更新语句设计到日志模块的交互,查看的执行过程,可以参照整理的上期文章《1.解析MySQL中一条SQL查询语句的执行过程》1.日志模块以InnoDB存储引擎展开介绍。1.1 MySQL日志的类型从功能角度: - 错误日志 - 查询日志 - 慢查询日志 - 事务日志 - 二进制日志从物理/逻辑角度: - 物理日志 : mysql数据最终是保存在数据页中的,物理日志记录的就是数据页变更 - 逻辑日志 :可以简单的理解为记录的就是sql语句1.2 binlog 归
2021-07-22 17:58:03
248
原创 1.解析MySQL中一条SQL查询语句的执行过程
一条SQL查询语句是如何执行的? 最近在思考工作三年了,我应该如何精进自己的技术。也是应于领导的任务,也才想起来,自己好久没有给自己安排一个系统的学习规划了。想起了自己在极客时间里的课程《MySQL实战45讲》还一直囤着没有开始研读。三年来,其实也有反反复复的在学习MySQL的一些知识点,但都太零散了,我们在一个学习快餐文化的年代里,读别人的博客,知识体系的获取建立在别人的总结之上,不愿意沉下心来自己去研究原理与源码(小声bb:我可能是自己的技术不够硬,看不懂啊),没有一个系统的知识体系。 给自己定了
2021-07-22 17:39:14
233
3
原创 JAVA定时任务
ThreadPoolTaskScheduler构建业务框架实现定时任务利用ThreadPoolTaskScheduler构建业务框架实现定时任务ThreadPoolTaskScheduler 类的介绍CronTrigger 类的介绍首先自定义了一个定时任务的模型 ScheduledTask定义一个抽象的任务 AbstractTask.class依据业务逻辑 继承AbstractTask.class自定义一个初始化定时任务 ScheduledTaskHandler.class提供Controller,增加
2021-06-11 15:27:16
478
1
转载 过滤器和拦截器的区别
在日常开发中,经常有使用过滤器和拦截器,但两者的使用和区别你真的了解吗?本文,就来谈一谈它们的区别和使用。1. 过滤器 fliterServlet中的过滤器Filter是实现了javax.servlet.Filter接口的服务器端程序,主要的用途是设置字符集、控制权限、控制转向、做一些业务逻辑判断等。其工作原理是,只要你在web.xml文件配置好要拦截的客户端请求,它都会帮你拦截到请求,此时你就可以对请求或响应(Request、Response)统一设置编码,简化操作;同时还可进行逻辑判断,如用户是否已
2021-02-22 20:31:06
250
1
原创 HashMap随手一记
HashMapHashMap是我们常用的数据结构,由数组和链表组合构成的数据结构。数组里面每个地方都存了key-value这样的实例,在java7中叫Entry 在java8中叫Node。每一个节点都会保存自身的hash、key、value、以及下一个节点。新的Entry节点在插入链表的时候是怎么插入的?Java8之前是头插法,就是说新来的值会取代原有的值,原有的值就顺推到链表中去,因为写这个代码的作者认为后来的值被查找的可能性更大一点,提升查找的效率。 但是在java8之后,都是所有的尾部插入了
2020-12-01 16:35:26
108
原创 关于Docker的随手一记
关于Docker的随手一记 Docker是一种运行与Linux和Windows上的软件,用于创建、管理和编排容器。 随着互联网的发展,往日的大型单体应用正被逐渐分解成小的、可以独立运行的组件,也就是我们一直在讲的微服务。微服务彼此之间解耦,可以独立的开发、部署、升级、伸缩。这使得我们可以依据业务需要对每一个模块的服务实现快速迭代。微服务在给我们带来很多的便捷,但在系统包含较多微服务组件的情况下,服务的部署和运维工作却显得复杂繁琐。 一个微服务架构中的组件,是具有独立性的,常常会有不同
2020-07-12 17:36:50
163
原创 RocketMQ高级篇
RocketMQ学习之旅三本文只要对RocketMQ消息的存储模型、高可用性机制、负载均衡、消息重试、死信队列和消费幂等等知识点做一些总结与分享。一、存储介质分布式队列因为有高可靠性的要求,所以数据要进行持久化存储,目前有如下两种存储介质:关系型数据库DBApache下开源的另一款MQ【ActiveMQ(默认采用的KahaDB做消息存储)】可选用JDBC的方式来做消息持久化,通过建...
2020-01-04 18:57:10
546
原创 RocketMQ 发送消息的基本案例
RocketMQ 消息发送的基本样例“一发、一存、一消费” 是消息中间件的本质,本文简单的记录来RocketMQ消息的基本样例,包含消息的发送(同步消息/异步消息/单向消息)、消息消费(负载均衡模式/广播模式)、顺序消息、延时消息、批量消息以及事务消息。首先在测试项目中引入依赖<dependency> <groupId>org.apache.rocketmq&l...
2019-12-28 16:25:16
856
原创 JSON字符串在Java中遇见的坑
坑1:首字母自动变小写问题的描述:使用com.alibaba.fastjson.JSONObject将JavaBean对象转换成json字符串时,若bean对象中的属性名称首字母为大写时,其会自动将首字母变为小写。例如://1.首先定义一个Student类public class Student { private String Name; private String S...
2019-12-19 19:48:52
308
原创 CentOS 7.3 虚拟机上搭建rocketMQ
RocketMQ小白学习之旅【一、服务的搭建】本文简单记录在虚拟机上搭建RocketMQ安装jdk安装maven安装GIT安装 RocketMQ关闭RocketMQ相关服务向MQ发送和接收消息可视化服务的配置本文简单记录在虚拟机上搭建RocketMQ在虚拟机上搭建rocketMQ,前置准备,需要安装jdk、maven、git安装jdk一、【进入安装目录】cd /usr/local/src...
2019-12-19 19:44:08
610
原创 Netty学习之路一(大文件传输案例分析)
业务场景: 由于工作需要,需要在两台服务器的java服务之间通过netty建立链接,将大文件(几百G到TB级别)从机器A上的serverA发送到机器B上的serverB。实现方法设计:系统现有的实现方法:将业务方存储在服务器上的文件,在传输之前,对文件进行分片,以定义的规则将文件分为大小20MB的分片存储在服务器中。同步时以异步的方式同步分片,当然A服务器上的文件同步到B服务器时也是以分片的...
2019-05-19 18:03:42
14648
12
原创 JDK1.8新特性:流的学习
一:为什么要使用流1.流的使用比循环版本要易于阅读,我们不必扫描整个代码去查找过滤和计数操作,方法名就可以直接告诉我们其代码意欲何为。 2.循环需要非常详细地指定操作的顺序,而流能够以其想要的任何方式来调度操作,只要结果正确即可。二:流与集合的差异1.流并不存储其元素。这些元素可能存储在底层的集合中,或者是按需生成的。 2.流的操作不会修改其数据源。例如,filter方法不会从...
2018-09-09 15:50:35
572
原创 手写spring事务
1. 背景: 在spingboot框架搭建的项目中,利用了反射机制调用了service中的方法,导致spring注入的对象全部为null值不可使用,同时spring框架提供的@Transactional注解也失效。为了解决事务回滚失效的问题 ,利用放射类动态代理 以及手写事务的方式来解决反射引起的以上问题。2.transactionalUtils.java类的编写import org....
2018-09-04 16:54:09
1521
转载 Git 命令常用使用记录
一、分布式版本控制分布式版本控制系统(Distributed Version Control System,简称 DVCS),在这类系统中,像 Git、Mercurial、Bazaar 以及 Darcs 等,客户端并不只提取最新版本的文件快照,而是把代码仓库完整地镜像下来。 这么一来,任何一处协同工作用的服务器发生故障,事后都可以用任何一个镜像出来的本地仓库恢复。 因为每一次的克隆操作,实际上...
2018-08-26 15:37:43
241
转载 UML 统一建模语言
一、UML图中6中关系泛化(Generalization) 是一种继承关系,表示一般与特殊的关系,指定了子类如何特化父类的所有特征和行为。用带三角箭头的实线,箭头指向父类。实现(Realization)是一种实现关系,(类与接口之间的实现关系),表示类是接口所有特征和行为的实现。用带三角箭头的虚线表示,箭头指向父类。关联(Association)是一种拥有关系,他使一个类知道另一个类的属...
2018-08-19 23:13:40
2903
原创 springMVC项目的搭建
一、新建一个Maven项目File-&gt;New-&gt; maven project 单击next,选择Maven Webapp project. 单击next 填写好groupId 与artifactId 单击finish 即可得到项目 目录结构如图所示。 红叉问题:Description Resource Path Location Type...
2018-08-01 16:26:47
150
原创 创建一个Spring Boot基础项目
一、目的创建一个spring boot 的基础项目,并且实现一个简单的RESTful API ,从而对spring boot 有一个初步的了解。二、搭建项目 1.访问 https://start.spring.io/ ![选择你所需的spring boot版本,填写好group和Artifact信息 然后单击Generate project下载项目](https://img-blog...
2018-07-30 22:15:52
127
原创 认识微服务
一、什么是微服务微服务是系统架构上的一种设计风格,将原本独立的系统拆分成多个小型服务,这些小型服务都在各自独立的进程中运行,服务之间通过基于HTTP的RESTful API进行通信协作。被拆分的每个小型服务都围绕着系统中的某一项或者一些耦合度较高的业务功能经行构建,并且每个服务都维护着自身的数据存储、业务开发、自动化测试案例以及独立部署机制。每个微服务可以使用不同的语言来编写。二、...
2018-07-30 20:44:53
172
原创 JDBC学习小结(一)
## JDBC学习小结 (一)###一:什么是JDBC JDBC(Java DataBase Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序。 二:JDBC中主要设计的类与接...
2018-07-27 20:17:53
748
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人