自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(79)
  • 收藏
  • 关注

原创 美团2024春招

2024年美团校招春招内推今天2.26开始啦!欢迎新同学踊跃报名~免筛选!有需要私聊,有问必答!#美团内推 #美团春招 #春招。内推码附上:ONYtOTG。

2024-02-26 17:45:46 274

原创 阿里面试多线程问题:三个线程交替打印1~99

三个线程交替打印1~99如 t1,t2,t3线程打印如下t1: 1t2: 2t3: 3t1: 4t2: …具体实现思路: 线程共享资源类,保证操作共享资源时加锁,每个线程执行一次打印之后唤醒下一个线程,并且保证结束打印后线程不能处于阻塞状态public class PrintHundred { public static void main(String[] args) { Resource resource = new Resource(); L

2021-04-01 00:05:09 467 1

原创 分库分表设计方案

一、为什么要分库分表?随着业务的不断发展,数据量不断增加,因此数据操作,如增删改查的开销也会越来越大,原来基于单库单表的设计已经不能满足存储需求,数据库随时面临爆库风险;再加上物理服务器的资源有限(CPU、磁盘、内存、IO 等)。最终数据库所能承载的数据量、数据处理能力都将遭遇瓶颈。二、如何解决?1、增加存储这只能暂时缓解,但也可能是一种性价比比较高的方案2、数据实现动静分离,定时备份到达终态数据,缓解存储压力例:热数据:3个月内的订单数据,查询实时性较高;(mysql中分库分表)冷数据A:

2021-03-29 19:23:53 1904

原创 logrotate日志切割

distribution项目一致往app.log中写入日志日积月累,形成很大的一个量,导致查看日志不方便现使用logrotate进行日志切割,每天切割压缩,保留60天操作步骤留作记录,参数详情不做解释,可网上查询ssh root@xxxxxxxxxxxxcd /etc/logrotate.drz 文件distribution/home/work/workdir/apps/distribution/logs/app.log {dailyrotate 60copytruncatecom

2020-12-14 19:21:03 510

原创 Docker镜像分析工具dive

今天推荐一个这样的开源工具,用于探索 Docker 镜像,各层内容以及发现缩小 Docker/OCI 镜像大小的方法。这个工具就是:dive。工具地址:https://github.com/wagoodman/dive,Star 数:22k+。这个工具可以清晰得看到镜像每一层都包含哪些内容,方便你分析是否有必要,如下图所示。...

2020-11-12 16:44:48 689

原创 Kubernetes 源码分析之 Kubelet

1. 概述kubelet运行机制分析在Kubernetes集群中,每个Node节点(又称Minion)上都会启动一个Kubelet服务进行。该进程用于处理Master节点下发到本节点的任务,管理Pod及Pod中的容器。每个Kubelet进程会在API Server上注册节点自身信息,定期向Master节点汇报节点资源的使用情况,并通过cAdvise监控容器和节点资源。1.1. 节点管理节点通过设置Kubelet的启动参数“–register-node”,来决定是否想API Server注册自己。如果该

2020-09-25 16:51:30 370

原创 Kubernetes 源码分析之 Apiserver

1. 概述本文以Kubernetes 1.9 进行分析。Kubernetes 集群中,API Server 扮演着交互入口的位置。API Server 不仅负责和 etcd 交互(其他组件不会直接操作 etcd,只有 API Server 这么做),并切对外提供统一的API调用入口, 所有的交互都是以 API Server 为核心的。API Server 提供了一下的功能:整个集群管理的 API 接口:所有对集群进行的查询和管理都要通过 API 来进行。集群内部的组件(如kubelet)也是通过Ap

2020-09-25 16:37:58 581

原创 Kubernetes 源码分析之 Kubectl

1. 概述本文以Kubernetes 1.9 进行分析。Kubernetes 是采用微服务以集群的方式运行,并为用户提供服务。而与外界交互则是通过Apiserver模块向外提供接口支持。kubectl用户与Kubernetes交互的命令行工具。用户使用kubectl工具调用Apiserver的接口来与Kubernetes服务进行交互。2. 结构分析Kubectl 依赖于cobra包构建命令行支持,该包是支持通用的命令行构建库。如下所示mds是kubectl中的命令集合,所有命令都会整理在里面

2020-09-25 16:31:28 445

原创 linux SSH隧道

一 什么是SSH隧道首 先看下面这张图,我们所面临的大部分情况都和它类似。我们的电脑在右上角,通过公司带有防火墙功能的路由器接入互联网(当然可能还有交换机什么的在中间连 接着你和路由器,但是在我们的问题中交换机并不起到什么关键性的作用)。左下脚的部分是一个网站的服务器,它是我们公司防火墙策略的一部分,也就是说公司 不希望我们访问这个服务器。在左上还有一台机器,它也是属于我们的。但是这台机器并不在我们公司里面,换句话说他不受到公司防火墙的限制。最后也是最重 要的一点是,我们能够在公司通过互联网直接访问这台机

2020-09-23 17:44:48 395 1

原创 Java序列化与反序列化

一、什么是序列化与反序列化?Java 序列化是指把 Java 对象转换为字节序列的过程;Java 反序列化是指把字节序列恢复为 Java 对象的过程;二、为什么要用序列化与反序列化?在 为什么要用序列化与反序列化 之前我们先了解一下对象序列化的两种用途:把对象的字节序列永久地保存到硬盘上,通常存放在一个文件中;在网络上传送对象的字节序列。我们可以想想如果没有序列化之前,又是怎样一种情景呢?举例:Web 服务器中的 Session 会话对象,当有10万用户并发访问,就有可能出现10万个 Se

2020-09-23 16:42:50 80

原创 百度2021校园招聘内推

内推链接https://talent.baidu.com/external/baidu/campus.html#/campus?source=NEITUI&recommendCode=i20pm2

2020-08-11 17:49:15 362

原创 Linux中2>/dev/null和>/dev/null 2>&1和2>&1>/dev/null 的区别

一.首先了解下1和2在Linux中代表什么在Linux系统中0 1 2是一个文件描述符 &符号可以理解为"取地址符"从上表看的出来,我们平时使用的echo "hello" > t.log 其实也可以写成echo "hello" 1> t.log二.关于2>&1的含义含义:将标准错误输出重定向到标准输出符号>&是一个整体,不可分开,分开后就不是上述含义了。比如有些人可能会这么想:2是标准错误输入,1是标准输出,>是重定向符号,那么

2020-08-10 17:48:48 454

原创 URL路径@PathVariable出现点号“.“时值遭截断问题

一:问题描述SpringMVC项目中通过下面的URL进行GET请求。当version有多个小数点的时候。如version为0.2.0。后台通过@PathVariable来获取version等于0.2。会丢失部分数据。URL:http://host_ip/consumer/appVersion/phone/android/download/{version}Controller:@RequestMapping(value="android/download/{version}",method=Re

2020-07-31 19:08:45 407

原创 一文读懂Raft分布式一致性算法

一致性问题可以算是分布式领域的一个圣殿级问题了,关于它的研究可以回溯到几十年前。拜占庭将军问题Leslie Lamport 在三十多年前发表的论文《拜占庭将军问题》(参考[1])。拜占庭位于如今的土耳其的伊斯坦布尔,是东罗马帝国的首都。由于当时拜占庭罗马帝国国土辽阔,为了防御目的,因此每个军队都分隔很远,将军与将军之间只能靠信差传消息。在战争的时候,拜占庭军队内所有将军必需达成 一致的共识,决定是否有赢的机会才去攻打敌人的阵营。但是,在军队内有可能存有叛徒和敌军的间谍,左右将军们的决定又扰乱整体军队的

2020-07-13 17:34:24 235

原创 java – JestClient在空闲一段时间后抛出SocketTimeoutException

我正在使用JEST在spring-boot应用程序中连接到elasticsearch.当应用程序空闲(不向elasticsearch发送任何请求)一段时间后,JestClient就会抛出SocketTImeoutException.第二次请求很快就相应.这是我之前的配置spring.elasticsearch.jest.uris=http://x.x.x.x:9200spring.elasticsearch.jest.read-timeout=10000加上以下配置后修复spring.elast

2020-06-29 12:17:18 1025

原创 CentOS6.4 配置Haproxy

Haproxy下载地址:http://pan.baidu.com/share/link?shareid=1787182295&uk=1829018343也可用wget http://haproxy.1wt.eu/download/1.4/src/haproxy-1.4.24.tar.gz[root@A local]# yum install -y gcc[root@A local]# tar zxvf haproxy-1.4.24.tar.gz[root@A local]# cd hapro

2020-06-28 14:41:47 170

原创 CentOS6.4 配置HAProxy+Keepalived

安装Keepalived1、下载安装依赖包yum install -y wget make gcc openssl-devel popt-devel2、下载、安装Keepalivedwget http://www.keepalived.org/software/keepalived-1.2.8.tar.gztar zxvf keepalived-1.2.8.tar.gzcd keepalived-1.2.8./configure --prefix=/usr/local/keepalived

2020-06-28 14:38:46 154

原创 nginx 相关命令 nginx -s reload/stop/quit

start nginx 或者在linux上面直接 nginxnginx -t # 验证配置文件;无法验证其它文件的情况nginx -s reload # 重新加载;可以重启其它文件启动的情况nginx -s stop # 快速停止nginx -s quit # 正常停止nginx -V # 查看版本nginx -c conf/web01.conf # 使用另一个配置文件...

2020-05-18 17:09:27 564

原创 PowerMock使用详解

1. PowerMock是什么?PowerMock是一个Java模拟框架,用于解决测试问题。举个例子,你在使用Junit进行单元测试时,并不想让测试数据进入数据库,怎么办?这个时候就可以使用PowerMock,拦截数据库操作,并模拟返回参数。2. PowerMock包引入<!-- PowerMock JUnit 4.4+ Module --><dependency>  <groupId>org.powermock</groupId>  <a

2020-05-08 18:30:39 600

原创 tar中的参数 cvf,xvf,cvzf,zxvf的区别

linux命令中有几个压缩包所用的命令一直都混淆,在这里做个记录同时也供大家区分tar cvf etcbak.tar etc/ 打包一个tartar xvf etcbak.tar 解开一个tartar cvzf etcbak.tar.gz etc/ 打包压缩一个 tartar zxvf etcbak.tar.gz 解压一个tar...

2020-04-24 15:43:33 818

原创 kubectl 常用命令总结

查看所有 pod 列表, -n 后跟 namespace, 查看指定的命名空间kubectl get podkubectl get pod -n kubekubectl get pod -o wide查看 RC 和 service 列表, -o wide 查看详细信息kubectl get rc,svckubectl get pod,svc -o widekubectl get p...

2020-04-23 10:23:30 238

原创 yum安装软件时,出现"No package XXX available"的解决办法

我的Linux版本6.8x64依次执行以下命令解决cd /homewget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpmrpm -ivh epel-release-6-8.noarch.rpmyum install XXX

2020-02-14 17:03:37 4391 1

原创 centos6.3安装docker

1.升级内核查看内核版本uname -r#升级rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.orgrpm -Uvh http://www.elrepo.org/elrepo-release-6-6.el6.elrepo.noarch.rpmyum --enablerepo=elrepo-kernel install ker...

2020-02-14 15:42:14 811

原创 打怪升级

搞学习知乎:www.zhihu.com大学资源网:http://www.dxzy163.com/简答题:http://www.jiandati.com/网易公开课:https://open.163.com/ted/网易云课堂:https://study.163.com/中国大学MOOC:www.icourse163.org网易云课堂:study.163.com哔哩哔哩弹幕网:www...

2020-02-11 17:42:59 951

原创 Harbor项目概览

Harbor项目概览容器应用的开发和运行离不开可靠的镜像管理。从安全和效率等方面考虑,在企业私有环境内部署的Registry服务是非常必要的。Harbor(https://github.com/vmware/harbor)是由VMware中国研发团队为企业用户设计的Registry Server开源项目,包括了权限管理(RBAC)、图形管理界面、LDAP/AD集成、审计、自我注册、HA等企业必需...

2020-01-23 16:46:46 653 1

原创 MySQL 与 PostgreSQL如何选择?

MySQL 与 PostgreSQL 比较,选哪个为了弄明白PostgreSQL和MySQL的差别,我搜索了关键字:MySQL vs PostgreSQL,并看了第一页的几个文章。以下是简单总结:MySQL与PostgreSQL的区别MySQL是应用开发者创建出来的DBMS;而PostgreSQL是由数据库开发者创建出来的DBMS 。换句话说,MySQL倾向于使用者的角度,回答的问题是 “...

2020-01-22 18:49:11 2038

原创 什么是webhook?

1.什么是webhook?  webhooks是一个api概念,是微服务api的使用范式之一,也被成为反向api,即:前端不主动发送请求,完全由后端推送。 举个常用例子,比如你的好友发了一条朋友圈,后端将这条消息推送给所有其他好友的客户端,就是 Webhooks 的典型场景。简单来说,WebHook就是一个接收HTTP POST(或GET,PUT,DELETE)的URL。一个实现了WebHoo...

2020-01-19 18:03:21 5912

原创 Java实现二叉树深度优先遍历和广度优先遍历

话不多说,上代码1.广度优先遍历/**public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val) { this.val = val; }}*/ public class S...

2019-12-17 00:15:55 293

原创 Spring Boot启动流程图

2019-12-04 22:56:03 181

原创 java实现快排和堆排序

快排的Java实现直接以第一个元素为分界元素,下面是直接Java代码实现 public class QuickSort { public static void main(String[] args) { int[] nums = {17, 8, 100, 120, 122, 6, 3, 9}; quickSort(nums);...

2019-11-19 19:18:31 275

原创 分布式锁redis和zookeeper实现区别

分布式锁redis和zookeeper实现区别一.分布式锁解决方案1.采用数据库 不建议 性能不好 jdbc2.基于Redis实现分布式锁(setnx)setnx也可以存入key,如果存入key成功返回1,如果存入的key已经存在了,返回0.3.基于Zookeeper实现分布式锁 Zookeeper是一个分布式协调工具,在分布式解决方案中。多个客户端(jvm),同时在zk上创建相同的一个...

2019-11-16 16:51:13 364

转载 Java:CAS(乐观锁)

三个线程交替打印1~99如 t1,t2,t3线程打印如下t1: 1t2: 2t3: 3t1: 4t2: …具体实现思路: 线程共享资源类,保证操作共享资源时加锁,每个线程执行一次打印之后唤醒下一个线程,并且保证结束打印后线程不能处于阻塞状态public class PrintHundred { public static void main(String[] args)...

2019-11-12 20:20:29 574

原创 支付宝转账的分布式死锁问题

死锁死锁的规范定义:集合中的每一个进程都在等待只能由本集合中的其他进程才能引发的事件,那么该组进程是死锁的。从广义上讲,这里的进程指的是一个执行单元。问题描述假设【账户A】给 【账户B】转账 500 元,在程序中的转账逻辑如下:开启事务【账户A】的余额减去 500 元【账户B】的余额增加 500 元提交事务在集群环境下,在 server1、server2 服务上都部署了支付模块...

2019-11-06 15:52:19 499

原创 redis分布式锁踩坑实践

Redis版本一: redis判断是否有值,没有加值导致问题:1、加锁不是个原子操作2、若加锁后宕机,系统死锁版本二: redis加锁原子性操作(setnx),锁加过期时间导致问题:1、若设置过期时间2s,程序执行3s,释放了别人的锁版本三: redis加锁上放一个随机值,然后判断随机值删除锁导致问题:1、删除是不是一个原子操作,也会出现删除别人的锁的情况版本四: redis删除锁通...

2019-11-05 15:29:14 506

原创 Redis的过期策略和内存淘汰机制

过期策略我们set key的时候,都可以给一个expire time,就是过期时间,指定这个key比如说只能存活1个小时,我们自己可以指定缓存到期就失效。如果假设你设置一个一批key只能存活1个小时,那么接下来1小时后,redis是怎么对这批key进行删除的?答案是:定期删除+惰性删除所谓定期删除,指的是redis默认是每隔100ms就随机抽取一些设置了过期时间的key,检查其是否过期,如...

2019-11-02 14:35:36 101 1

原创 java实现rabbitMQ延时队列

java实现rabbitMQ延时队列一、在队列上设置TTL1、exchange_delay_begin:缓冲队列exchange交换器,用于将消息转发至缓存消息队列 queue_delay_begin 。2、queue_delay_begin:缓冲消息队列,等待消息过期。3、exchange_delay_done:死信(dead-letter)队列exchange交换器,用于将队列 qu...

2019-10-31 10:02:41 636

原创 分布式缓存数据库一致性问题

缓存和数据库一致性问题,有很多解决方案,没有最完美的方案,只有适合自身业务的尽可能完美的方案。缓存由于其高并发和高性能的特征,已经在项目中被广泛应用。查询时一般先查询缓存,如果缓存命中的话,那么直接将数据返回。如果缓存中没有数据(如失效,或者根本没设置数据),那么,应用程序先从数据库中查询数据,如果不为空,则将数据放在缓存中。那么更新时,怎么处理缓存和数据库呢?先更新数据库后更新缓存?或...

2019-10-30 17:20:24 158

原创 jsoup 设置一个元素的HTML内容

问题你需要一个元素中的HTML内容方法可以使用Element中的HTML设置方法具体如下:Element div = doc.select("div").first(); // <div></div>div.html("<p>lorem ipsum</p>"); // <div><p>lorem ipsum</...

2019-10-30 10:19:33 679

原创 一文读懂倒排索引

倒排索引是目前搜索引擎公司对搜索引擎最常用的存储方式,也是搜索引擎的核心内容,在搜索引擎的实际应用中,有时需要按照关键字的某些值查找记录,所以是按照关键字建立索引,这个索引就被称为倒排索引。首先你要明确,索引这东西,一般是用于提高查询效率的。举个最简单的例子,已知有5个文本文件,需要我们去查某个单词位于哪个文本文件中,最直观的做法就是挨个加载每个文本文件中的单词到内存中,然后用for循环遍历一遍...

2019-10-28 17:09:49 158 1

原创 ES查询返回值详解

curl -XGET‘localhost:9200/books/_search?pretty&q=title:elasticsearch’Elasticsearch返回的响应如下所示{ "took":4, 请求花了多少时间 "time_out":false, 有没有超时 "_shards":{...

2019-10-28 16:37:32 9193 2

空空如也

空空如也

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

TA关注的人

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