- 博客(124)
- 收藏
- 关注
原创 通过对比3PL和4PL,来了解什么是4PL
第四方物流是中立的,它将管理整个物流过程,而不管其中具体使用了什么运输代理或仓库。第四方物流甚至可以管理客户目前正在使用的第三方物流公司。许多第四方物流已经解决了众多公司之间对电子接口的巨大需求。......
2022-08-13 16:11:48 3299
转载 雪花算法(snowflake) :分布式环境,生成全局唯一的订单号
snowflake方案snowflake是Twitter开源的分布式ID生成算法,结果是一个long型的ID。这种方案大致来说是一种以划分命名空间(UUID也算,由于比较常见,所以单独分析)来生成ID的一种算法,这种方案把64-bit分别划分成多段,分开来标示机器、时间等。其核心思想是:使用41bit作为毫秒数,10bit作为机器的ID(5个bit是数据中心,5个bit的机器ID),12bit作为毫秒内的流水号,最后还有一个符号位,永远是0。比如在snowflake中的64-bit分别表示如
2020-12-05 15:03:39 1076
原创 maven常用命令介绍
一、关于mvn各个阶段的工作mvn clean: 清除各个模块target目录及里面的内容 mvn validate: mvn compile: 静态编译,根据xx.java生成xx.class文件 mvn test: 单元测试 mvn package: 打包,生成各个模块下面的target目录及里面的内容 mvn verify: mvn install: 把打好的包放入本地仓库(~/.m2/repository) mvn site: mvn deploy: 部署,把包发布到远程仓库二
2020-11-08 18:32:24 157
原创 mvn -U的用法
一、 mvn -U 说明-U,--update-snapshots Forces a check for missing releasesand updated snapshots on remote repositories意思是:强制刷新本地仓库不存在release版和所有的snapshots版本。对于release版本,本地已经存在,则不会重复下载 对于snapshots版本,不管本地是否存在,都会强制刷新,但是刷新并不意味着把jar重新下载一遍。 只下载几个比较小的文件,通过这几个
2020-11-08 18:29:05 25799
原创 mac idea maven更新不下来包-终极解决方案
1. 现象:接口方升级了个jar包的版本,提供了新的pom配置,项目中更新pom配置后,java类中import 包名的地方,一直标红,显示未引入。但是检查maven本地库发现,新版本的jar包,已经更新到本地库了。并且在测试环境中,编译,构建,启动都没问题,就是本地环境有问题。2.解决:查阅资料,试了各种方法都没奏效。偶尔发现下面这个命令,试了下,发现可以。截图如下:3.命令介绍:mvn -U idea:idea 将继续下载未下载完整的依赖....
2020-11-08 18:16:35 3326 3
原创 elasticsearch scroll查询原理
ES的搜索是分2个阶段进行的,即Query阶段和Fetch阶段。 Query阶段比较轻量级,通过查询倒排索引,获取满足查询结果的文档ID列表。 而Fetch阶段比较重,需要将每个shard的结果取回,在协调结点进行全局排序。 通过From+size这种方式分批获取数据的时候,随着from加大,需要全局排序并丢弃的结果数量随之上升,性能越来越差。而Scroll查询,先做轻量级的Query阶段以后,免去了繁重的全局排序过程。 它只是将查询结果集,也就是doc id列表保留在一个上下文里,之后每次分...
2020-07-20 18:21:36 1430
转载 jsonp跨域原理解析
背景:由于浏览器同源策略的限制,非同源下的请求,都会产生跨域问题,jsonp即是为了解决这个问题出现的一种简便解决方案。同源策略即:同一协议,同一域名,同一端口号。当其中一个不满足时,我们的请求即会发生跨域问题。举个简单的例子:http://www.abc.com:3000到https://www.abc.com:3000的请求会出现跨域(域名、端口相同但协议不同)http://www.abc.com:3000到http://www.abc.com:3001的请求会出现跨域(域名、协议相同
2020-05-25 21:20:43 253
原创 IntelliJ IDEA For Mac 快捷键汇总
快速查找快捷键 中文描述 cmd+O 查找类 cmd+shift+O 查找文件 cmd+F12 查找类中方法 cmd+option+O 查找符号 cmd+shift+A 查找动作 cmd+F 文件内查找 cmd+shift+F 全局查找 cmd+R 文件内替换 cmd+shift+R 全局替换 double shift 查找任何东西 ⌘G 查找模式下,向下查找 ⌘⇧G 查找.
2020-05-12 10:14:55 262
原创 常用在线工具汇总
json解析: https://www.json.cn/在线做图: https://processon.com/在线进制转换: https://tool.oschina.net/hexconvert/工具大全: https://tool.oschina.net/#欢迎关注公众号:“架构一线”,定期分享一些实战心得,互联网前沿技术等....
2020-05-11 19:13:03 366
原创 部分机器CPU使用率99% 问题分析
背景:收到cpu使用率报警,应用中多台机器cpu使用率高达99%左右。初步处理:第一时间重启一台机器,发现使用率恢复正常。陆续重启其它机器,保留一台用于观察分析问题根源。分析:初步观察这台机器的内存监控,网络监控等都基本正常。并且观察近几天的cpu使用率情况,基本都正常,就上截图中时间,突然升高。 通过堡垒机,连到该机器,top命令,发现确实java进程cpu使用率高达90%多。 top -H -p #pid,进一步观察进程中线程,cpu使用率情况;发现有多个线程,c..
2020-05-09 16:02:04 2907
原创 线上事故回滚失败-JspServlet工作目录
一、背景:上线两个应用,中心,portal端;portal端依赖中心。portal应用用的是jsp做前端页面。上线后;用户反馈新上功能有问题,为减小影响,立即回滚。本以为线上会恢复正常,没想到用户反馈有页面打开失败。二、回滚导致新问题原因分析:事态紧急,各种分析日志,环境。从tomcat自带的日志文件localhost.log中发现,有jspServletInit异常...
2020-04-23 12:19:14 400
转载 JVM 出现 fullGC 很频繁,怎么去线上排查问题
https://blog.csdn.net/wilsonpeng3/article/details/70064336
2020-04-17 16:03:38 1153
原创 ElasticSearch 更新后延迟解决方法
在index后有一个refresh_interval默认1秒,在这个时间间隔内search是不可见的。解决办法有两种:1,通过ui层解决。比如更新成功后,弹出提示框;2,设置刷新策略,有以下三种(es版本5.4.3)。public static enum RefreshPolicy implements Writeable { NONE("false"), // 默认;异步刷新...
2020-04-17 15:20:26 3563
转载 ElasticSearch底层原理浅析
基本概念索引(Index)ES将数据存储于一个或多个索引中,索引是具有类似特性的文档的集合。类比传统的关系型数据库领域来说,索引相当于SQL中的一个数据库,或者一个数据存储方案(schema)。索引由其名称(必须为全小写字符)进行标识,并通过引用此名称完成文档的创建、搜索、更新及删除操作。一个ES集群中可以按需创建任意数目的索引。类型(Type)类型是索引内部的逻辑分区(categ...
2020-04-17 14:45:51 359
原创 单线程的 Redis,不是快吗?为什么需要连接池?
先说一下,Redis 为什么是单线程的?因为 CPU 不是 Redis 的瓶颈。Redis 的瓶颈最有可能是机器内存或者网络带宽。(以上主要来自官方 FAQ)既然单线程容易实现,而且 CPU 不会成为瓶颈,那就顺理成章地采用单线程的方案了。关于 redis 的性能,官方网站也有,普通笔记本轻松处理每秒几十万的请求,为什么使用连接池?Redis 是单进程单线程的,它利用队列技术将并发访问...
2020-01-08 16:28:12 2474
转载 Redis为什么设计成单线程
今天下午,烟哥吃饱了撑着没事干,上班时间到处工(zhuang)作(bi)!只见同事小刘的桌上摆了一本Redis相关的书籍,内心嘿嘿一笑:“终于,又有机会勾搭小刘了!”于是有了如下对话"嗯,不要方,跟着我思路来想!"烟哥道。"假设,此刻有任务A和任务B,现在有如下两种执行方式"方式一:两个线程,一个线程执行A,另一个线程执行B方式二:一个线程,先执行A,执行完以后继续执行B"请问...
2020-01-08 16:18:37 227
原创 Java代码配置的表达式解析 之 SpEL表达式
背景: 有些场景下,可能需要把一些java代码的表达式,做成配置化的形式,存储到db中;使用时,从db读取,这时候就需要解析java代码表达式。下面简单介绍通过SpEL 表达式 进行解析。实际使用:/** * value与配置的表达式匹配 * @param value 值 * @param expressionDefinition 表达式 ...
2019-12-27 15:37:49 1691
转载 补码原理——负数为什么要用补码表示
文首 我们都知道负数在计算机中是以补码(忘了补码定义的戳这里)表示的,那为什么呢?本文尝试了解补码的原理,而要想理解它,首先得理解算术中“模”的概念。所以首先看一下什么是模,然后通过一个小例子来理解补码。1 模(Modulo)1.1 什么是模数In mathematics, modular arithmetic is a system of arithmetic for intege...
2019-12-26 14:16:06 272
转载 ZooKeeper学习第八期——ZooKeeper伸缩性
一、ZooKeeper中Observer1.1 ZooKeeper角色经过前面的介绍,我想大家都已经知道了在ZooKeeper集群当中有两种角色Leader和Follower。Leader可以接受client请求,也接收其他Server转发的写请求,负责更新系统状态。 Follower也可以接收client请求,如果是写请求将转发给Leader来更新系统状态,读请求则由Follower的内...
2019-12-24 17:11:30 195
转载 ZooKeeper学习第七期--ZooKeeper一致性原理
一、ZooKeeper 的实现1.1 ZooKeeper处理单点故障我们知道可以通过ZooKeeper对分布式系统进行Master选举,来解决分布式系统的单点故障,如图所示。图 1.1 ZooKeeper解决单点故障那么我们继续分析一下,ZooKeeper通过Master选举来帮助分布式系统解决单点故障,保证该系统中每时每刻只有一个Master为分布式系统提供服务。也就是说分布...
2019-12-24 17:09:59 250
转载 ZooKeeper学习第六期---ZooKeeper机制架构
一、ZooKeeper权限管理机制 1.1 权限管理ACL(Access Control List) ZooKeeper 的权限管理亦即ACL 控制功能,使用ACL来对Znode进行访问控制。ACL的实现和Unix文件访问许可非常相似:它使用许可位来对一个节点的不同操作进行允许或禁止的权限控制。但是和标准的Unix许可不同的是,Zookeeper对于用户类别的区分,不止局限于所有者(own...
2019-12-24 17:06:39 171
转载 ZooKeeper学习第五期--ZooKeeper管理分布式环境中的数据
引言本节本来是要介绍ZooKeeper的实现原理,但是ZooKeeper的原理比较复杂,它涉及到了paxos算法、Zab协议、通信协议等相关知识,理解起来比较抽象所以还需要借助一些应用场景,来帮我们理解。由于内容比较多,一口气吃不成胖子,得慢慢来一步一个脚印,因此我对后期ZooKeeper的学习规划如下:第一阶段:|---理解ZooKeeper的应用|---ZooKeepe...
2019-12-24 17:03:34 193
转载 ZooKeeper学习第四期---构建ZooKeeper应用
一、配置服务配置服务是分布式应用所需要的基本服务之一,它使集群中的机器可以共享配置信息中那些公共的部分。简单地说,ZooKeeper可以作为一个具有高可用性的配置存储器,允许分布式应用的参与者检索和更新配置文件。使用ZooKeeper中的观察机制,可以建立一个活跃的配置服务,使那些感兴趣的客户端能够获得配置信息修改的通知。下面来编写一个这样的服务。我们通过两个假设来简化所需实现的服务(稍加...
2019-12-24 16:50:26 174
转载 ZooKeeper学习第三期---Zookeeper命令操作
一、Zookeeper的四字命令Zookeeper支持某些特定的四字命令字母与其的交互。他们大多数是查询命令,用来获取Zookeeper服务的当前状态及相关信息。用户在客户端可以通过telnet或nc向Zookeeper提交相应的命令。Zookeeper常用的四字命令见下图所示。上图,是Zookeeper四字命令的一个简单用例。[root@hadoop ~]# echo ru...
2019-12-24 16:46:34 187
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人