- 博客(57)
- 资源 (11)
- 收藏
- 关注
原创 server is DOWNnow, detailed error message: Optional[Distro protocol is not initialized]
参考:https://blog.youkuaiyun.com/qq_38225558/article/details/120342534。docker布署集群模式下,节点可以看到,但注册的服务不显示,API调用也是正常的,就是不显示列表。查看只要服务列表的API返回503。
2023-02-27 15:24:14
1005
原创 com.alibaba.nacos.api.exception.NacosException: Client not connected, current status:STARTING
一般是由于springcloudalibaba的版本和nacos的版本不对应导致的,网上查下两者对应关系,更换其中一个版本。
2023-01-18 10:14:12
9582
1
原创 docker安装rabbitmq
下载地址:https://www.rabbitmq.com/community-plugins.html。选择 rabbitmq_delayed_message_exchange-3.9.0.ez。找到 rabbitmq_delayed_message_exchange。
2023-01-06 09:33:29
181
原创 docke安装nginx并挂在配置
启动并挂载配置目录docker run --name nginx -p 80:80 -d -v d:/opt/nginx/conf.d/:/etc/nginx/conf.d/ nginx在挂载目录d:/opt/nginx/conf.d/中创建配置文件default.confserver { listen 80; server_name localhost; #charset koi8-r; #access_log /var/log/nginx.
2022-02-25 11:06:26
1691
原创 redis实现API限流
思路自定义注解定义限流片段时间和最大请求个数拦截器拦截所有请求,如果发现使用了限流注解的API,查看redis里是否记录了该接口的请求次数,如果有,就判断没有超过自定义注解的最大阈值,达到阈值就拦截该请求,否则请求次数加1并放行使用到redis key自过过期方法,自增量方法springboot示例代码注解@Retention(RetentionPolicy.RUNTIME)@Target(ElementType.METHOD)public @interface Access.
2022-02-25 09:12:55
823
原创 jpa查询异常InvalidDataAccessApiUsageException
jpa查询出现InvalidDataAccessApiUsageException异常,经排查发现有两个Entity指向了同一张表
2021-11-12 16:51:27
1410
原创 软件设计师知识点总结
设计原则设计原则 | 一句话归纳 | 目的-------- | -----开闭原则 对扩展开放,对修改关闭 降低维护带来的新风险依赖倒置原则 高层不应该依赖低层,要面向接口编程 更利于代码结构的升级扩展单一职责原则 一个类只干一件事,实现类要单一 便于理解,提高代码的可读性接口隔离原则 一个接口只干一件事,接口要精简单一 功能解耦,高聚合、低耦合迪米特法则 不该知道的不要知道,一个类应该保持对其它对象最少的了解,降低耦合度 只和朋友交流,不和陌生人说话,减少代码臃肿里氏替换原则 不要破
2021-11-03 14:30:34
132
原创 linux笔记
文件操作创建文件touch test.txtLinux下没有文件后缀名区分文件类型之说,系统文件类型只有可执行文件和不可执行文件编辑文件打开文件 vim test.txt,这时可以移动光标不能编辑,退出键入q,输入字母i, 进入编辑状态编辑完成后,ESC退出编辑状态,键入::wq保存并退出、:q!强制退出,不会保存修改的内容查看文件内容vimvim test.txt主要是用于编辑文件,本身有查看功能,大文件不建议catcat test.txt将文件的文件输出到控制台,大文件不建议
2021-08-17 16:21:55
161
原创 RestTemplate异常Unexpected end of file from server
对方提供post接口,我来调用我的服务是springboot单体应用,使用调用工具是RestTemplate,本地和别人联调是好的,一发到线上就报异常,异常信息如下:2021-02-25 15:30:15,201 - [http-nio-8080-exec-4] ERROR c.o.o.o.exception.ExceptionHandle - 系统异常[bc0b373d-513c-4faa-9b27-f820e816dadd]====>{}org.springframework.web.cli
2021-02-26 12:08:03
4440
原创 vue+springboot实现大文件分片上传、断点续传
一、前言前一时间没事自己做了个个人网盘小项目,中间遇到大文件分片上传的问题,第一次解决还是比较坎坷,这里记录下我的实现原理及过程。效果图:二、思路VUE前端选择要上传的文件计算选择文件的md5信息调用文件创建接口将文件名、大小、md5等信息传给后台,用来校验文件是否已经上传,如果之前已经上传完成过,这里就停止了如果没上传将选择的文件按提前设定好大小分片得到分反的文件,循环依次调用 文件上传接口上传,片段文件上传成功后,接口会返回已经上传的大小根据已经传文件的大小来判断是否上传成
2021-02-05 14:30:17
3843
4
原创 springboot集成knife4j2.0.8实现自定义md文档及权限控制
一、原由最近在做一个小项目的开入API,文档是用vuepress写的静态md并发布。因为是项目刚起步,对接的接口也会经常改动,每次改动都要修改文档感觉太麻烦,就想到用knife4j来代替。但外部使用的接口和内部使用不一样,需要一些接入引导说明,比如API接入步骤、鉴权说明…等重新翻了knife4j的文档发现2.x版本自2.0.7之后可以使用自定义文档的功能,自定义文档正好也是我喜欢的Markdown文件,再加一个权限验证,目前是很好的解决了我的问题。效果:二、开始knife4j2.x版如果想实
2021-01-28 15:50:05
3431
原创 git基本操作及冲突解决
一、下载已有项目修改并提交克隆项目 git clone <git_url>所有改动过的文件添加 git add . 或者指定文件 git add <filename>提交到本地仓库 git commit -m '备注'推送到远程仓库 git push 或者 git push origin master二、本地已有项目提交到仓库git initgit remote add origin <git_url>git fetchgit branch mast
2020-12-28 14:03:55
203
原创 jenkins+docker+nexus一套完整的持续集成方案
一、思路假定我们现在有三个环境:dev、test、prod,项目以springboot为例,做到三个环境使用同一镜像,确保误差做到最小镜像tag号规则:年月日_git提交ID(8位)(20201202_1a1d18fd)优点:时间可以快速区别是哪天的镜像,git提交ID可以定位到源代码,若线上项目需要临时修复bug,可以根据git commit id切出新分支来开发、测试、上线。jenkins布署在dev环境的机器上,我dev的机器到test是做了免密登录的dev每次持续构建项目并打镜像起动
2020-12-26 12:41:31
1987
原创 私服nexus作为docker仓库用法
一、创建docker仓库操作步骤推送仓库docker login ip:9021 -u $username -p $passworddocker push ip:9021/$project/$module:tag二、清理下载nexus-cliwget https://s3.eu-west-2.amazonaws.com/nexus-cli/1.0.0-beta/linux/nexus-clichmod +x nexus-cli配置nexus-cli同级目录执行./nexus-c
2020-12-25 14:42:32
774
原创 docker快速搭建私服nexus
拉镜像docker pull sonatype/nexus3创建数据挂载mkdir /opt/nexus-data指定数据卷后启动,可能会报一些权限错误,导致启动不起来。可能会需要修改文件夹权限chmod 777 /opt/nexus-data启动容器docker run -d --name nexus3 -p 9020:8081 -p 9021:9021 -v /opt/nexus-data:/nexus-data sonatype/nexus3登录UI并修改密码登录地址:h
2020-12-24 09:15:54
210
原创 java+vue跨域每次请求获取不同session问题
描述vue在做登录的时候,明明已经把用户数据存入了httpsession中,但在后面的请求拦截中发现获取的session属性size为0断点发现登录用的session和拦截得到的session不是一个id,也就是说不是同一个session查资源得到解决办法java端import org.springframework.stereotype.Component;import javax.servlet.*;import javax.servlet.http.HttpServletRequest
2020-12-23 10:32:09
600
原创 Jenkins操作大全
一、安装这是我从网上down的一张图片,感觉说的很全,jenkins相关操作全都可以应付了!注意:对jdk版本有要求https://pkg.jenkins.io/redhat/sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat/jenkins.reposudo rpm --import https://pkg.jenkins.io/redhat/jenkins.io.keyyum instal
2020-12-21 16:13:06
285
原创 免费数字证书申请(https)
申请证书我申请证书的网站:https://freessl.cn/1.填写息要申请的域名,创建2.填写自己的邮箱,CSR生成的方式选择"浏览器生成",然后点击创建。创建后浏览器会自己下载一个文件,里面是你的私钥,这个可以先不用管,后面还会生成。3.创建之后页面会定位到DNS验证这里,将TXT记录和记录值解析到你自己的域名里,如下操作:4.解析好记录值后,然后再“点击验证”。这里需要等待域名解析时间,理论上是10分钟内,实际我测试下来阿里云只要1分钟不到吧。5.验证通过之后下载证书到本
2020-12-19 20:50:03
3525
1
原创 Mac命令行快速切换jdk版本
前言作为java开发你的是否已经在电脑装了多个版本的JDK呢?对于mac机器而言,有更方便的切换方式,只需要简单的配置profile文件,就可以实现终端命令切换JDK版本,非常方便!开始1.查询当前的java的安装版本cd /Library/Java/JavaVirtualMachinesls2.配置profile打开profilevim ~/.bash_profile配置切换变量export JAVA_11_HOME=/Library/Java/JavaVirtualMachi
2020-12-19 10:13:03
1229
2
原创 Vuepress简单搭建
安装vuepress,执行npm install -D vuepress新建文件夹:oc-openapi-docs进入oc-openapi-docs执行npm init,一路回车,完成后会生成package.json文件修改package.json文件,scripts加入"dev": "vuepress dev docs","build": "vuepress build docs"oc-openapi-docs中创建文件夹docs并进入进入docs创建.vuepress和README.
2020-12-16 08:55:21
206
原创 Docker快速安装mysql单机
拉取镜像docker pull mysql:5.7启动容器docker run -d --name mysql -v /opt/mysql-data/mysql:/opt/data/mysql5.7 -v /opt/mysql-data/mysql-conf:/opt/data/mysql5.7/1ysql-conf -e MYSQL_ROOT_PASSWORD=zzl123 -p 3306:3306 mysql:5.7参数注释--name mysql别名-v /op
2020-12-12 14:38:09
124
原创 docker快速安装redis单机
前言docker安装redis服务比较简单,一行语句就搞定了,我平时都是这样布单节点服务。容器启动docker run -d -p 6379:6379 -v /opt/redis-data:/data -d --name redis-server redis:3.2 --appendonly yes --requirepass "root"参数说明-p 6379:6379端口映射-v /opt/redis-data:/data挂载容器数据磁盘--name red
2020-12-11 20:40:56
96
原创 Docker部署前端项目(vue/react)
Dockerfile项目根目录创建DockerfileFROM nginxCOPY build/ /usr/share/nginx/html/COPY nginx.conf /etc/nginx/conf.d/default.confEXPOSE 80nginx.conf项目根目录创建nginx.conf,构建镜像的时候,会把这个配置替换为镜像里的nginx默认配置.这里可以自定义容器内部的nginx配置.server { listen 80;
2020-12-10 08:54:32
841
原创 优雅的使用JdbcTemplate
一、前言springboot项目中我个人喜欢用JPA,做表的保存或更新非常方便,对于简单的单表查询更是做到了面向对象的思想。但对于前端的列表展示查询,大多数据都是多表关联且还是动态条件,如果使用JPA到处理的话会有点吃力,且出问题不好排查,所以我用了JdbcTemplate替代了这个工作。至于我为什么不用mybaits、tk mybatis、mybatisplus等,是因为我不喜欢和xml打交道,且大多数据前端列表查询是不可复用的,用原生SQL直接上更有效率上的优势。二、用法查询列表数据@Ap
2020-12-09 10:04:19
513
原创 docker布署springcloud无法使用feign通信
方法一eureka服务端设置eureka: server: #关闭保护机制,默认true enable-self-preservation: false # 剔除失效服务间隔,默认60000 eviction-interval-timer-in-ms: 3000 client: healthcheck: enabled: true fetch-registry: false register-with-eureka: fal.
2020-12-08 08:59:18
643
原创 Docker搭建linux虚拟机
拉取镜像docker pull hub.c.163.com/public/centos:7.2-tools启动容器docker run -d -p 5000:22 -p 5001:80 --name centos-vm --privileged=true hub.c.163.com/public/centos:7.2-tools /usr/sbin/init进入容器内部docker exec -it centos-vm /bin/bash修改密码passwd root 上面的指令是修
2020-12-08 08:57:47
659
原创 Springboot集成graylog
graylog配置springboot配置依赖compile group: 'de.siegmar', name: 'logback-gelf', version: '2.0.0'logback.xml<configuration> <!-- 配置控制台的输出日志 --> <appender name="consoleLog" class="ch.qos.logback.core.ConsoleAppender"> <
2020-12-07 12:18:31
405
原创 xxl-job不兼容graylog解决方案
使用项目集成的有graylog且为upd传输日志,会出现不兼通的情况,现象为:执行一次定时任务后,之后就就不会有日志再推入graylog中。我的解决办法是将xxl-job-core源码中XxlJobExecutor类的线程中断oldJobThread.interrupt()改为停止oldJobThread.stop();,然后打成jar包引用,替换原来的依赖虽然方法是过时了,但问题是解决了,也不影响原功能。compile fileTree(include: ['*.jar'], dir: 'l
2020-12-05 10:50:30
309
1
原创 Springboot集成swagger和knife
前言knife4j是在swagger的基本上做做了一次封装,主要体现在ui表现,所有在使用前必须先搭建好swagger2,其实是swagger和knife都可以访问,至于哪个好用全看个人!swagger2依赖包compile group: 'io.springfox', name: 'springfox-swagger2', version: '2.9.2'compile group: 'io.springfox', name: 'springfox-swagger-ui', version:
2020-12-05 10:09:38
1250
原创 Springboot集成xxl-Job
一、前言xxl-job一个轻量级的分布的调度中间件,详情介绍自己到官网看:https://www.xuxueli.com/xxl-job/二、客户端(执行器)引入依赖compile group: 'com.xuxueli', name: 'xxl-job-core', version: '2.2.0'配置文件加入如下信息:xxl: job: accessToken: admin: addresses: 'http://127.0.0.1:8080/xxl-job
2020-12-04 13:09:07
629
原创 Springboot中redisTemplate乱码或json转换问题
问题1用RedisTemplate存入map值的时候,用rdm可视化打开,看到的是转码之后的数据,如图:存入的方法为:public boolean hmset(String key, Map<String, Object> map) { try { redisTemplate.opsForHash().putAll(key, map); return true; } catch (Exception e) { log.err
2020-12-03 20:17:21
904
原创 Springcloud之gateway配置及swagger集成
前言关于引入gateway的好处我网上找了下:性能:API高可用,负载均衡,容错机制。安全:权限身份认证、脱敏,流量清洗,后端签名(保证全链路可信调用),黑名单(非法调用的限制)。日志:日志记录(spainid,traceid)一旦涉及分布式,全链路跟踪必不可少。缓存:数据缓存。监控:记录请求响应数据,api耗时分析,性能监控。限流:流量控制,错峰流控,可以定义多种限流规则。灰度:线上灰度部署,可以减小风险。路由:动态路由规则。配置依赖compile('org.springfra
2020-12-03 20:16:12
2511
原创 linux(centos)快速安装docker
一、安装安装依赖包sudo yum install -y yum-utils device-mapper-persistent-data lvm2 设置阿里云镜像源sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 安装 Docker-CE重建 Yum 缓存。安装 Docker-CE ,请执行一下命令进行安装:sudo yum install
2020-12-02 09:59:57
151
原创 linux中docker安装mongo db
拉取镜像docker pull mongo不指定版本的情况下,拉取的是latest版本,如果后续要正式使用,建议指定版本。启动mongo镜像docker run -p 27017:27017 --name mongo-server -v /Users/leo/data/mongodb:/data/db -d mongo-p:端口映射–name:容器别名-v:文件挂载。冒号左边为本地文件夹路径,右边为容器内部路径进入容器内部查看mongodocker exec -it mongo-se
2020-12-02 09:58:13
150
原创 Gradle上传依赖到私服(nexus)
子模块配置buildscript { repositories { mavenLocal() maven { url "http://maven.aliyun.com/nexus/content/groups/public/" } maven { url "${nexusUrl}" credentials { username "${username}" password
2020-12-02 09:52:45
1089
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人