自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(71)
  • 问答 (1)
  • 收藏
  • 关注

原创 Zookeeper Unable to connect to zookeeper server within timeout: 15000

如果不是上面两种情况,则可能跟我一样在Spring初始化过程中去连接了Zookeeper ,由于应用启动时间超过15000,把超时时间加大即可。一般情况都是防火墙没关,或者Zookeeper 没启动。

2023-07-05 23:45:00 781

原创 docker安装错误Error starting daemon: error initializing graphdriver

关键错误信息devmapper: Error while creating filesystem xfs on device docker-253:1-1179729-base: exit status 1由错误信息可看出是创建过程出错了。安装xfsprogs即可

2022-12-01 15:07:12 962 1

原创 Nginx高可用 - Keepalived安装部署

virtual_router_id:虚拟路由标志。同组的virtual_router_id应该保持一致。weight -20:监测失败,则相应的vrrp_instance的优先级会减少20个点。router_id 标志本节点的字符串,通常为ip地址,故障发生时邮件会通知到。notification_email_from 通知邮件从哪个地址发出。smtp_connect_timeout 连接smtp服务器的超时时间。priority:设置本节点的优先级,优先级高的为MASTER。出现指定VIP则成功。...

2022-08-29 16:35:10 888

原创 Nacos集群通过Nginx反向代理负载均衡

增加Nacos upstream 集群IP信息。增加Nginx匹配规则。

2022-08-11 10:33:45 252

原创 Nacos集群常见问题

大概率是虚拟机双网卡,一个桥接一个nat, 指定指定ip或者网卡即可。可能是虚拟机内存不够, 2.x的Nacos默认JVM内存为2g。​ a.增加虚拟机内存。​ b.修改JVM参数。

2022-08-11 10:17:57 773

原创 Linux/MacOS 快速搭建部署Elasticsearch

下载Elasticsearchcurl -O https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.16.2-linux-x86_64.tar.gz解压tar -zxvf elasticsearch-7.16.2-linux-x86_64.tar.gz 修改配置让外部能访问# config目录下执行vim elasticsearch.yml # 加入下方配置 (默认只能本地访问,加入下方配置外部即可访问)

2022-01-12 19:23:17 801 2

原创 ES错误:the default discovery settings are unsuitable for production use; at least one of [discovery.se

错误信息:the default discovery settings are unsuitable for production use; at least one of [discovery.seed_hosts, discovery.seed_providers, cluster.initial_master_nodes] must be configured# 修改ElasticSearch配置vim config/elasticsearch.yml# 追加内容 "node-1"是节点名称

2022-01-12 17:55:28 1532

原创 ES错误:max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

错误信息: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]# 在root用户下追加配置vim /etc/sysctl.conf# 配置内容vm.max_map_count=262144# 执行 /sbin/sysctl -p 使配置立即生效/sbin/sysctl -p ...

2022-01-12 17:53:50 1054

原创 ES错误:max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535]

错误信息:max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535]# 在root用户下追加配置vim /etc/security/limits.conf # 配置内容 *表示所有用户生效* soft nofile 65536* hard nofile 65536# 重新登录即可生效# 可使用命令查看是否生效ulimit -H -n...

2022-01-12 17:53:10 6324 4

原创 ES错误:外部无法访问ElasticSearch

# config目录下执行vim elasticsearch.yml # 加入下方配置 (默认只能本地访问,加入下方配置外部即可访问)network.host: 0.0.0.0

2022-01-12 17:51:33 1253 1

原创 ES错误:could not find java in bundled JDK at /root/data/elasticsearch-7.16.2/jdk/bin/java

错误信息:could not find java in bundled JDK at /root/data/elasticsearch-7.16.2/jdk/bin/java由于ES下载在root用户目录下, 其他用户不能访问将ES移动到当前用户能访问到的目录即可。或者ES目录是root用户的, 当前用户没有权限访问。...

2022-01-12 17:20:41 3065 1

原创 ES错误:can not run elasticsearch as root

错误信息:can not run elasticsearch as rootES不能使用root用户启动, 切换普通用户即可启动。

2022-01-12 17:16:36 953 1

原创 ShardingSphere-JDBC分库分表实操 - 快速上手

ShardingSphere-JDBC通常用于数据分片。定位为轻量级 Java 框架,在 Java 的 JDBC 层提供的额外服务。 它使用客户端直连数据库,以 jar 包形式提供服务,无需额外部署和依赖,可理解为增强版的 JDBC 驱动,完全兼容 JDBC 和各种 ORM 框架。- 适用于任何基于 JDBC 的 ORM 框架,如:JPA, Hibernate, Mybatis, Spring JDBC Template 或直接使用 JDBC。- 支持任何第三方的数据库连接池,如:DBCP, C3P0

