- 博客(141)
- 问答 (1)
- 收藏
- 关注
原创 虚拟机上安装centos7
直接下载地址 https://mirrors.tuna.tsinghua.edu.cn/centos-vault/7.8.2003/isos/x86_64/CentOS-7-x86_64-DVD-2003.iso。这里 IP地址输入根据虚拟机的网络配置来的。由此可以得出自己的所输入的IP地址。在常规里面勾选如下配置。这里写入自己的主机名。
2024-06-15 17:44:54
414
原创 sky walking日志采集以及注意事项
在介绍Sky walking日志采集功能之前,最好在系统学习一遍日志框架,这里推荐楠哥的日志框架在实际项目中我们需要将项目中的日志采集到sky walking中以便于我们能够快速排查问题,sky walking本身提供了logback,log4j,log4j2日志采集功能。可以直接进入官网学习和配置因为现在企业基本上使用logback和log4j2两个日志框架所以我们就只演示这两个日志框架的收集。
2024-05-25 22:39:53
1506
原创 Docker容器数据卷
卷就是目录或文件,存在于一个或多个容器中,由Docker挂载到容器,但不属于联合文件系统,因此能够绕过Union File System提供一些用于持续存储或共享数据的特性:卷的设计目的就是数据的持久化,完全独立于容器的生存周期,因此Docker不会在容器删除时删除其挂载的数据卷。类似于Redis里面的RDB和AOF文件。将docker容器内的数据保存进宿主机的磁盘中,运行一个带有容器卷存储功能的容器实例。
2024-05-18 12:32:30
280
原创 Docker推送镜像到阿里云镜像
为了提高访问速度和镜像的私有性,公司常常会建立自己的docker私有仓库。Docker Registry是官方提供的工具,可以用于构建私有镜像仓库。运行私有库Registry,相当于本地有个私有Docker hub。下载镜像Docker Registry。将新镜像修改符合私服规范的Tag。按照提示的操作一步步的进行操作。curl验证私服库上有什么镜像。修改配置文件使之支持http。push推送到私服库。再次验证容器中的镜像。
2024-05-18 12:12:39
452
原创 Docker镜像
Docker镜像是一种轻量级,可执行的独立软件包,它包含运行某个软件所需要的所有内容。我们把应用程序和配置依赖打包好形成一个可交付的运行环境(包括代码,运行时所需要的库,环境变量和配置文件等),这个打包好的运行环境就是image镜像文件。只有通过这个镜像文件才能生成Docker容器实例。
2024-05-18 10:40:15
754
原创 docker入门详解
docker是基于Go语言实现的云开源项目,其主要目标为 “Build、Ship and Run App Anywhere”,也就是通过对组件的封装,分发部署,运行等生命周期的管理,使用户的APP及其运行环境能够做到”一次镜像,到处运行“。一句话概括 Docker是解决了项目运行环境和配置问题的软件容器,方便做持续集成并有助于整体发布的容器化虚拟技术。
2024-05-16 23:50:09
1168
原创 基于IDEA快速创建一个SpringMVC项目并且配置Tomcat
使用社区版的同学创建普通的maven项目,并配置项目的webapp,详情可参考。访问 http://localhost:8080/hello。
2024-05-14 21:04:25
612
原创 Skywalking数据持久化与自定义链路追踪
Sky walking默认的追踪粒度只到服务级别,粒度不够小。如果一个请求只在当前服务中完成,且这个请求的过程调用该服务中很多个接口。他们是在同一个服务中,为了在追踪到这些同一个服务中的Service,就需要我们自定义追踪引入依赖</</</</编写trace接口@Autowired// 往追踪上下文中绑定key/value值log.info("【自定义追踪测试】存储标签信息:{}",s.orElse(null));traceServiceImpl类的实现@Override。
2024-05-07 22:41:28
650
原创 Skywalking的重要功能详解
再次访问 http://localhost:8086/userList。访问http://localhost:8086/userList。将Spring boot默认的Logback日志框架移除。配置log4j2.xml文件【在resource目录下】在admin服务中,连接数据库查询user表中所有数据。user表中模拟一百万数据【使用MySQL存储过程】将服务的启动日志上传到Sky walking。引入Sky walking日志工具包依赖。UserServiceImpl类。引入log4j2日志依赖。
2024-05-07 00:26:48
1252
原创 分布式链路追踪工具Sky walking详解
APM【application performance management】即应用性能管理系统,是对企业系统即时监控以实现对应程序性能管理和故障管理的系统化解决方案。应用性能管理,主要指对企业的关键业务应用进行检测,优化,提高企业应用的可靠性和质量,保证用户得到良好的服务,降低IT总拥有成本APM系统是可以帮助理解系统行为,用于分析性能问题的工具,以便发生故障的时候,能够快速定位问题和解决问题。
2024-05-01 18:38:34
1681
原创 为项目配置spring boot3+jdk17的开发环境
具体项目介绍开源查看项目简介,克隆下来以后发现项目使用的是spring boot3+jdk17编译模式,本地我们一般使用spring boot2+jdk8,为了使项目能够运行起来 需要为这个项目单独搭建开发环境。网址:https://www.oracle.com/java/technologies/downloads/#jdk17-windows。用idea打开该项目【官方文档 https://tangyh.top/opendoc/%E7%AE%80%E4%BB%8B.html】在点击project。
2024-02-19 15:12:29
677
原创 Java实现数据标注功能
只能做好相对比较好的图片,对于图片被旋转 或是图片不规则的标注出来还是有一定误差和缺陷的,而且严重依赖第三方ocr识别接口。温馨提示:使用他们的接口不是免费的喔,厉害的大神可以自己去训练一个这样的模型。这个其实应该用python实现会容易一些,不过不影响Java也可以。又是奇葩需求的一天,产品给了一张原图。
2023-12-20 13:44:59
823
1
原创 MySQL基础入门
4). 注释:单行注释:-- 注释内容 或 # 注释内容 多行注释:/* 注 释内容 */REVOKE 权限列表 ON 数据库名.表名 FROM ‘用户名’@‘主机名’;GRANT 权限列表 ON 数据库名.表名 TO ‘用户名’@‘主机名’;3). MySQL数据库的SQL语句不区分大小写,关键字建议使用大写。数据操作语言,对数据库表中数据进行增删改操作。在学习具体的SQL语句之前,先来了解一下SQL语言的同于语法。数据控制语言,用来管理数据库用户,控制数据库的访问权限。
2023-08-31 00:05:56
335
原创 MySQL函数和约束
注:开发中一般不推荐使用外键约束,外键约束在高并发和大数据实践中会带来很多性能问题,甚至会产生死锁问题。而且对于开发者来说,外键的级联操作也会给开发者带来极大的不便。概念:约束是做作用于表中字段上的规则,用于限制存储表中的数据。概念:用来让两张表的数据之间建立连接,从而保证数据的一致性和完整性。目的:保证数据库中数据的正确性,有效性和完整性。删除/更新行为(级联行为)
2023-08-30 23:51:22
412
原创 真实遇到Redis双写一致性问题
今天工作中接到一个bug,产品那边描述, 在后台添加一个供应商后前台无法展示。是个例还是全部?他说应该是个例。
2023-06-28 23:57:27
459
2
原创 SpringMVC Controller 接收页面传递的中文参数出现乱码
按照网上的搜索结果对tomcat的server.xml和项目中的web.xml做出配置如下在tomcat的server.xml中找到Connector标签然后对他重新配置web.xml中配置编码拦截器
2023-06-14 10:00:48
554
原创 Solr上查询不包含每个字符串
本来接口表里面有interface_type字段来标识接口类型的其中当值为4时即为测试接口,但是他们在线上很多可能忘记勾选 测试接口,就导致interface_type不为4且是一个测试接口。首先我们之前对solr查询的做出分页处理,如果这样做会导致从solr取出来的总数据不对,因为Stream过滤调了一部分,solr上模糊查询接口名称,但是接口名称里面不能包含测试接口,也就是说接口名称里面不能包含“测试”或“test”,一开始我准备对对模糊匹配查询出的接口用Stream流的Filter()处理,
2023-06-12 18:16:01
287
1
原创 记录第一次接口上线过程
这段sql一开始确实不理解什么意思,因为是组长优化后直接发给我的,先叫我看看为什么这么做。这段sql是查询6个月前的那一天数据,找到这天当中id最小的,然后在外面的查询中查询id大于这个最小id的就是近6个月的数据,因为ID是只增的,且id作为主键索引查询效率肯定大于我之前写的sql。没有使用缓存,公司项目还是一个多年的大项目,有着自己的缓存技术和体系,所有查询一般都是先走缓存,因为我的那个入参ids是多个客户id按逗号拼接而来的。查缓存,将缓存里面的数据和数据库里面查出来数据做对比。
2023-03-02 14:42:11
452
1
原创 分布式缓存的问题
查询id为1的数据,第一次查询,会先去缓存里面查询,没有查到数据,再去数据库里面查询,若查询数据不为空,将数据存入缓存并响应给客户端。由于ID为-1,缓存无法命中,数据库查询也是为空,所以这样的请求会全部打到数据库从而造成数据库压力增大和缓存失去意义。这样就可以避免了一个缓存穿透问题。引入Redisssion。
2023-02-19 15:32:27
343
原创 基于Spring cloud搭建oauth2
OAuth(开发授权)是一个开放标准,允许用户授权第三方应用访问他们存储在另外的服务提供者上的信息,而不需要将用户名和密码提供给第三方应用或分享他们数据的所有内容。OAuth2.0是OAuth的延续,但他并不兼容OAuth1.0,即它完全废除OAuth1.0。很多大公司如Google,Yahoo,Microsoft等都提供了OAuth认证服 务,这些都足以说明OAUTH标准逐渐成为开放资源授权的标准。微信小程序授权登录同样也是提供OAuth认证服务。详情请看某一天你想登录网站CSDN,之前没有在CSDN
2023-02-17 11:47:39
2613
1
原创 JSON Web Token (JWT)
JWT是JSON Web Token是简称,是一个行业开发标准(RFC 7519)定义了一种简介的 自包含的协议格式,用于在通信双方传递JSON对象,传递的信息经过数字签名可以被验证和信任。它可以使用HMAC算法或使用RSA的公钥/私钥对来签名,防止被篡改。官网:https://jwt.io/行业标准:https://www.rfc-editor.org/rfc/rfc7519。
2023-02-17 09:58:31
427
原创 八大排序算法之基数排序
—基数排序1,基数排序又称为“分配式排序”,又称”桶子法“。他是通过键值 各个位置的值,将要排序的元素分配至某些桶中,达到排序作用。2,基数排序是桶排序的扩展。3,基数排序是1887年赫尔曼.何乐礼发明的:将整数按位数切割成不同数字,然后按个位数分别比较。4,基本思想:将所有待排序的数值统一为同样长度,位数较短的数前面补零,然后从最低位开始,依次进行一次排序。这样最低位排序一直到最高位排序完成后,数列就是一个有序数列。—演绎过程—时间复杂度时间复杂度:O(d(r+n)) r代表关键字的基数,d代表长度
2022-12-06 13:53:15
144
原创 八大排序算法之归并排序
将待排序的数列分成若干个长度为1的子数列,然后将这些数列两两合并;得到若干个长度为2的有序数列,再将这些数列两两合并;得到若干个长度为4的有序数列,再将它们两两合并;直接合并成一个数列为止。这样就得到了我们想要的排序结果。—演绎过程分解 – 将当前区间一分为二,即求分裂点 mid = (low + high)/2;求解 – 递归地对两个子区间a[low…mid] 和 a[mid+1…high]进行归并排序。递归的终结条件是子区间长度为1。合并 – 将已排序的两个子区间a[low…mid]和 a[mid+1…
2022-12-06 10:53:25
96
原创 八大排序算法之堆排序
“ 堆排序指利用堆这种数据结构所设计的一种排序算法。堆是一个近似于完全二叉树的结构,并同时满足堆积的性质:即子节点的键值或索引总是小于(或者大于)它的父节点。”数组实现二叉堆的性质性质一: 索引为i的左孩子的索引是 (2*i+1);性质二: 索引为i的右孩子的索引是 (2*i+2);性质三: 索引为i的父结点的索引是 floor((i-1)/2);如下图例如,对于最大堆{110,100,90,40,80,20,60,10,30,50,70}而言: 索引为0的左孩子的所有是1;索引为0的右孩子是2;索引为8的
2022-12-05 11:58:04
118
原创 八大排序算法之希尔排序
他的基本思想是:对于n个待排序的数列,取一个小于n的整数gap(步长,通常为序列的中间元素)将排序元素分成若干个子序列,所有距离为gap的倍数的记录放在同一组中,然后对个组内元素进行直接插入排序。然后减小gap的值,并重复执行上诉步骤,当gap=1时,整个数列就是有序的。当然插入排序本身也比较抽象,在上面的图中我们会对元素进行分组,但是那都是逻辑上的分组,对于这个小的分组内元素的下标并没有改变。例如{80,20}这个分组,80对应下标为0,20对应下标为4,当他们交换后20对应下标为0,80对应下标为4。
2022-12-02 13:41:32
256
原创 八大排序算法之快速排序
把n个待排序元素看出为一个有序表和无序表。开始时有序表中只包含1个元素,无序表中包含n-1个元素,排序过程中每次从无序表中按下标顺序取出元素,将他插入到有序表中适当位置,重复n-1次完成排序过程。这种方式比较抽象,将新数组和原来的数组抽象在一起,当你再写的时候大脑里面应该是两个数组,但实际操作中是只对一个数组进行操作。这样的代码不是特别简介,但是结合示例图容易理解。时间复杂度:O(n2)
2022-12-01 16:19:26
154
原创 八大排序算法之快速排序
选择一个基数,通过一趟排序将要排序的数据分割成独立的两部分;其中一部分的所有数据都比另外一部分的所有数据要小。然后,再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。这里我们将“基数”设置为数组里面的第一个元素,当然你也可以设置为你喜欢的元素比如下标为(l+r)/ 2 的元素,值得注意的是整个基数必须是数组里面的任意元素。平均时间复杂度:N*logN。也期待你们其他的实现方法。
2022-11-30 14:56:14
107
原创 八大排序算法之选择排序
首先在未排序的数列中找到最小或最大的元素,然后将其存放到数列的起始位置;接着,再从剩余未排序的元素中继续寻找最小或者最大的元素,然后放到已排序数列的末尾。以此类推,直到所有均排序完毕。如下图代码实现
2022-11-29 14:08:23
133
原创 八大排序算法之冒泡排序
从图中可以看出冒泡排序就像水中的气泡一样从低向上慢慢变大(取决于倒序还是顺序)所以得名冒泡排序。代码实现方式不唯一,欢迎流言讨论。
2022-11-28 16:42:04
164
原创 java.lang.IllegalStateException: failed to req API:/nacos/v1/ns/instance after all servers
去掉nacos地址的http。
2022-11-12 14:04:51
4644
原创 Invalid bound statement (not found)(jar 冲突问题)
这是现在整合的换成之后就可以了具体什么原因也没有去分析,有知道的小伙伴可以帮忙分析一下,谢谢
2022-10-04 00:56:13
560
1
原创 config分布式配置中心
SpringCloud Config为微服务架构中的微服务提供集中化的外部支持,配置服务器为各个不同微服务应用的所有环境提供了一个中心化配置。
2022-08-30 14:25:45
143
原创 Hystrix服务熔断
当检测到该节点微服务调用响应正常后,恢复调用机制。在SpringCloud框架里,熔断机制通过Hystrix实现,Hystrix会监控微服务调用的状况,当失败的调用到一定阈值,缺省是5秒内20次调用失败,就会启动熔断机制。其注解是@HystrixCommand。
2022-08-21 21:49:58
424
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人