- 博客(281)
- 资源 (24)
- 收藏
- 关注
原创 Nacos与Eureka的区别(功能差异及选型建议)
Nacos与Eureka的区别共同点都支持服务注册和服务拉取都支持服务提供者心跳的方式做健康检测区别Nacos支持服务端主动检测提供者状态:临时实例采用心跳模式,非临时实例采用主动检测模式(一般情况下都使用临时实例,主动检测消费的服务器资源较大,服务器压力大)临时实例心跳不正常会被剔除,非临时实例则不会被剔除Nacos支持服务列表变更的消息推送模式,服务列表更新及时Nacos集群默认采用AP方式,当集群中存在非临时实例时,采用CP模式;Eureka采用AP方式功能差异模块Nac
2022-05-09 19:10:12 3067
原创 SpringBoot自动装配原理
过程@SpringBootApplication——>@EnableAutoConfiguration——>@Import提供,其导入的AutoConfigurationImportSelector的selectImports()方法SpringFactoriesLoader.loadFactoryNames()扫描所有具有META-INF/spring.factories的jar包下面key是EnableAutoConfiguration全名的,所有自动配置类。看看SpringB
2022-05-09 16:58:38 290 1
原创 深入:分布式一致性:Raft算法解析
分布式CAP理论Consistency 一致性Availability 可用性Partition tolerance 分区容错性(ps:三者不可兼顾)什么是raft算法?(AP)Raft 算法是可以用来替代 Paxos 算法的分布式一致性算法,而且 raft 算法比 Paxos 算法更易懂且更容易实现。raft算法解决了什么问题?Raft 是用来管理复制日志(replicated log)的一致性协议。它跟 multi-Paxos 作用相同,效率也相当,但是它的组织结构跟 Paxos
2022-05-04 15:19:00 398
原创 K8S容器 exitCode:137 OOM 导致节点重启 Kibana排查过程
Kibana日志信息:2021-11-15 14:38:43.650 DEBUG 7 — [ main] o.s.c.e.PropertySourcesPropertyResolver : Found key ‘spring.cloud.stream.bindings.*****************’ in PropertySource ‘bootstrapProperties’ with value of type String2021-11-15 15:23:36.304
2021-11-30 19:12:33 2318
原创 Spring Boot集成Swagger 访问失败 SpringBoot集成Swagger2遇到异常:请求不到swagger-ui.html.note
我们在使用SpringBoot集成Swagger2中,访问:http://localhost/swagger-ui.html问题描述:No mapping found for HTTP request with URI [/swagger-ui.html] in DispatcherServlet with name ‘dispatcherServlet’问题截图:参考文章:https://www.it610.com/article/1188228427770077184.htmhttps://
2022-10-22 21:31:30 2123 1
原创 我的前三十年
从一个高中体育生到师范院校的一名社会体育指导员,再到一个搬砖的Java工程师,随后又成为青训篮球教练。这一路有多少回忆,酸甜苦辣,五味杂陈。
2022-10-10 14:53:09 1085 5
原创 Spring项目启动时Error creating bean with name ‘xxxxxx‘: Bean with name ‘xxxxxx‘ has been injected into ot
Caused by: org.springframework.beans.factory.BeanCurrentlyInCreationException: Error creating bean with name 'xxxxxx': Bean with name 'xxxxxx' has been injected into other beans [xxxxxx] in its raw version as part of a circular reference, but has eventuall
2022-08-03 14:16:40 1282
原创 Nacos Serve 本地启动报Error starting Tomcat context. Exception: org.springframework.beans.factory.BeanCre
报错信息ErrorstartingTomcatcontext.Exceptionorg.springframework.beans.factory.BeanCreationException。执行nacos-server-2.0.4\nacos\bin\startup.cmd时报错。报错原因nacos默认是集群启动方式。如图修改即可单机启动。
2022-07-27 18:01:20 5172
原创 Python读写CSV文件三种方式的思路与代码实操
Step 1:导入必要模块,获取输入输出文件路径。Step 2:使用open内置函数获取文件对象。Step 3:使用文件对象的readline方法或者迭代器的next方法读取表头(文件对象是一个迭代器对象,支持迭代协议),使用str.split方法对表头进行拆分(注意,要使用strip函数去掉尾部换行符)。Step 4:既然表头已经查分好了,我们需要将表头写入文件对象中(注意尾部需要添加一个换行符哦)。Step 5:使用for循环读取表体数据,并将其拆分成列表写入到文件中。二、csv模块步骤Step
2022-05-31 22:39:17 531
原创 创建线程的方式与过程(代码解析+对比)
创建线程的方式继承Thread类(extends)实现Runnable接口(implements)实现Callable接口+Future Task(可以拿到返回结果,可处理异常)线程池:Executors/ThreadPoolExecutor线程池工作流程线程池创建准备好corePoolSize大小的核心线程准备任务来了先试用核心线程core满了,将再进来的任务放到阻塞队列中等候阻塞队列满了,直接开启新的线程(不超过max数量)非核心线程会在keepAliveTime后自动销毁超过m
2022-05-16 21:34:33 340
原创 深入:分布式锁(底层原理+实现解析)
什么是分布式锁?概念CAP定理任何一个分布式系统都无法同时满足一致性(Consistency)、可用性(Availability)和分区容错性(Partition tolerance),最多只能同时满足两项。为什么要有分布式锁?单机锁不能完成么?图解单机锁分布式架构下只能锁住当前机器,而不能实现个节点使用同一把锁如何设计分布式锁可以保证在分布式部署的应用集群中,同一个方法在同一时间只能被一台机器上的一个线程执行。这把锁要是一把可重入锁(避免死锁)这把锁最好是一把阻塞锁(根据业务需
2022-05-16 21:09:22 936
原创 Spring IOC容器的初始化过程
Spring IOC容器的初始化过程控制反转 Before:对象A依赖于对象B,A掌握控制权 Now:引入IOC容器,对象A与对象B失去了直接联系,so,当对象A运行到需要对象B的时候,IOC容器会主动创建一个B注入到A需要的地方去。 Result:对象A获得依赖对象B的过程,由主动行为变成了被动行为。控制权颠倒过来了,这就是控制反转。依赖注入DI:即由IOC容器在运行期间,动态的将某种依赖关系注入到对象之中。所以DI和IOC是从不同角度的描述的同一件事,就是指通过引入IOC容器利用
2022-05-09 18:50:45 572
原创 深入:二分查找算法(分治)
前言:二分查找算法也称折半搜索算法,对数搜索算法,是一种在有序数组中查找某一特定元素的搜索算法。形象图:动图演示点击查看循环实现: /** * while实现 * @param a * @param fromIndex * @param toIndex * @param key * @return */ private static int binarySearch0(long[] a, int fromIndex,
2022-05-07 17:05:59 529
原创 单元测试 Mock 对象为null
场景:单元测试mock对象,执行时为null或值不符。单元测试中mock方法并doReturn了mock数据,但是实际的方法在后面使用的参数却是null。断点调试后发现调用方法前和在方法中的对象的id并非一个;重复浏览调用代码,发现问题在于单测中重复mock一个方法,doReturn的mock数据被覆盖了问题原因:doReturn(selectEntity).when(selectMapper).selectById(any());首先确定doReturn的对象是否给属性赋值尽量用anyLo
2022-04-05 18:26:07 8351
原创 浅谈:幂等性
概念:幂等(idempotent、idempotence)是一个数学与计算机学概念,常见于抽象代数中。在编程中一个幂等操作的特点是其任意多次执行所产生的影响均与一次执行的影响相同。幂等函数,或幂等方法,是指可以使用相同参数重复执行,并能获得相同结果的函数。这些函数不会影响系统状态,也不用担心重复执行会对系统造成改变。例如,“setTrue()”函数就是一个幂等函数,无论多次执行,其结果都是一样的.更复杂的操作幂等保证是利用唯一交易号(流水号)实现。数学定义:在数学里,幂等有两种主要的定义。在
2021-12-02 10:18:21 875
原创 ps -ef|grep一扒到底
简介:ps命令将某个进程显示出来grep命令是查找中间的|是管道命令 是指ps命令与grep同时执行如例检查存在的java 进程:ps -ef |grep java字段解释 :UID :程序被该 UID 所拥有PID :就是这个程序的 IDPPID :则是其上级父程序的IDC :CPU使用的资源百分比STIME :系统启动时间TTY :登入者的终端机位置TIME :使用掉的CPU时间。CMD :所下达的是什么指令
2021-11-29 17:56:13 238
原创 Jenkins实战先看这:Jenkins 集成Junit单元测试+Jacoco统计覆盖率
版本信息:Jenkins:2.190.1jdk:1.8.0_231maven:3.6.2需求:通过Jenkins构建 运行单元测试并统计覆盖率遇到的问题:流水线语法脚本;(文档学习)Jenkins mvn not found;(jerkin环境变量添加maven路径)NullPointerException in Jenkins;(wrap{}语法不支持)Error cloning remote repo ‘origin’;(脚本书写错误)There is insuffici
2021-11-29 10:24:31 2324
原创 手把手教学:Linux下通过DockerFile制作docker镜像并部署容器(Java)
编写DockerFile文件FROM openjdk:8-jdk-alpineMAINTAINER nequalQARUN mkdir -p /home/report/logs#打包项目并拷贝到COPY ./target/report-1.0-SNAPSHOT.jar /home/reportWORKDIR /home/reportENV HOME=/home/reportENTRYPOINT ["java" ,"-jar", "report-1.0-SNAPSHOT.jar",
2021-11-26 11:20:59 2302
原创 does not match format
问题报错:ValueError: time data ‘2014/7/1’ does not match format ‘%Y-%m-%d’原因:“%Y-%m-%d”检查格式是否传值正确,且自定义格式是否符合规则
2021-09-24 18:13:47 1701
原创 mysql下出现Unknown column ‘id‘ in ‘on clause‘的解决方法
原SQLselect a.*,b.*from info a ,category b where a.id = b.id and b.id=#{id}问题报错Unknown column ‘id’ in ‘on clause’修改后SQLselect a.*,b.*from (info a ,category b) where a.id = b.id and b.id=#{id}原因MySQL5.0 Bug, 要把联合的表用括号包含起来...
2021-09-02 11:43:52 10301
原创 Mac Sublime Text设置中文
Shift + Command +P(全局搜索)输入install(模糊搜索)选择点击:Package Control :Install Package(等待弹出插件搜索框)输入Chinese模糊搜索选择点击ChineseLocalizations语言包插件安装完成后重启软件生效(也可以在Help- Language选择其他语言)...
2021-09-02 11:39:15 2913
原创 Invalid bound statement (not found)解决
问题报错:Invalid bound statement (not found):********问题原因:根据网上大佬们分析的原因主要有以下五点mapper.xml 里面的 namespace与实际类不一样mapper接口的函数名称和mapper.xml里面的标签id不一致构建没有进去,请看一下target文件夹下面这些是否存在,没有请重新构建扫包是否添加,我的是添加在springboot启动类上面的,如果是配置类请百度一下配置文件写错前两点验证很简单,到对应m
2021-08-23 20:49:06 706
原创 Source code does not match the bytecode
问题:Source code does not match the bytecode(源代码与字节码不匹配)解决:重启项目原因:代码更改添加了,但是并未重新编译一下,所以添加的代码idea就探测不到,只需要重新debug restart一下/Build Project...
2021-08-13 14:20:31 21811 3
原创 java8 对象转 Map 时 key Duplicate key
报错信息:Duplicate key SpotDiffBudgetDTOjava.lang.IllegalStateException: Duplicate key...问题代码:Map<String, SpotDiffBudgetDTO> spotMap = list.stream().collect(Collectors .toMap(SpotDiffBudgetDTO::getSpotId, spotDiffBudgetDTO -> spotD
2021-08-08 20:08:31 844
原创 sql查询表中指定月份的数据
参考文章:https://www.cnblogs.com/jr-xiaojian/p/12327859.html要求:查询出emp表中1981年2月份入职的员工常用的两种方式:1.YEAR查询年,MONTH查询月SELECT * FROM emp WHERE YEAR(HIREDATE)='1981' AND MONTH(HIREDATE)='2'2.date_format (使用更多)SELECT * FROM emp WHERE DATE_FORMAT(hiredat.
2021-07-29 19:58:03 16097 2
原创 Column count doesn‘t match value count at row 1
报错信息:Column count doesn't match value count at row 1解决办法:检查段类型是否正确, 是否越界, 有无把一种类型的数据存储到另一种数据类型中; 检查dao层访问数据库的sql语句是否书写错误,赋值的参数是否与字段类型一致原因:insert 语句中,前后列数不等省略数据库表的列名;补全列名;检查相匹配的列数书写错误,标点符号,多空格...
2021-07-23 18:31:10 778
原创 Sql陷阱:IN与NOT IN(in 和not in 不是相反的)
先来对比下这两组sql结构上有什么不同?测试的sql demo一:SELECT * FROM user_info WHERE create_time in (SELECT max( create_time ) FROM user_info GROUP BY telNumber) 二:SELECT * FROM user_info WHERE create_time not in (SELECT max( create_time ) FROM user_info GROUP BY telNu.
2021-07-23 14:28:46 643
原创 sql语句导出文件数据
select 需要导出的数据1,需要导出的数据2, from 数据库表 where 导出过滤条件 into outfile '要导出文件名以及格式'常见问题:mysql没有对修改本地文件的权限解决://查看secure_file_prive的值SHOW VARIABLES LIKE "secure_file_priv";//secure_file_prive=null -- 限制mysqld 不允许导入导出//secure_file_priv=/tmp/ -- 限制mysql.
2021-07-23 10:49:05 1871 1
原创 数据库单表数据归档
-- 创建中间表create table table_midle_20210719 like table; -- Copy 表结构INSERT INTO table_midle_20210719 (SELECT* FROM table WHERE created_time IN ( SELECT max( created_time ) FROM table GROUP BY spot_id ));-- 将旧表改名alter table table renam.
2021-07-23 10:41:53 347
原创 ssh连接报错:Connection refused详细解决办法
出现此报错,主要是有两个问题,第一就是没有安装ssh相关服务软件;第二是没有启动sshd服问题原因:没有安装ssh相关服务软件; 没有启动sshd服务。首先查看一下是否有安装提供sshd服务的软件rpm -qa | grep ssh如果没有,则需要安装如果已经安装了提供sshd服务的软件,那么就是没有启动sshd服务。此时先查看一下sshd服务的状态systemctl status sshd如果是dead的状态,说明没有启动sshd服务,那么就要启动sshd服务。n
2021-07-14 18:53:27 34676 1
原创 java.lang.NoSuchMethodError: org.json.JSONObject.put(Ljava/lang/String;Ljava/util/Collection;)
问题:java.lang.NoSuchMethodError: org.json.JSONObject.put(Ljava/lang/String;Ljava/util/Collection;)解决方案:https://blog.csdn.net/wuzhong8809/article/details/89149332但是博主通过此方式未解决成功。。。
2021-07-14 18:47:29 603
原创 java.lang.UnsupportedOperationException: null
问题如题:java.lang.UnsupportedOperationException: null问题代码:getAsString(GSON JsonObject "Unsupported Operation Exception: null" getAsString)解决方法:textJson.isJsonNull()判空!
2021-07-14 18:45:44 1517
原创 Stream.reduce()合并流 例BigDecimal 的add求和
先看源码:/** * Performs a <a href="package-summary.html#Reduction">reduction</a> on the * elements of this stream, using the provided identity value and an * <a href="package-summary.html#Associativity">associative</a> * accumula
2021-07-14 18:27:02 4617
原创 Java 替换字符串中空格的三种方法
1、方法分类str.trim(); //去掉首尾空格 str.replace(" ",""); //去除所有空格,包括首尾、中间 str.replaceAll("",""); //去掉所有空格,包括首尾、中间 str.replaceAll(" +",""); //去掉所有空格,包括首尾、中间 str.replaceAll("\\s*",""); //可以替换大部分空白字符,不限于空格;2、代码示例package test; public class Test { /** ...
2021-07-14 18:15:30 13999
原创 LambdaQueryWrapper用法注解
先附上各个用法: 方法 sql setSqlSelect SELECT 查询字段 where WHERE 语句,拼接 + WHERE 条件 and AND 语句,拼接 + AND 字段=值 andNew AND 语句,拼接 + AND (字段=值) or OR 语句..
2021-07-14 18:09:27 4617
原创 JsonObject&JsonArray拼接
代码加持!Bug遁形!import com.google.gson.JsonArray;import com.google.gson.JsonObject; //JSONArray里putJSONObjectJSONArray jsonArray = new JSONArray();JSONObject json = new JSONObject();json.put("test", "123");jsonArray.put(json);//putJSONObject里JSONArray
2021-07-07 15:55:59 1019
原创 Mac软件安装包和问题解决方案
前言:最近终于把Mac本熟悉了一些,使用起来也开始习惯了,但是开始下载各种软件找合适的版本真是费劲,为了让大家方便下载使用,点赞关注后,可将需要的软件在评论区留言!部分软件:安装软件时遇到的问题相关解决方案:“已损坏修复”安装过程安装方法:1. 将程序图标拖动到右侧应用程序目录(Applications)文件夹上即可自动完成安装。2. 点击Dock栏的『启动台』,找到安装的应用运行。3. 弹出『xxx是从互联网下载的App』,点击『打开即可』。4. 尽情享用吧!一键修复『已
2021-07-02 14:57:13 3112
Transmit 5.7.1-Mac.zip
2021-01-22
apache-jmeter-4.0.zip
2021-01-18
redis.conf
2020-12-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人