- 博客(50)
- 收藏
- 关注
原创 精通高并发,需要掌握哪些知识
精通高并发需要掌握广泛的知识和技能,包括基础知识、并发编程工具与框架、分布式与微服务、数据库优化与分库分表、缓存与消息中间件、网络编程与RPC、压力测试与性能调优以及高并发架构设计与实现等多个方面。这些知识和技能的学习和实践将有助于提升系统的并发处理能力和用户体验。
2024-11-27 17:02:49
449
原创 mysql批量插入并忽略重复的数据
最后,小编使用了INSERT IGNORE INTO语句,这样在批量处理的时候,也是可以排重的,现在设计表都是不假外键的,数据类型不一样时mybatis也会做转换,字段值超出范围的数据作为不合规范的数据直接忽略了。后边,在进一步分析一下三个语句在执行过程中的枷锁情况。
2024-11-27 10:05:25
786
原创 maven工程怎么将除工程源码外的三方依赖一起打包到jar中
方法一和方法二都可以实现将代码打包成jar文件,通过比较我们发现方法二在代码量上更是好更简洁,生成的文件也更直观,不用特殊配置去掉后缀。总体来讲,两种方式都比较实用,针对个人情况,自行选择即可。翻了一下,spring boot maven plugin的源码,发现它的底层原来也是用maven-shade-plugin来实现的。其实估计大家也能猜到个大概,毕竟也就这么写主流的技术。
2024-10-18 10:19:41
3769
原创 如何在电脑上启动两个微信实例
有时候,我们需要在电脑端登陆两个微信,来处理不同的事情,之前快速双击微信图标即可打开多个微信,最近发现不是太好使,所以今天介绍一种使用window命令启动两个微信的方法。
2024-10-08 08:48:18
825
原创 【RocketMq】window安装
要求:jdk 1.8 64位操作系统:window 64位1、官网下载 rocketmq 的zip 包,控制台源码2、启动nameServer3、启动broker4、安装控制台可以将控制台的源码打成jar包,然后通过java -jar 命令启动。
2024-04-10 17:48:56
1884
原创 k8s本地开发环境Telepresence的安装和使用
Telepresence是用来解决什么的呢?比如这么一个场景,一个服务A上线后,部署到线上k8s,但是另一服务B出现bug了,修改服务B的bug,需要保持服务A启动,为了不启动本地的服务A,此时我们想直接连接服务A来进行调试,此时Telepresence就发挥作用了。
2024-04-02 17:22:42
1497
原创 Nacos启动的第一个坑 Request nacos server failed:
今天,小编启动nacos写微服务的demo,电脑上安装了nacos服务器,管理后台也能正常登录。然后搭建了一个基于springboot的微服务项目,加了依赖、启动类加了注解、配置文件也进行了配置,然后启动项目,启动失败了。
2024-03-13 10:49:20
1899
原创 python的字符串
my_str.replace(old_str, new_str, count) 将my_str中的old_str替换成new_str。返回值:如果找到了str,返回str在my_str中的位置正数下标,如果没有找到,返回-1。使用方式和find一样,只是index()方法,在找不到子串的时候,会报错。检测str是否包含在my_str中,如果是返回开始的索引值,否则返回-1。step 步长,下标之前的间隔,默认是1,当是1的时候,可以不写。下标其实就是索引,是一个整型数字,可以是正数,也可以是负数。
2023-11-08 16:12:03
508
原创 Java判断字符串是否包含汉字
在Java语言中,判断一个字符串是否包含汉字是一个常见的问题。由于Java是以Unicode编码来表示字符的,所以可以通过判断字符的Unicode编码范围来确定是否为汉字。
2023-11-03 15:15:48
1833
原创 线程创建的三种方式
说起线程,就会联想到进程,那么先来说说,什么是进程。进程就是运行的程序。就比如说,像qq、微信我们将其打开,操作系统会给这个程序分配一定的资源(主要是内存资源),这样就是有一个qq的进程在运行。那么,什么是线程呢。线程是CPU调度的基本单位,每个线程执行的都是某一个进程的代码的某个片段。进程和线程有啥关系吗?一个进程里有多个线程,一个进程至少的有一个线程。
2023-09-28 14:46:58
193
原创 JDK8的新日期API
在jdk8中新增的一个时间戳/时间线,内部保存了从1970年1月1日 00:00:00以来的秒和纳秒// 获取从1970年一月一日 00:00:00 到现在的纳秒// 5毫秒//39000000也可以获取到当前的日期时间,但是它没有获取年、月、日、时分秒的方法。只能获取到纳秒或秒。
2023-09-20 15:53:49
182
原创 微服务到底是采用多仓库还是单体仓库更好呢?
单块仓库(mono-lith)单体应用,所有代码在一个项目当中。单体仓库(mono-repo)所有的服务分模块都放在一个仓库当中。优点:1、易于规范代码。所有代码在一个仓库中,可以标准化依赖管理,集中开展code review,规范代码风格2、易于集成和部署,所有的代码在一个仓库中,配合自动化构建工具,可以做到一键构建和一键部署,一般不需要特别的集中管理和协调3、易于理解项目整体,开发人员可以把整个项目加载到本地的ide里进行code review,可以本地部署调试,方便开发人员把握整体的技术
2023-07-18 14:22:43
957
原创 UriComponentsBuilder使用发现参数被编码了
开发中,小编在项目中,使用RestTemplate做GET请求,为了优雅的封装参数,使用了UriComponentsBuilder来进行参数封装。直接123将代码写完,远程调用有数据,远程底层solr库,所以拿到数据了,没有过多的验证,在测试时,发现接口是返回了数据,但是,数据不正确。最后,两边联调查找原因,发现是传递到远程的参数,被编码了,从而导致的数据结果不正确。
2023-07-14 15:34:02
1581
原创 MYSQL设置字段自动获取当前时间
最近,整理数据库数据,看到好多表都有加create_time和 update_time字段,来记录数据插入的时间和更新时间,但是时间插入是通过代码来维护的。代码维护,也未尝不可,只是在编写代码的时候,需要手动new Date()为两个字段赋值,比较麻烦点,重复的来操作这个工作。所以,小编想着整理一下mysql时间字段自动填充,与大家分享。
2023-07-11 11:23:29
1318
原创 使用git前做的最小配置
进入公司开发,开发人员是离不开git的,几乎每天都在使用git进行代码的提交和推送。所以当新安装git后,我们需要对git进行配置。那么需要配置什么呢?我们需要配置user.name 和 user.email 这两个信息,以便在我们commit和push的时候,能显示代码的提交者和提交着的邮箱信息,以便于有事情的找到对应的人员。我们也看到,—global参数表示对当前用户所有仓库有效,所有我们直接使用–global参数设置就可以了,配置一次,所有的项目都生效了,很方便。
2023-05-25 18:38:57
294
原创 idea报错Since Maven 3.8.1 http repositories are blocked
IDEA官网更新的也很快,截止到小编,写这边博客的时候已经是Version: 2022.2.2,但是今天我们不过多的讨论IDEA版本的问题,而是讨论下,新下载的IDEA在构建项目时,在下载引用的包时出现“Since Maven 3.8.1 http repositories are blocked”的问题。总之,报错是由于高版本的maven不支持http的存储库导致的,最简单的方法是降低maven版本,现在好多项目,还是存在一些老版本的依赖在使用,比较麻烦。甚至有的依赖包升级了也不是https。
2022-09-23 15:11:28
46541
2
原创 为什么maven没有3.7的版本
之所以,直接到了3.8.1版本,主要原因还是新增了三个导致默认行为更改的功能,比如说存储库必须使用https。针对解决办法,如果将依赖升级可以搞定,那直接升级最好了;如果需要保留版本,配置镜像,那还不如退回到3.6.3来的实在。
2022-09-23 14:50:08
2262
原创 MYSQL排序加分页报错Out of sort memory, consider increasing server sort buffer size
出现该问题的是在做分页查询时出现的,确切的说是order by 和 limit一起用的时候出现的。而起是由于limit m,n 中m过大时会出现Out of sort memory, consider increasing server sort buffer size一定记得,通过命令设置了全局变量后,要在配置文件中做修改,否则重启服务后,设置的全局变量就失效了。
2022-08-24 17:30:00
10855
2
原创 (看这篇就够了)idea操作git commit后,撤销commit,恢复到提交前的状态
为什么会有提交(commit)代码到git本地仓库后,想要撤销的操作呢?一般来讲,是我们需要commit后,发现,有一些文件不应该提交到仓库。或者该次提交中,还不想包含,某些修改了的文件。亦或者说在做本地调试的时候,修改了某些文件,但是这些文件,在测试环境或者生成环境是不能被修改的。针对这些情况,在没有注意到的情况下,都commit到了本地,此时为时还不晚。git命令,就不说了,直接用idea操作吧,简单实用。通过上边的解释,大家可以根据自己的需求,选择自己合适的选项。...
2022-08-18 15:17:35
24353
2
原创 前后端分离开发,前端打包后放springboot的static文件夹部署
今天,小编在公司部署项目,要求前后端部署在一起,前端开发完后将前端代码打包后放到springboot的static目录下;然后打成镜像,k8s部署;前端项目执行npm run build命令,文件会打包到dist文件夹下;后端项目在项目的resource目录下,创建static文件夹,如下所示:将前端打包后的dist下的所有文件,全部拷贝到static文件夹下;通过这样部署后,相当于前后端作为一个整体部署到了tomcat当中,所以前后端使用同一个端口;启动springboot工程,然后访问localh
2022-06-29 19:13:10
8113
原创 ZooKeeper安装
前置环境zookeeper的安装需要依赖java的JDK。所以需要先安装JDK8,并且配置好环境变量。linux下的jdk安装,请参考小编博客《Linux下JDK的安装》ZooKeeper安装小编在虚拟机创建了三台机器,并且分别设置hostname为node01,node02,node03。再node01上安装完成后,然后分发到node02,node03。采用的zookeeper版本为3.7.0。下载安装包在用户主目录下,通过wget下载zookeeper安装包,或者在官网下载好传到服务器上也
2022-03-31 17:35:03
2106
原创 JDK安装
安装wget yum -y install wget安装JDK安装lsb用于查询linux版本 yum install -y redhat-lsb查询linux版本 cat /proc/version lsb_release -a cat /etc/issue uname -a下载jdk根据linux版本信息确定需要下载32位还是64位的包。下载地址:https://www.oracle.com/java/technologies/javase/javase8u211-l
2022-03-17 16:52:00
1446
原创 null, message from server: “Host ‘xx.xx.xx.xx‘ is not allowed to connect to this MySQL server“
前言最近,小编在阿里云的ECS上部署了一个MYSQL服务,然后用DBeaver测试连接时,报如下允许连接信息:null, message from server: "Host 'xx.xx.xx.xx' is not allowed to connect to this MySQL server"解决出现这个提示,是由于我们使用root用户登录时,没有给root用户设置能访问的机器,所以我们设置一下,就可以了。第一步:登录mysql:输入 mysql -u root -p 命令,键入密码,连
2022-01-14 11:28:37
5091
3
原创 宿主机和docker容器之间的文件拷贝
1、从容器里面拷文件到宿主机在宿主机里面执行以下命令:docker cp 容器名:要拷贝的文件在容器里面的路径 要拷贝到宿主机的相应路径示例: 假设容器名为nginx,要从容器里面拷贝的文件路为:/usr/share/html/index.html, 现在要将index.html从容器里面拷到宿主机的/usr/local路径下面在宿主机上面执行命令:docker cp nginx:/usr/share/html/index.html /usr/local2、从宿主机拷文件到
2021-12-31 09:22:36
1486
原创 nginx的几个默认路径
1.配置所在目录/etc/nginx/2.执行目录/usr/sbin/nginx3.模块所在目录/usr/lib64/nginx/modules4.默认站点目录/usr/share/nginx/html
2021-12-31 08:42:06
15264
原创 windows系统下Python的安装和环境变量配置
安装包下载打开 WEB 浏览器访问https://www.python.org/downloads/windows/选择2.7版本下载选择适合自己电脑的msi包。下载完安装包,直接双击打开。为所有用户安装,直接点击next下一步。选择好自己合适的安装路径位置这里建议选择安装add python.exe to path 将python添加到环境变量中。选择安装成功后添加到环境变量中。等待安装完成,点击finish安装完成。打开cmd窗口,输入python后显示版本号,表示pyt
2021-12-17 12:40:15
603
原创 java解压rar报错badRarArchive
引入依赖: <dependency> <groupId>com.github.junrar</groupId> <artifactId>junrar</artifactId> <version>7.4.0</version> </dependency>使用 public static void mai
2021-12-08 10:26:48
2114
原创 spring cloud gateway入门到进阶
前言最近,了解了一下,目前的一些api网关的常用技术,配置了一下spring cloud gateway。做一下记录吧,毕竟时间长了,容易忘。zuul1.xzuul2.xspirng cloud gatewaynginx + lua(openresty ,kong)envoy上边这几种都是可以作为网关使用的,其他的几种,后边有时间,再做详细的介绍,今天我们一起来看下spring cloud gateway的使用吧。前置版本JDK版本:1.8springboot版本:2.3.10.R
2021-08-31 17:11:26
222
原创 maven的java项目打包成jar运行
前言今天同事问我,maven项目怎么打包成jar后,里边没有第三方依赖,我当时第一反应不可能啊,直接mvn package之后不就可以啦。后来,一看原来不是springboot项目,一个非web的java的maven项目,顿时,小编也一脸茫然,好久没整过这样的项目了,仔细回忆了一下,maven打成jar包项目还是需要引入两个插件的。特此记录一下吧,以便后续在用时,方便使用。 <plugin> <groupId>org.apache.maven.plugin
2021-08-31 16:09:19
638
原创 grpc的使用
协议缓存区(Protocol Buffers)直观的一个表现形式就是.proto扩展名的普通文本文件,在这个文件中可以定义消息、gRPC服务。一般来讲,服务和消息搭配使用。消息相当于 我们的类,可以做为方法的参数和返回值。协议缓存区数据被构造为消息// 消息message Person { string name = 1; int32 id = 2; bool has_ponycopter = 3;}如下,.proto文件。定义了一个服务和两个消息// The greeter .
2021-07-29 12:35:40
809
原创 《设计模式之单例模式》8中单例模式你都懂吗?
前言设计模式中的单例模式,大家基本也都会,也都基本上都知道两种实现形式,无外乎饿汉式和饱汉式两种。其实在这两种方式中可以衍生出8中方式。方式一: 饿汉式public class Student { private static final Student INSTANCE = new Student(); private Student () { } public void method(){ System.out.println("method
2021-07-09 16:19:23
122
原创 springboot项目dynamic-datasource-spring-boot-starter动态切换数据源
前言动态切换数据源,看到的常用方法,都是采用AOP思想来进行动态切换;最近做的新项目,有操作两个不同库的需求,于是乎就想,既然采用springboot开发,那么会不会有官方的starter或者第三方的starter呢?小编经过一轮spring官网的查看,然而并没有。但是,最后欣然的发现,还是有starter的,只不过是第三方的。来至于com.baomidou,使用过mybatis框架的,对这个域名应该并不陌生,不多说,这就开始。使用1、pom.xml引依赖天才第一步,导入依赖库,在我们的pom.xm
2021-07-02 15:46:21
2125
原创 Lucene、Solr和 Elasticsearch的技术选型
LuceneLucene使用上更加灵活,但是需要自己处理搜索引擎系统架构,以及其他附加功能的实现。Solr和Elasticserachsolr对lucene做了很多封装,是一个处于高层的框架,Lucene很多新特性不能及时向上透传,所以有时候可能发现需要一个功能,Lucene是至此的,但是Solr上看不到相关的接口的情况。solr利用zookeeper进行分布式管理,而elasticsearch自身带有分布式协调管理功能。solr比elasticserach实现更加全面,solr官方提供的功能更多
2021-06-23 14:39:09
465
2
原创 如何用notepad++替换txt文本中的换行符\r\n
前言我们在处理txt文本时,发现其中的换行符没有生效,这就很烦人了,看起来极其不爽。我们可以用notepad++对文本进行处理。处理示例:我是\r\n中国人结果:我是中国人用notepad++打开文档,按ctrl+ h,显示如上界面,点击替换,查找目标中输入\\r\\n,替换为输入\r\n,查找模式一定要勾选扩展(X)(\n,\r,\t,\0,\x...),然后点击全部替换,即可。如上图,所示。注意:如果选择扩展不生效,可以尝试选择正则表达式,再次尝试。...
2021-06-23 14:13:09
13186
原创 Solr入门简介
1. Solr简介前言学习Solr需要一些和java相关的储备知识,在此之前,假设您已经:拥有Java开发环境以及相应的IDE熟悉Spring Boot熟悉Maven熟悉Lucene如果大家是一名java开发工程师,我想大家有需求要学习Solr,应该上边的前3条要求都不是问题,至于为什么要学习Lucene呢? 因为Solr是基于Lucene开发的全文检索服务。也可以简单理解为,solr依赖于Lucene,是Lucene的一种封装。这个在后边也会详细介绍。1.1 Solr 是什么Sol
2021-06-22 16:57:04
7294
原创 rclone的安装和使用
前言由于公司用了minio做文档存储,所以最新学习了下rclone的使用,用来同步云存储的数据。minio是基于s3协议的实现,在安装完rclone后,会看到我们用rclone配置连接minio时会选择s3协议。安装环境是centos7安装rclone执行 curl https://rclone.org/install.sh | sudo bash可能会报错None of the supported tools for extracting zip archives (unzip 7z b
2021-06-09 17:23:27
8445
1
原创 springboot2.x使用企业邮箱发送邮件
这里写自定义目录标题前言配置文件application.yml前言之前发邮件,一直是使用公司封装好的工具类,还没体验过Springboot的自动配置的便捷性。最近,刚好搭建新项目,有发邮件功能,体验了一把。发邮件,大家最好,了解一下smtp、pop3协议。简单理解,一个是发送协议,一个是接受协议。springboot发邮件比较简单,直接上配置文件,和测试类了。配置文件application.yml...
2021-05-07 09:30:22
3591
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人