2022-01-06 16:34:39 703

原创 Sharding JDBC 错误 : Parameter index out of range (1 > number of parameters, which is 0).

检查配置中的表名和和数据库表名是否一致t_order改成tb_order即可

2022-01-05 10:36:49 683

原创 Sharding JDBC 错误 : Could not resolve placeholder ‘user_id % 2‘ in value “ds_${user_id % 2}“

使用"ds_$ {user_id % 2}"方式和Spring Boot 配置文件冲突了, 改成"ds_$->{user_id % 2}"即可

2022-01-05 10:29:42 1016

原创 Sharding JDBC 错误 : Inline sharding algorithm expression cannot be null.

分片算法name下划线(_)改成横杠(-)即可

2022-01-05 10:23:57 1395

原创 Kubernetes集群常用命令

介绍了Namespace、Pod、Label、Deployment、Service资源的基本操作,有了这些操作,就可以在Kubernetes集群中实现一个服务的简单部署和访问了。

2021-12-28 19:47:36 901

原创 K8s集群搭建教程 - 手把手搭建已避免各种坑

K8s集群搭建介绍K8s集群搭建过程中坑非常多,毫不夸张的说,如果自己踩坑搭建耗时几天完全正常,这篇搭建集群教程是自己亲自搭建总结的,已经避免我遇到的所有坑。本篇将使用kubeadm搭建一个简单的一主多从(一个控制节点对应两个工作节点)的简单K8s集群。步骤1.准备集群服务器主机名IP系统版本角色组件master192.168.6.128CentOS Linux release 7.9.2009 (Core)控制节点docker,kubectl,kubeadm

2021-12-10 17:25:54 6955 4

原创 IDEA远程Debug

启动应用添加JVM参数-Xdebug -Xrunjdwp:transport=dt_socket,suspend=n,server=y,address=#{debug_port}其中#{debug_port}替换成Debug监听端口例如:-Xdebug -Xrunjdwp:transport=dt_socket,suspend=n,server=y,address=9963IDEA添加Debug配置选择Edit Configurations…添加一个Remote JVM Debu

2021-12-03 11:34:59 219

原创 Docker配置了国内镜像仍然无法下载镜像

错误描述错误信息:Error response from daemon: Get https://registry-1.docker.io/v2/library/nginx/manifests/latest: Get https://auth.docker.io/token?scope=repository%3Alibrary%2Fnginx%3Apull&service=registry.docker.io: net/http: request canceled while waiting f

2021-12-02 14:19:56 8131 9

原创 Docker容器无法访问外网

现象最近在windows上装虚拟机, 开启了硬件辅助虚拟化, 于是windows上装的docker就没事使用了。也就是说windows下虚拟机和docker不能共存。于是我把windows下的容器迁移到linux中。容器迁移完成后发现容器不能访问外网域名, 一开始以为是容器没有网络, 但是测试发现 ping baidu.com不通, 但是ping 百度的ip是通的。 于是断定是dns解析出问题了。解决方案# 在docker配置文件中加上 "dns":["8.8.8.8","114.114.114.

2021-12-02 01:45:00 499

原创 Job for docker.service failed because the control process exited with error code. See “systemctl sta

Job for docker.service failed because the control process exited with error code. See “systemctl status docker.service” and “journalctl -xe” for details.docker启动出现该错误可以执行debug命令查看错误信息sudo dockerd --debu输出如下:unable to configure the Docker daemon with.

2021-12-01 14:37:16 186

原创 解决首次安装Centos 7无法使用ssh连接

原因默认centos7没有启动 openssh-server 或者没有安装 openssh-server。解决首先检查是否已经安装yum list installed | grep openssh-server此输出表示已正常安装启动 openssh-server在启动之前首先修改配置文件 vim /etc/ssh/sshd_config默认Prot和ListenAddress是注释的,取消注释保存执行启动命令sudo service sshd start再去使用

2021-11-29 14:55:56 3314

原创 使用Docker Compose启动Docker容器

前提需要在服务器中已经安装了Docker Compose。另外关于如何创建镜像可以看这篇文章:使用Dockerfile构建Spring Boot Jar包镜像创建docker-compose.yml# 指定本 yml 依从的 compose 哪个版本制定的version: "3"# 服务services: # 服务名 crawler-price: # 镜像 image: registry.cn-shenzhen.aliyuncs.com/mallkj/crawler-p

