寂寞旅行
编程原则>>>不写代码: 不修改原有代码,尽量不增加新代码,不重复造轮子
在开始的几年中,在csdn中查到了解决开发问题的方法,现在也想成为帮助他人的一份子,出一份力;记录工作点滴困难,让后来者少走弯路;从涉及springboot,springcloud全家桶,mybatis,mp,influxdb,nebula,mysql,redis,mongodb,rabbitmq,多线程编程,分布式锁,html,jsp,jquery;取得系统集成中级证书;
展开
-
@ConditionalOnProperty 用法
ConditionalOnProperty 是Spring Boot中的条件注解,它的核心功能是通过属性名以及属性值来实现的,常被用于判断某个属性是否存在,然后决定某个Bean是否创建;其实这个注解 @ConditionalOnProperty 相当于就是java SPI机制的另一种实现方式,更加灵活,在配置文件中更改,当注册中心为nacos,可以实现不重启项目就能自如切换相应实现类的效果;也就是热加载的效果,热加载其实是 @RefreshScope 发生的了作用@RefreshScope概述。原创 2023-10-12 15:21:08 · 1400 阅读 · 6 评论 -
springboot集成consul
consul 作为一个cloud支持的注册中心,安装方便,配置简单,小巧精致,是一款非常适合初学者来用的服务注册与发现中心;它没有nacos那样复杂,可以放配置文件,换句话说,他也没有nacos那样强大;以consul为注册中心,整合还是很快的,基本上没有版本不一致导致的各种问题,兼容性较好;另整合过程视频地址:传送门。原创 2023-04-05 06:00:00 · 1144 阅读 · 0 评论 -
微服务之间如何进行用户信息传递
https://www.cnblogs.com/ming-blogs/p/14596721.html原创 2021-09-16 10:25:54 · 1356 阅读 · 0 评论 -
xxl-job
大神徐雪里大作 xxl 为名字缩写xxl-job下载demo具体操作步骤自行百度image.png1 下载导入,建立本地数据库2 启动admin 访问地址 http://localhost:8080/xxl-job-admin/如下image.png可以管理任务执行器,以及任务触发条件我用的springboot的这个里面的任务执行器demoimage.p...原创 2022-04-18 14:51:34 · 969 阅读 · 0 评论 -
负载均衡 验证
所以,在注册中心上,我有两个同名服务,但是端口号不同,所以,如果负载均衡功能好用,那么他会默认轮询,执行一次fuwu 8083 ,再执行一次ribbon 8081。即feign服务,而feign服务会去注册中心上去找名称为ribbon-provider 的服务,然后找到俩,即开始轮询。ribbon: 在eureka 上注册的服务名字为ribbon-provider 8083。在 feign服务中,通过控制器调用远程的服务,最终到GetHello中。这是一个cloud例子的最终样子,有三个服务。原创 2020-08-10 15:56:11 · 142 阅读 · 0 评论 -
java服务器负载过高查询
当服务器莫名出现问题,且排查后一切正常的时候,那么应该排查下一下,是否是服务器负载过高导致的问题;1 查看当前负载排名靠前的进程top2 查询当前服务器磁盘占用free``3 根据当前负载排名查看堆情况top -H -p 进程id如图![image.png](https://upload-images.jianshu.io/upload_images/23984687-0a118...原创 2022-06-10 08:34:57 · 187 阅读 · 0 评论 -
zipkin 链路跟踪
之前是自己搭建一个zipkin服务,现在推荐的是在服务器上直接运行一个微服务去启动zipkin过程是,下载zipkin的微服务jar包 ,然后启动下载地址https://zipkin.io/pages/quickstart.htmlimage.png启动之后访问:服务器的ip加上后缀,我的是http://192.168.86.196:9411/zipkin/就可以访问,到z...原创 2021-08-16 15:26:13 · 162 阅读 · 0 评论 -
2022-04-13 分布式任务调度Quartz
为什么要用Quartz?在分布式架构中,当某个服务压力过大的,处理数据过慢的时候,我们会选择一种方式就是启动多实例,例如现在我启动了两个A,负载均衡 来处理数据,加快服务的响应速度,但是当A服务上有定时任务呢?比如: 计算一下今天总收入,汇总; 两个A ,统计两遍,汇总两遍~~~~!!!!!这就GG了,因此分布式任务调度的需求应运而生=====Quartz;解决的问题:1 任务不重复跑 ...原创 2022-04-13 22:38:13 · 398 阅读 · 0 评论 -
2021-08-31分布式锁
例如有一个定时任务,每天半夜执行任务(对数据天数加一操作); 当此应用被搭建成集群的时候,就会有问题,问题就是每天半夜这个定时任务,由于集群,每个实例都会执行,这就会产生错误;分布式锁为了解决在分布式中,保证只有一个jvm执行,而不是同时执行;分布式锁的核心思路:1 获取锁 jvm获取全局唯一标识,获取到就可以去执行了2 释放锁 释放该全局唯一标识,然后其他jvm重新获取锁3 超时锁...原创 2021-08-31 18:36:36 · 71 阅读 · 0 评论 -
基于lua脚本实现的setnx+expire 保证原子性的锁
根据aop拦截到访问接口的请求参数哈希值,以此为key,当首次访问,放入redis中(setnx)设置过期时间,返回结果为ok。当在过期时间范围内,再次访问(即重复提交问题),判读key是否存在,存在(氢请求参数相同),则在执行lua脚本的时间无法设置成功,返回结果为null。==================================经过最近的学习,我发现上面的方法太low了,繁琐===========================其中 这里为lua脚本加锁的核心。类 LockContext。原创 2021-04-12 14:25:49 · 1205 阅读 · 0 评论 -
工作中用到的分布式锁
【代码】工作中用到的分布式锁。原创 2022-03-04 10:22:58 · 1218 阅读 · 0 评论 -
注册中心consul
下载linux版本即可,对应安装,安装后,默认8500管理页面端口无法访问,需要在启动的命令中加入: -client 0.0.0.0 -ui。两个启动命令分别对应不同的ip注册地址,可以供其他微服务注册,优于eureka 的好处,首先占用内存小,其次,无须一定要启动一个服务。1 8500端口如果linux 不配置(-client 0.0.0.0 -ui),默认是无法在管理页面访问的.3 consul 的注册时间,要比eureka时间稍微长一点,且为强一致性等,可自行百度其他区别。原创 2020-12-02 09:25:20 · 197 阅读 · 0 评论 -
2021-09-13 以nacos为配置中心,集成seata
seata: 分布式事务,由阿里巴巴开源,此示例中用的配置中心是nacos(1.4.1),seata (1.3.0),springboot版本2.3.7本文配置中心是nacos,nacos的相关安装等,之前的文章中有提到,或者自行百度;集成分布式事务,大体分为两步1 搭建seata服务端,注册到nacos上可以看到证明集成完毕2 在服务中引入seata,然后配置该服务与 seata服务端建...原创 2021-09-13 16:57:29 · 773 阅读 · 2 评论 -
Nacos集群搭建踩坑
就是一个实例部署了多份,当有一个服务由于不可抗力因素挂掉了,但是其余实例依然能够提供服务,一直处于可以提供服务的状态;例如: 京东订单系统,部署了10个,其中一个位置机房断电了 ,一个订单实例挂掉了,但是整个京东的订单系统依然运转正常,只是现在的每个实例所承受的压力比之前要大了;搭建过程遇到了几个坑;集群配置的mysql一定要全部开启配全,否则报错集群实例的端口不能相差一位 例如 8848 8847 8849 必须相差两个以上新版本的nacos必须开启安全认证,必须配置secret.key。原创 2023-03-22 07:00:00 · 482 阅读 · 2 评论 -
springboot集成nacos
springboot项目注册到nacos`nacos 是一个注册中心+配置中心,这也是他比consul 强大的原因,那么如何将一个springboot项目注册到noacs,然后成为它的一个子服务呢?nacos 不仅是注册中心,还是一个配置中心,也就是项目中的配置都可以放到nacos中,然后启动的时候,先去nacos注册,再去nacos中找到自己的配置,再启动自己就ok了;如果用consul 的话,一般使用阿波罗作为配置中心搭配使用;原创 2023-03-27 07:30:00 · 3195 阅读 · 0 评论 -
nacos中gateway配置详解
最近忙的不行本地安装nacos ,它既是注册中心,又是配置中心 默认端口8848(珠穆朗玛峰的高度)下载安装自行百度,我是在windos中安装的 用的是1.4.1,下载地址:https://github.com/alibaba/nacos/releases/tag/1.4.1image.png下载后解压解压的文件中的conf中有个sql文件image.png解压...原创 2021-08-11 11:31:57 · 3329 阅读 · 2 评论 -
springcloud之负载均衡
在springcloud中,服务端实现负载均衡,我所知道的是通过ribbon实现的而通过ribbon实现的负载均衡目前在用的比较多的是feign和 restTemplate两种feign:已经集成了ribbon,默认是轮训算法,当然也可以通过配置更改loadbalacned算法restTemplete:需要配置集成ribbon方法如下(在启动类中加入)@Bean@LoadBalanced...原创 2020-07-14 16:29:39 · 1516 阅读 · 0 评论 -
feign 调用第三方接口
且此时项目日志级别应该为debug级别.重点在configuration 由于,此次请求中为https,而我们项目是没有https证书验证的,所以要跳过,该配置类中主要做的就是打印feign请求日志,其次就是 跳过https证书验证。话不多说直接上代码,我采用的是feign ,因为本身项目就是cloud架构,就存在服务直接的feign调用,为了同一,这次第三方调用也采用feign。至此,feign调用的各种处理已经基本实现了较为清晰的日志功能,方便找错误,实现了自定以的错误返回,相对完善.原创 2021-04-19 09:33:32 · 4667 阅读 · 2 评论 -
feign 文件 上传/下载
这个坑,搞了一上午,终于搞好了,太费劲了!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!1 首先feign的配置文件中,要加一个编码转换2 feign调用的时候,要加consumes = MediaType.MULTIPART_FORM_DATA_VALUE3 文件下载的时候,需要接收返回流,用feign中的Response 接受具体如下:...原创 2021-09-02 13:39:38 · 763 阅读 · 0 评论 -
feign的超时时间配置
当配置文件中同时有feign和ribbon的配置时,feign的配置会覆盖掉ribbon的配置;所有时间单位都是ms,毫秒feign: sentinel: enabled: true client: config: default://全部服务配置 connectTimeout: 5000 readTimeout: 5000...原创 2022-04-21 10:00:01 · 677 阅读 · 0 评论 -
openfeign 全局日志/忽略https验证
feign 相对于 resttemplate 来说不仅兼具他的功能,而且比他更强大,所以当项目为springcloud架构之后,无论是服务之间的调用,还是其他的http调用,都应该统一用feign处理;如果是单体项目,则resttemplate优先考虑;网上也有单独配置某个feign 的方法;传送门这里推荐全局配置,这样省去了逐个配置的麻烦,然后这样有助于在生产环境定位问题,待服务运行平稳之后,再将feign日志去掉,或者整体调整服务日志级别 打印等;原创 2023-03-30 07:00:00 · 1095 阅读 · 1 评论 -
SpringCloudGateway报打开的文件过多的问题
在org.springframework.cloud:spring-cloud-starter-gateway依赖中exclude掉io.projectreactor.netty:reactor-netty:0.9.8.RELEASE,并且额外引入io.projectreactor.netty:reactor-netty:0.9.12.RELEASE依赖。是由于gateway中的一个插件的版本问题导致的。原创 2021-01-25 18:02:18 · 919 阅读 · 3 评论