- 博客(19)
- 收藏
- 关注
原创 求助 Junit测试如何做到永久正常运行
背景公司使用微服务架构,有个服务叫基础配置服务(A),有个服务叫策略服务(B),现在B服务生成策略时,很多基础配置信息来源于A(通过接口调用查询),导致junit无法做到永久运行,因为配置信息无法保证一直存在!!!思路把属于B的配置信息都从A迁移到B,这样在写Junit时可以直接插入数据,然后在结束时清理数据即可!!!!但是,其实有一些配置,会是几个模块公用的,还只能放在A,这样就没法解决Junit的测试问题!!!哪位大神遇到过这类问题,给支个招。。。。...
2022-03-20 16:12:54
265
原创 nacos 鉴权配置
问题公司邀请第三方进行网站漏洞扫描,发现nacos有安全漏洞;不登录也可以创建用户!!!解决办法nacos官网有鉴权的方案:nacos服务端开启鉴权,这一步可以防止不能录也能创建用户,但是在请求头添加:User-Agent:Nacos-Server 也可以进行配置文件查看,原因是1.4.1之前的版本默认使用上面的请求头作为认证字符串;nacos服务端配置自定义的key和value,替代:User-Agent:Nacos-Server;具体配置配置之后,通过接口则无法访问!问题NACO
2022-02-18 19:37:33
3350
原创 netty 服务端断开连接后重新连接
问题刚开始使用netty,并未考虑服务端网络问题,但是今天发现有几次出现客户端发送成功,但是服务端未收到消息的情况,这才开始考虑客户端重连问题。方案netty本身提供断开连接通知,客户端需要在收到通知后,编写代码进行重新连接即可。步骤自定义处理类NettyClientHandler继承ChannelInboundHandlerAdapter,实现其方法,如下图: @Override public void channelInactive(ChannelHandlerContex
2022-02-13 15:52:22
5954
1
原创 k8s部署filebeat 采集应用程序日志
公司的服务都部署在k8s上,日志采集成为必须要做的事;filebeat采集日志有两种方案:1.filebeat跟应用程序一同部署,放在一个pod内,filebeat作为sidecar监控应用程序的日志;2.filebeat作为守护类pod采集每个节点上的应用程序日志;由于每个节点上的应用程序还不是特别多,所以一个filebeat可以搞定,故放弃在每个应用程序的pod内添加filebeat的方案。filebeat yamlapiVersion: apps/v1kind: DaemonSetm
2022-01-26 16:10:45
3187
原创 错误合集小计
javabigdecimal除法divide()方法一定要加上参数:int scale, int roundingMode;否则会在除不尽的时候报错;pagehelper自动分页问题supportMethodsArguments这个配置项如果设置成true,会在执行sql之前自动判断是否包含: pageNUM和pageSize参数,如果发现有这些参数,则自动执行分页动作。...
2022-01-22 15:34:31
103
原创 k8s 使用nacos集群(ktctl本地联调)
场景公司使用k8s环境,nacos替代之前的eureka,刚开始使用的是2.0.2版本,ktctl用于打通本地环境和研发的k8s环境,部署之后出现的很多问题。nacos版本问题1.nacos 2.0x开始使用grpc作为客户端和服务端通信的方式,但是ktctl目前不支持grpc,会出现:unexpected stock version 67并且使用springcloud alibaba版本中nacos也是1.2.1;所以,nacos需要回退到1.2.1;mysql8.0问题研发本地使用mys
2021-12-13 20:49:53
2953
原创 k8s service引用外部服务
需求所有服务使用k8s部署,但是,mysql和redis这些中间件仍然使用物理机部署,导致配置文件中出现 很多IP地址加端口,这种配置一旦躲起来,有点繁琐;解决方案使用k8s的service代理外部方式,把ip地址和端口隐藏在service中统一配置,这样,配置文件中只需要引用service名字即可。配置说明apiVersion: v1kind: Servicemetadata:managedFields:apiVersion: v1manager: tke-apiserverope
2021-12-07 10:02:53
2380
原创 shardingsphere 5.0 beat使用说明
简介shardingsphere的架构图我们主要使用它的分库分表功能,实现对业务层没有感知的分库分表功能实现。使用步骤引入依赖 <dependency> <groupId>org.apache.shardingsphere</groupId> <artifactId>shardingsphere-jdbc-core-spring-boot-starter</artifactId&g..
2021-11-08 09:08:41
522
2
原创 crontab编写
#crontab的工作是设置Linux的定时器;如果使用的话,需要做一些配置:1.编写shell脚本,用于执行定时任务;2.修改 /etc/crontab,添加定时任务:如下图:3.Linux每一分钟会刷新该文件,如果有异常,在/var/log/crontab 文件中会有日志。...
2021-06-21 19:59:12
932
原创 spirngmvc 前端请求体json传输单值,后端@RequestBody接收
前端通过请求体传输json对象,后端无法直接转换成相应的数据类型,这时候需要单独处理这种情况
2021-06-06 18:12:29
739
原创 Redis cluster 扩容
Redis cluster扩容的方法redis cluster的主从默认只有主支持读和写,从库默认只是 一个热备,不负责任何的读写请求,只是在主库挂掉之后,会被选举成为主库,然后承担主库的责任;所以,cluster的扩容是先创建一个主库,然后把槽再次平分,接着做数据迁移,当数据迁移完成后,再创建一个从库,把新主库的数据同步一份过去即可。具体操作如下:1.创建新主库,并且启动2.重新计算slot,slot重分...
2021-05-21 08:37:48
726
1
原创 spring boot 发布jar包 去除第三方依赖包
spring boot打包默认是jar模式,这样会把所有第三方依赖的包都包含进去,直接以java -jar启动,方便倒是很方面,但是jar包会很大,经常达到100多M,其中,90%都是第三方依赖jar包,上传的时候,会很慢。由于发布到生产的时候,使用网页上传,然后重启,jar包过大,会引起上传超时,故而页面没法知道到底是打包成功没有,为了解决该问题,需要在打包时把第三方jar包剔除,只留下class和配置文件。方法如下:pom.xml添加:<build> <!--x
2021-03-23 15:23:48
1183
原创 使用Google的guava RateLimiter进行限流(令牌)
springcloud中,微服务需要进行限流,以避免流量过大,引起服务宕机Google的guava工具包,包含RateLimiter,可以实现限流(令牌)第一步:导入guava包 <dependency> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> <version>30.1-jre<
2021-03-12 14:30:17
1066
原创 java 异常分析
异常类的意义异常类的意义在于通知调用方可能会抛出哪些异常,调用方需要处理;并且可以携带异常信息,让调用方很清楚的知道为什么抛出异常。异常分类分类如下图: Throwable所有异常类的父类,实现了大多数的方法;它的子类大多数都是根据名字可以知道是什么异常,没有具体的功能。Error继承至Throwable,所
2021-03-10 22:02:25
141
原创 javacollection
javacollectionCollection说明List功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入Collection说明java的collection大致有三种:list set map;各有特色。ListLis
2021-03-06 22:25:32
180
1
原创 nacos配置中心和springcloud结合使用
nacos使用原因Spring cloud自带的有配置中心config;但是它更多的支持git同步;在公网上搭建git,不太现实,所以,不使用;Nacos使用的mysql存储配置文件,集群模式也比较简单,所以,推荐使用。搭建步骤下载最新的nacos服务https://github.com/alibaba/nacos/releases 从这里下载最新的包;修改配置1.解压缩之后,修改conf目录下的application.properties;把数据库相关的配置打开:If use MySQL
2021-03-06 18:12:37
1256
原创 内部类理解
分类成员内部类Class Outer{Class Inner{Private String name;}}方法内部类Class Outer{Public void innerTest(){Class Inner{Private String name;}}}匿名内部类Class Outer{Public void test(){new Thread(new Runnable() {@Overridepublic void run() {}}).start();
2021-03-03 11:51:04
93
原创 zuul加载流程
zuul加载流程ZuulServerAutoConfiguration会在项目启动时加载,它会默认加载ZuulServlet和ZuulController;有请求进入时,会调用ZuulController. handleRequest();这个方法负责处理请求,方法结束时,会执行unset(),目的是清理threadlocal的请求数据;handleRequest ()执行时,会调用父类(ServletWrappingController)的handleRequestInternal();hand
2021-02-19 18:04:22
177
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人