2021-10-27 23:45:00 1057

原创 使用Dockerfile构建Spring Boot Jar包镜像

在项目模块目录下新建Dockerfile文件# 基于jdk8制作镜像FROM openjdk:8-jre# 维护者信息MAINTAINER fred "[email protected]"# 容器启动时会执行 相当于执行/usr/local/openjdk-8/bin/java -jar /usr/share/crawler-price/crawler-price.jarENTRYPOINT ["/usr/local/openjdk-8/bin/java", "-jar","/usr/share

2021-10-26 11:09:12 237

原创 @Async的使用、应用场景

@Async的使用、应用场景@Async的作用应用场景@Async的使用结论疑问解答@Async的作用正常方法被调用时是同步执行,而@Async标识的方法调用时是异步执行。应用场景通常用于耗时较长或者不需要立即得到执行结果的逻辑,说白了就是异步执行例如:发送邮件导出数据同步商品@Async的使用这里就同步商品为例,简单说下商品同步的业务便于理解假设现在有个SaaS化的商城有个商品总库,总库新增了商品,每个企业的商城可以自主同步总库所新增的商品,这个商品同步过程就可以使用@Async

2021-09-01 20:24:53 2683

原创 Java记录接口调用记录、请求参数、响应结果、执行时长

Java记录接口调用记录、请求参数、响应结果、执行时长简介实现思路代码实现简介在Web应用当中记录接口调用记录、请求参数、响应结果、执行时长是再常见不过的事情了,记录的方式有很多。最近阅读之前的历史代码发现以前一些接口的统计时长、记录调用记录、请求参数都是合代码逻辑并存,严重影响了代码可读性。而记录接口调用记录、请求参数、响应结果、执行时长这些操作完全可以抽象出来,用AOP横向拦截去处理,实现解耦、提高代码可读可维护性。这篇文章将介绍如何实现。实现思路代码实现废话不多说,直接上代码。定义@Ar

2021-08-30 20:10:20 7608 2

原创 电商项目 - 分布式锁实现 - 声明式

电商项目 - 分布式锁实现 - 声明式前言实现思路代码实现前言关于分布式锁的相关介绍,这边文章就不多阐述了.可以看上篇文章《电商项目 - 分布式锁实现 - 编程式》原理基本大同小异。这边文章主要是介绍使用注解+AOP+Redisson实现分布式锁声明式实现思路思路: 使用环绕通知拦截方法,在执行前加锁,执行后释放锁代码实现被@Lock注解标识的方法表示加锁@Retention(RetentionPolicy.RUNTIME)@Target({ElementType.METHOD})@D

2021-08-26 09:38:53 339

原创 通过AOP+Java注解+EL表达式获取方法参数的值

Java注解通过EL表达式获取方法参数值使用场景代码实现使用场景在使用AOP做切面时,每个方法的参数都不一致,有时候需要取某个参数值,由于AOP增强逻辑一般都是抽象通用封装的,不能指定写死取某个值,这时候可以使用注解+EL表达式来实现。代码实现以实现声明式分布式锁为例子当方法需要加锁时,加上该注解。@Retention(RetentionPolicy.RUNTIME)@Target({ElementType.METHOD})@Documentedpublic @interface Lock

2021-08-18 11:45:48 4224

原创 电商项目 - 分布式锁实现 - 编程式

分布式锁是什么?互联网飞速发展,系统架构不断升级,从单体应用到集群。在单体应用当中,synchronized完全够用,但是集群下synchronized就无法起到作用了。这时分布式锁就出现了,分布式锁的本质和synchronized一致,都是为了多线程下一部分代码只能被一个线程执行。分布式锁市面上现在也有多种现有框架,实现方式有很多,实现原理大同小异。本篇文章将使用redis来实现分布式锁。分布式锁实现原理简单来说:A线程加锁就是往redis中存入一个key,执行完删除keyB线程尝试获取锁re

2021-05-17 22:24:14 531 2

原创 Idea启动Springboot 整合 Jsp 项目访问 Jsp 404

增加启动项配置:%MODULE_WORKING_DIR%重启项目即可正常访问jsp页面

2021-04-02 20:53:11 149

原创 Push failed Unable to access ‘https://github.com/***/****.git/‘: LibreSSL SSL_conn

git config --global http.sslBackend "openssl"

2021-03-14 22:58:06 1395

原创 面试官:请用三种方式实现多线程顺序输出“ABC“

