自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 如何理解x&(-x)和x&(x-1)

最近看算法题,涉及到两个很经典的位运算:x&(-x):保留二进制下最后出现的1的位置,其余位置置0(即一个数中最大的2的n次幂的因数 x&(x-1):消除二进制下最后出现1的位置,其余保持不变具体分析如下:  我们可以从看待字符串的角度去思考这件事。  二进制下的数字都可以写成(A)1(B)的形式,其中A表示一串01字符串,1表示从右向左的出现的第一个数字1,B表示空(奇数)或者是连续的0(偶数),即:偶数:(A)1(00…0) 奇数:(A)1对于x&(.

2021-04-26 17:48:58 839

转载 浅析MySQL内存的使用说明(全局缓存+线程缓存)

首先我们来看一个公式,MySQL中内存分为全局内存和线程内存两大部分(其实并不全部,只是影响比较大的 部分):复制代码代码如下:per_thread_buffers=(read_buffer_size+read_rnd_buffer_size+sort_buffer_size+thread_stack+join_buffer_size+binlog_cache_size+tmp_table_size)*max_connectionsglobal_buffers=innodb_buffer_p

2020-07-28 12:07:31 413

转载 公钥基本结构(PKI)的概念

作者:[已重置]链接:https://zhuanlan.zhihu.com/p/24954346来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。术语公钥基本结构(PKI)用于描述管制或操纵证书与公钥及私钥的策略、标准和软件。实际上,PKI 是指由数字证书、证书颁发机构 (CA) 以及对电子交易所涉及各方的合法性进行检查和验证的其它注册机构组成的一套系统。...

2020-04-10 16:40:30 1618

转载 Java源码阅读------Reference

https://blog.csdn.net/sinat_36945592/article/details/87099185

2020-01-16 17:59:44 178

转载 解析TCP之滑动窗口(动画演示)

概述滑动窗口实现了TCP流控制。首先明确滑动窗口的范畴:TCP是双工的协议,会话的双方都可以同时接收和发送数据。TCP会话的双方都各自维护一个发送窗口和一个接收窗口。各自的接收窗口大小取决于应用、系统、硬件的限制(TCP传输速率不能大于应用的数据处理速率)。各自的发送窗口则要求取决于对端通告的接收窗口,要求相同。滑动窗口解决的是流量控制的的问题,就是如果接收端和发送端对数据包的处理速度不同,...

2020-01-10 15:29:34 272

原创 OOM killer机制讲解

一、Linux内核OOM killer机制Linux 内核有个机制叫OOM killer(Out Of Memory killer),该机制会监控那些占用内存过大,尤其是瞬间占用内存很快的进程,然后防止内存耗尽而自动把该进程杀掉。内核检测到系统内存不足、挑选并杀掉某个进程的过程可以参考内核源代码linux/mm/oom_kill.c,当系统内存不足的时候,out_of_memory()被触发,...

2019-12-27 10:35:33 1876

转载 mysql之my.cnf详解

#*** client options 相关选项 ***##以下选项会被MySQL客户端应用读取。注意只有MySQL附带的客户端应用程序保证可以读取这段内容。如果你想你自己的MySQL应用程序获取这些值。需要在MySQL客户端库初始化的时候指定这些选项。[client]port = 3309socket = /usr/local/mysql/tmp/mysql.sock[mysqld...

2019-12-26 10:04:19 171

转载 mysql组合索引建立顺序及key_len计算规则

mysql多个字段建立组合索引时候,字段顺序可以随意,但最好是遵循一定顺序的,如索引(a,b,c)与(b,a,c)肯定不一样的,顺序不一样索引的效果也不一样,所以要计算其先后顺序。如表mc_k12_wechat_user_info有如下字段1、计算组合索引建立的顺序1、常用的字段放在最前面现在要建立组合索引(phone_number,provice),phone_number肯定...

2019-11-06 11:16:49 1570

转载 MySQL中explain执行计划中额外信息字段(Extra)详解

SQL执行计划是经过优化器决策,产生的SQL在数据库内部执行的访问路径计划;由如下语法得到:explain select col1,col2 from t1..;desc select col1,col2 from t1..;12理解输出各个列的含义id:每个select子句的标识idselect_type:select语句的类型table:当前表名显示查询将访问的分区,...

2019-10-28 14:24:32 526

转载 MySQL explain中key_len的计算

key_len表示索引使用的字节数,根据这个值可以判断索引的使用情况,特别是在组合索引的时候,判断该索引有多少部分被使用到非常重要。在计算key_len时,下面是一些需要考虑的点: 索引字段的附加信息:可以分为变长和定长数据类型讨论,当索引字段为定长数据类型时,如char,int,datetime,需要有是否为空的标记,这个标记占用1个字节(对于not null的字段来说,则不需要这1字节...

2019-10-28 14:22:18 108

原创 使用canal同步mysql数据到es

需求:传统数据库搜索速度非常慢,需要依赖搜索引擎实现快速搜索。(使用canal实现无侵入数据异构)canal server:用于伪装mysql slave获取mysql binlog。canal adapter:提供多种中间件的导入,如kafka、rocketmq、hbase、elasticsearch,可直接配置使用。 注:es1.1.4...

2019-10-23 11:23:36 1776 1

转载 could not find java;set JAVA_HOME or ensure java报错

问题一:在安装logstash时出现如下报错:“could not find java; set JAVA_HOME or ensure java is in PATHchmod: cannot access ‘/etc/default/logstash’: No such file or directorywarning: %post(logstash-1:6.6.0-1.noarch)...

2019-10-18 17:19:28 946

转载 为什么协程切换的代价比线程切换低?

先说结论:协程切换比线程切换快主要有两点:(1)协程切换完全在用户空间进行,线程切换涉及特权模式切换,需要在内核空间完成;(2)协程切换相比线程切换做的事情更少。协程切换协程切换只涉及基本的CPU上下文切换,所谓的 CPU 上下文,就是一堆寄存器,里面保存了 CPU运行任务所需要的信息:从哪里开始运行(%rip:指令指针寄存器,标识 CPU 运行的下一条指令),栈顶的位置(%r...

2019-10-17 11:41:00 1573

转载 蓝绿发布

蓝绿部署是最常见的一种不需要停机的部署方式,是一种以可预测的方式发布应用的技术,目的是减少发布过程中服务停止的时间。蓝绿发布的基本原理:蓝绿部署原理上很简单,就是通过冗余来解决问题。通常生产环境需要两组配置(蓝绿配置),一组是active的生产环境的配置(绿配置),一组是inactive的配置(蓝绿配置)。用户访问的时候,只会让用户访问active的服务器集群。在绿色环境(active...

2019-10-15 09:48:08 337

转载 RocketMQ文件过期策略详解

1.为什么会有文件过期删除机制由于RocketMQ操作CommitLog、ConsumeQueue文件是基于文件内存映射机制,并且在启动的时候会将所有的文件加载,为了避免内存与磁盘的浪费、能够让磁盘能够循环利用、避免因为磁盘不足导致消息无法写入等引入了文件过期删除机制2.RocketMQ删除过期文件的思路RocketMQ顺序写CommitLog文件、ComsumeQueue文件,所有的...

2019-09-24 16:44:16 2524

转载 分布式开放消息系统(RocketMQ)的原理与实践

这篇文章写成距今(201808)已经两年半了,其中的内容我已经不能保证是否已经过时,由于当前的业务中也没有在使用RocketMQ,因此很少有时间再去刨代码,很多实践方面的问题也不能很好的为大家解决。因此,建议大家权当入门文章看看,实践中遇到问题的话,在本机跑一跑代码且调试一下,或者去社区逛逛,有可能对你解决问题的帮助会大一些。当然简单的问题,我会尽力和大家交流,谢谢大家。分布式消息系统作为...

2019-09-24 10:22:41 141

转载 RocketMQ与kafka对比(18项差异)-转自阿里中间件

淘宝内部的交易系统使用了淘宝自主研发的Notify消息中间件,使用Mysql作为消息存储媒介,可完全水平扩容,为了进一步降低成本,我们认为存储部分可以进一步优化,2011年初,Linkin开源了Kafka这个优秀的消息中间件,淘宝中间件团队在对Kafka做过充分Review之后,Kafka无限消息堆积,高效的持久化速度吸引了我们,但是同时发现这个消息系统主要定位于日志传输,对于使用在淘宝交易、订单...

2019-09-23 10:16:09 199

转载 常用域名后缀所代表的含义

目前一共有252个域名后缀,但是,其中只有3个可以在全球范围内使用,它们是:.com,.net和.org。最流行的域名后缀是.com,目前已经有2000万个左右使用.com的域名。在244个地区性域名中,有一些管理者允许任何人进行注册,如代表图瓦卢(Tuvalu)的.tv。不过,这些地区性域名最初是分配给某一特定国家或地区的居民使用的。其他域名后缀还包括:给教育机构使用的.edu,给政府机构使用的...

2019-09-20 11:29:45 2303

转载 MCU 和 SOC 的区别

1、CPU(Central Processing Unit),是一台计算机的运算核心和控制核心。CPU由运算器、控制器和寄存器及实现它们之间联系的数据、控制及状态的总线构成。差不多所有的CPU的运作原理可分为四个阶段:提取(Fetch)、解码(Decode)、执行(Execute)和写回(Writeback)。 CPU从存储器或高速缓冲存储器中取出指令,放入指令寄存器,并对指令译码,并执行指令。所...

2019-09-20 11:09:21 4920

转载 漫画:什么是中台?

没有中台的时代在传统IT企业,项目的物理结构是什么样的呢?无论项目内部的如何复杂,都可分为“前台”和“后台”这两部分。什么是前台?首先,这里所说的“前台”和“前端”并不是一回事。所谓前台即包括各种和用户直接交互的界面,比如web页面,手机app;也包括服务端各种实时响应用户请求的业务逻辑,比如商品查询、订单系统等等。...

2019-09-18 18:15:53 155

转载 java开发六大基本原则

设计模式之六大原则(转载)  关于设计模式的六大设计原则的资料网上很多,但是很多地方解释地都太过于笼统化,我也找了很多资料来看,发现CSDN上有几篇关于设计模式的六大原则讲述的比较通俗易懂,因此转载过来。  原作者博客链接:http://blog.csdn.net/LoveLion/article/category/738450/7一.单一职责原则  原文链接:http://blo...

2019-09-18 09:38:27 389 1

转载 Linux各目录及每个目录的详细介绍

【常见目录说明】目录/bin存放二进制可执行文件(ls,cat,mkdir等),常用命令一般都在这里。/etc存放系统管理和配置文件/home存放所有用户文件的根目录,是用户主目录的基点,比如用户user的主目录就是/home/user,可以用~user表示/usr用于存放系统应用程序,比较重要的目录/usr/local本地系统管理员软件安装目录(...

2019-09-16 12:11:35 199

转载 Linux grep/egrep命令详解

grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来grep搜索成功,则返回0,如果搜索不成功,则返回1,如果搜索的文件不存在,则返回2。grep的规则表达式(正则一定要转义) 1 2 3 ^ #锚定行的开始 如:'^grep'匹配所有以grep开头的行。 $ #锚定行的结束 如...

2019-09-16 11:46:52 507

转载 Linux sed命令详解

sed是一种流编编器,它是文本处理中非常中的工具,能够完美的配合正则表达式便用,功物能不同凡响。处理时,把当前处理的行存储在临时缓冲区中,称为”模式空间”( oattern space),接看用sed命令处理缓冲区中的内容,处理成后,把缓冲区的内容送往屏幕显示。接着理下一行,这样不断重复,直到文件末。文件内容没有改改变,除非使用了写入的命令,将内容更新。定址用于决定对哪些行进行编...

2019-09-16 11:42:40 181

转载 shell 中的$0 $1 $* $@ $# $$ $? $() $(())

$0: 脚本本身文件名称$1: 命令行第一个参数,$2为第二个,以此类推$*: 所有参数列表$@: 所有参数列表$#: 参数个数$$: 脚本运行时的PID$?: 脚本退出码∗与@的区别当命令行为test.sh 1 2 3"$*“表示"1 2 3”"$@“表示"1” “2” “3”二者没有被引号括起来时是一样的都为"1 2 3",只有当被引号括起来后才表现出差异...

2019-09-16 11:29:16 98

转载 Linux awk命令详解

awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大。简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理。使用方法 : awk '{pattern + action}' {filenames}尽管操作可能会很复杂,但语法总是这样,其中 pattern 表示 AWK 在数据中查找的内...

2019-09-16 11:07:56 282

转载 流量控制算法——漏桶算法和令牌桶算法

一、写在最前轰轰烈烈的双十二已经过去小半个月了,程序猿的我坐在办公桌上思考,双十二这么大的访问量,这群电商是怎么扛住的,接口分分钟会变得不可用,并引发连锁反应导致整个系统崩溃。好吃懒做的小编,被可怕的好奇心驱使着去调研流量控制算法。好奇心害死猫,才有了这篇文章。二、流量控制算法简介流量控制在计算机领域称为过载保护。何为过载保护?所谓“过载”,即需求超过了负载能力;而“保护”则是指当“过...

2019-09-16 09:27:59 1399

转载 JDK工具(查看JVM参数、内存使用情况及分析等)

在JDK的bin目录下有很多命令行工具:  我们可以看到各个工具的体积基本上都稳定在27kb左右,这个不是JDK开发团队刻意为之的,而是因为这些工具大多数是jdk\lib\tools.jar类库的一层薄包装而已,他们的主要功能代码是在tools类库中实现的。命令行工具的好处是:当应用程序部署到生产环境后,无论是直接接触物理服务器还是远程telnet到服务器上都会受...

2019-09-06 13:33:28 605

转载 详解布隆过滤器的原理、使用场景和注意事项

今天碰到个业务,他的 Redis 集群有个大 Value 用途是作为布隆过滤器,但沟通的时候被小怼了一下,意思大概是“布隆过滤器原理都不懂,还要我优化?”。技术菜被人怼认了、怪不得别人,自己之前确实只是听说过这个,但是没深入了解过,趁这个机会补充一下知识。在进入正文之前,之前看到的有句话我觉得说得很好:Data structures are nothing different. The...

2019-09-06 09:56:57 96

原创 虚拟主机、ECS云服务器、VPS区别汇总

1、虚拟主机虚拟主机就是利用虚拟化的技术,将一台服务器划分出一定大小的空间,每个空间都给予单独的 FTP 权限和 Web 访问权限,多个用户共同平均使用这台服务器的硬件资源。不同配置的虚拟主机主要是在磁盘空间、数据库大小、流量上面的区别。虚拟主机也有可以分为独享的虚拟主机,和共享的虚拟主机。顾名思义,两者之间的区别在于服务器资源的独享和共享。网站主机、空间、都是一个意思。这一类的主机用户的权限...

2019-09-03 15:27:52 1772

原创 网络专业词汇总

IT:Information technology,信息技术。ICT :Information and Communications Technology,信息与通信技术。PC:Personal Computer,个人电脑。API:Application Programming Interface,应用编程接口。CRM:Customer Telationship Management,客户...

2019-08-30 16:04:52 1677

原创 项目数据处理遇到的问题和优化

当前开发项目需求:需要上链一天10万条数据,后台使用网关暴露服务(只是一家ISV10万,后期可能数据量非常大,需要转移数据)(区块链溯源Baas平台,提供安全管理服务)一、单条数据请求,数据验证后发送到链上同步返回。二、批处理支持两百条同时请求,简单验证后入消息队列异步返回。(考虑数据上链需要大概2秒的时间,批处理不可能瞬时返回)sql一条语句验证(重复)时间(查询)大概为0....

2019-08-26 10:49:46 719

转载 大泥球的成长之路

前言上周组织团队对一个遗留系统进行架构重构,发现了一个模块是典型的大泥球架构,极难重构,本文将回顾大泥球的形成的主要过程,以便大家尽量避免大泥球架构带来的伤害。大泥球?大泥球,是指杂乱无章、错综复杂、邋遢不堪、随意拼贴的大堆代码。尽管涌现出各种鼓励、促进良好结构代码的开发方法,软件技艺运动也在不断成长,但是“大泥球”仍然是最常见的软件设计,即使人们已经从过去恶劣的设计中学到了东西,但在...

2019-08-15 09:27:03 1131

转载 select、poll、epoll之间的区别

(1)select==>时间复杂度O(n)它仅仅知道了,有I/O事件发生了,却并不知道是哪那几个流(可能有一个,多个,甚至全部),我们只能无差别轮询所有流,找出能读出数据,或者写入数据的流,对他们进行操作。所以select具有O(n)的无差别轮询复杂度,同时处理的流越多,无差别轮询时间就越长。(2)poll==>时间复杂度O(n)poll本质上和select没有区别,它将用...

2019-08-12 11:26:38 120

转载 Maven:distributionManagement、repository、mirror的使用说明

我的理解是repository是仓库,mirror是缓存的repository,distributionManagement是上传是指定的仓库地址,servers是指定仓库的账号密码Maven(三) 仓库 repositoryMaven学习 --- <distributionManagement>Maven最佳实践-distributionManagementMaven:mir...

2019-08-12 10:49:22 3261

转载 JAVA最简单的根据版本号动态切换业务实现逻辑

/*** @ClassName Version* @Description 父类为抽象类,定义一个抽象方法,子类通过重写此方法完成各自业务逻辑* @author LBQ* @Date 2019年3月8日 下午3:18:58* @version 1.0.0*/public abstract class Version { public abstract ...

2019-08-09 14:40:26 676 1

转载 云计算的概念和价值

云计算的概念:云计算(cloud computing)是一种按是使用量付费的模式,这种模式是可用的、便捷的、按需的网络访问,进入可配置的计算机资源共享池(资源包括网络,服务器,存储,应用软件,服务),这些资源能够被快速提供,只需要投入很少的管理工作,或与服务供应商进行很少的交互。​ —————-美国国家标准与技术研究院云计算是一种基于互联网的计算方式,通过这种方式,共享的软硬件资源和信息...

2019-08-07 17:12:13 635

转载 logback介绍和配置详解

logback是java的日志开源组件,是log4j创始人写的,性能比log4j要好,目前主要分为3个模块logback-core:核心代码模块 logback-classic:log4j的一个改良版本,同时实现了slf4j的接口,这样你如果之后要切换其他日志组件也是一件很容易的事 logback-access:访问模块与Servlet容器集成提供通过Http来访问日志的功能本篇博客会讲...

2019-08-07 14:28:17 452

转载 分布式事务与一致性算法Paxos & raft & zab

说明:以下内容总结自网络1.CAP原理要想数据高可用,就得写多份数据写多分数据就会导致数据一致性问题数据一致性问题会引起性能问题2.一致性模型弱一致性最终一致性(一段时间达到一致性)强一致1、2 异步冗余;3是同步冗余3.扩展服务的方案数据分区: uid % 16数据镜像:让多有的服务器都有相同的数据,提供相当的服务(冗余存储,一般3份为好)4.两种...

2019-08-06 10:05:26 339

转载 Zookeeper中的选举机制

目录1. 全新集群的选举机制 2. 非全新集群的选举机制正文Zookeeper虽然在配置文件中并没有指定master和slave,但是,zookeeper工作时,是有一个节点为leader,其他则为follower。leader是通过内部的选举机制临时产生的。选举机制大致可以分为以下两种:回到顶部1. 全新集群的选举机制以一个简单的例子来说明整个选举的过程。假设有五...

2019-08-06 09:58:51 131

空空如也

空空如也

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

TA关注的人

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