方式一:Wait+Notifypublic class PollOutputWaitNotify { public static void main(String[] args) { WaitNotify waitNotify = new WaitNotify(1, 6); new Thread(() -> { waitNotify.print("A", 1, 2); }).start(); new

2021-03-07 23:31:56 473 1

原创 查找算法 - 斐波那契查找(黄金分割法)

简介斐波那契搜索(Fibonacci search) ,又称斐波那契查找,是区间中单峰函数的搜索技术。斐波那契搜索就是在二分查找的基础上根据斐波那契数列进行分割的。在斐波那契数列找一个等于略大于查找表中元素个数的数F[n],将原查找表扩展为长度为F[n] (如果要补充元素,则补充重复最后一个元素,直到满足F[n]个元素),完成后进行斐波那契分割,即F[n]个元素分割为前半部分F[n-1]个元素,后半部分F[n-2]个元素,找出要查找的元素在那一部分并递归,直到找到。时间复杂度O(log2n)思

2021-01-16 11:26:20 596

原创 查找算法 - 插值查找

简介插值查找,有序表的一种查找方式。插值查找是根据查找关键字与查找表中最大最小记录关键字比较后的查找方法。插值查找基于二分查找,将查找点的选择改进为自适应选择,提高查找效率。时间复杂度O(loglogN)思路分析插值查找算法类似于二分查找,不同的是插值查找每次从自适应mid处开始查找。将二分查找中的求mid 索引的公式优化改进如图low 表示左边索引lefthigh表示右边索引rightkey 表示 findVal其原理是根据公式巧妙的算出比例值,恰好数组是有序的,在关键字分布均匀

2021-01-09 15:03:11 847

原创 为什么重写equals同时要重写hashCode?

重写equals不一定要重写hashCode,得看情况。如果在没使用容器时其实是没必要的。如果使用了HashMap等容器,并且使用了自定义对象作为Key是一定要重写的。通过源码我们知道,只要hash码不一样的话就可以直接插入到数组中。然而正因为我们没重写hashCode方法,所以调用的是Object的hashCode方法。而Object的hashCode是使用对象在堆中的地址通过算法得出一个int类型的值,既然如此,那刚刚创建的两个对象的int类型的值肯定是不同的,所以两个Order都可以正常插入到数组中

2021-01-06 23:40:49 3261 17

原创 查找算法 - 二分查找

二分查找也称折半查找(Binary Search),它是一种效率较高的查找方法。但是,折半查找要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列。 首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将表分成前、后两个子表,如果中间位置记录的关键字大于查找关键字,则进一步查找前一子表,否则进一步查找后一子表。重复以上过程,直到找到满足条件的记录,使查找成功,或直到子表不存在为止,此时查找不成功。二分查找要求数组必须有序,正因为有

2021-01-06 14:58:59 262 2

原创 设计模式之策略模式+简单工厂模式 - 项目实战

最近在开发的项目是个门户系统,其中有个需求是对接多个外部系统,当门户点击对应的系统做权限认证使得用户点击链接可以直接跳转至系统,不需要登录可以直接使用系统。既然是对接多个外部系统,那么意味着后期可能还会对接更多外部其他系统,既然如此使用策略模式+简单工厂再合适不过了。使用策略模式+简单工厂使其解耦,便于维护,后期可扩展。

2021-01-04 22:26:53 710 6

原创 排序算法 - 基数排序

基数排序是1887年赫尔曼·何乐礼发明的。基数排序(radix sort)属于“分配式排序”(distribution sort),又称“桶子法”(bucket sort)或bin sort,顾名思义,它是通过键值的各个位的值,将要排序的元素分配至某些“桶”中,达到排序的作用。基数排序法是属于稳定性的排序,在某些时候,基数排序法的效率高于其它的稳定性排序法。将所有待比较数值统一为同样的数位长度,数位较短的数前面补零。然后,从最低位开始,依次进行一次排序。这样从最低位排序一直到最高位排序完成以后, 数列就变

2020-12-30 13:46:58 269 2

原创 CI系列 - 使用Jenkins发布SpringBoot Jar包项目

1. 确保Jenkins已安装Publish Over SSH插件 用于把构建好的war包发送到目标远程服务器中、在远程服务器中执行命令。2. 使用Git需要安装Git插件,使用svn就要安装Subversion插件构建过程:1. 拉取最新代码2. 打包编译代码3. 将打包好的项目发送至目标远程服务器4. 执行命令启用最新打包好的应用文中只是简单介绍基本使用,Jenkins功能非常强大,提供超过1000个插件来支持构建、部署、自动化, 满足任何项目的需要。

2020-12-29 17:30:52 317

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除