- 博客(316)
- 收藏
- 关注
原创 位数组
位数组计算机中的位操作: 与(&)、或(|) 、非(~) 1 & 1 = 1 1 | 1 = 1 ~1 = 0 1 & 0 = 0 1 | 0 = 1 ~0 = 1 0 & 1 = 0 0 | 1 = 1 0 & 0...
2020-04-13 14:43:00
728
原创 BloomFilter
BloomFilter概述现在有一个非常庞大的数据,假设全是 int 类型。现在我给你一个数,你需要告诉我它是否存在其中(尽量高效)。我想大多数想到的都是用 HashMap 来存放数据,因为它的写入查询的效率都比较高。但是在内存有限的情况下我们不能使用这种方式,因为很容易导致内存溢出因为只是需要判断数据是否存在,也不是需要把数据查询出来,所以完全没有必要将真正的数据存放进去,B...
2020-04-13 14:35:00
249
原创 项目的难点
项目的难点问题来源思考作为一个架构师,体现自己价值的最重要的一个方式是可以解决大部分其他人处理不了的问题或者其他人处理起来很棘手的问题。那么问题来了,一个项目中到底什么样的问题才算是棘手的问题?项目开发前业务流程梳理(产品意识)技术架构设计(架构师)项目开发中处理开发中的技术难点合理安排开发人力,保证项目进度对产品提出的需求做出质疑和把控,保证需求的高价值(业...
2020-04-13 11:48:00
494
原创 eureka 的几种主动下线服务的方式
eureka 的几种主动下线服务的方式1. 直接停掉服务。默认情况下,如果Eureka Server在90秒没有收到Eureka客户的续约,它会将实例从其注册表中删除。但这种做法的不好之处在于, 客户端已经停止了运行,但仍然在注册中心的列表中。 虽然通过一定的负载均衡策略或使用熔断器可以让服务正常进行,但有没有方法让注册中心马上知道服务已经下线呢?2.为了让注册中心马上知道服务...
2020-04-10 15:00:00
387
原创 零拷贝原理
零拷贝(Zero-copy)技术指在计算机执行操作时,CPU 不需要先将数据从一个内存区域复制到另一个内存区域,从而可以减少上下文切换以及 CPU 的拷贝时间。它的作用是在数据报从网络设备到用户程序空间传递的过程中,减少数据拷贝次数,减少系统调用,实现 CPU 的零参与,彻底消除 CPU 在这方面的负载。实现零拷贝用到的最主要技术是 DMA 数据传输技术和内存区域映射技术。零拷贝机制...
2020-04-08 20:03:00
846
原创 WebSocket原理
WebSocket原理WebSocket是HTML5出的东西(协议),也就是说HTTP协议没有变化,或者说没关系,但HTTP是不支持持久连接的(长连接,循环连接的不算)首先HTTP有1.1和1.0之说,也就是所谓的keep-alive,把多个HTTP请求合并为一个,但是Websocket其实是一个新协议,跟HTTP协议基本没有关系,只是为了兼容现有浏览器的握手规范而已,也就是说它是...
2020-04-08 17:32:00
220
原创 安装LuaRocks
安装LuaRocks概述LuaRocks是一个部署和管理Lua模块的系统。LuaRocks允许通过"rocks"安装独立的Lua模块,并且包含附加的版本信息。安装从官网https://github.com/luarocks/luarocks/wiki/Download下载最新版本的源码包,目前最新版本是2.4.3wget http://luarocks.github...
2020-04-03 12:03:00
401
原创 orange 安装
把openresty命令添加到/usr/sbinln -s /usr/local/openresty/nginx/sbin/nginx /usr/sbin/nginxln -s /usr/local/openresty/bin/resty /usr/sbin/resty安装lorGit clone https://github.com/sumory/lor.git此处注...
2020-04-03 11:48:00
599
原创 video标签播放视频不能拖动进度条
因为你的video的src不是直接使用视频文件的地址,而是通过后台接口返回文件流,后台返回流的时候没为response的header设置一些参数,否则会在部分浏览器有问题String rangeString = request.getHeader("Range");//如果是video标签发起的请求就不会为nulllong range = Long.valueOf(rangeStri...
2020-03-28 17:23:00
6486
原创 lua如何倒序查找字符
str = "/www/var/tmp/temp.lua"function subString(str, k) ts = string.reverse(str) //反转字符串str _, i = string.find(ts, k) //获取k在反转后的str字符串ts的位置 m = string.len(ts) - i + 1 //获取k在字符串str中的位置...
2020-03-28 11:45:00
1163
原创 openresty设置文件下载名
ngx.header["Content-Type"]="charset=UTF-8"ngx.header["Content-disposition"]="attachment;filename="..ngx.escape_uri(fileName)
2020-03-28 11:42:00
272
原创 转型技术管理思考
转型技术管理思考技术领导的定义技术领导是你要利用技术资源和团队资源把事情做好。从技术人员和技术领导的分布上来说,后者显然更难胜任。技术领导者的核心竞争力应该包括但不限于:技术能力,对事情的整体的理解,能找到正确的方向,影响力,凝聚力,对人性的理解等等;技术领导的技术弱化会让人感觉的危机感,但是优秀的技术领导会超越这些,他们关注的内容不再是某个具体的技术和实现,而是事情,让正确的...
2020-03-24 15:22:00
236
原创 假如你是一个管理者
假如你是一个管理者假如你是一个管理者,现在让你负责一个部门下二十个人,负责三个大项目,你会面临哪些问题?首先你的最终目标是将你负责的项目做到最好,能给公司带来最大效益,实现这个团队的最大价值,这是最终的目标。从以下方面总结一,自我认知,这个主要自己要思考从技术人员到管理人员各个方面的变化,提高自己层次的过程,需要我们多思考,看清自己:二,从技术转管理的一些疑惑,面对新事...
2020-03-24 14:57:00
445
原创 nginx地址重写
nginx地址重写有的时候我们的网站更换了域名,但还有用户在使用老的域名访问,这时可以通过nginx的地址重写来让用户跳转到新的域名进行访问。比如说原来我们用的docs.macrozheng.com这个域名不用了,现在改成www.macrozheng.com了来访问文档项目了;server { listen 80; server_name docs...
2020-01-15 21:47:00
272
原创 nginx文件压缩
nginx文件压缩如果我们租用了一个带宽很低的服务器,网站访问速度会很慢,这时我们可以通过让nginx开启GZIP压缩来提高网站的访问速度。首先我们对nginx进行限速操作,限制每个连接的访问速度为128K来建立一个比较慢的访问场景;server { listen 80; server_name mall.macrozheng.com; ...
2020-01-15 21:46:00
528
原创 linux free 命令
linux free 命令free 命令显示系统内存的使用情况,包括物理内存、交换内存(swap)和内核缓冲区内存。如果加上 -h 选项,输出的结果会友好很多:有时我们需要持续的观察内存的状况,此时可以使用 -s 选项并指定间隔的秒数,每隔 3 秒输出一次内存的使用情况,直到你按下 ctrl + c。:free -h -s 3输出简介Mem 行(第二行)是...
2020-01-11 17:12:00
243
原创 linux僵死进程的产生与避免
linux僵死进程的产生与避免一个进程在调用exit命令结束自己的生命的时候,其实它并没有真正的被销毁, 而是留下一个称为僵死进程(Zombie)的数据结构(系统调用exit,它的作用是使进程退出,但也仅仅限于将一个正常的进程变成一个僵死进程,并不能将其完全销毁)。“僵死进程的产生在每个进程退出的时候,内核释放该进程所有的资源,包括打开的文件,占用的内存等,但是仍然为其保留一定的信息...
2020-01-11 16:00:00
192
原创 浅谈openresty
浅谈openresty为什么会有OpenResty?我们都知道Nginx有很多的特性和好处,但是在Nginx上开发成了一个难题,Nginx模块需要用C开发,而且必须符合一系列复杂的规则,最重要的用C开发模块必须要熟悉Nginx的源代码,使得开发者对其望而生畏。为了开发人员方便,所以接下来我们要介绍一种整合了Nginx和lua的框架,那就是OpenResty,它帮我们实现了可以用l...
2020-01-10 18:16:00
414
原创 Http请求特殊符号变空格
Http请求特殊符号变空格今天在调试客户端向服务器传递参数时,url中的参数值出现+,空格,/,?,%,#,&等特殊符号的时候就自动变成空格,在服务器端无法获得正确的参数值。解决方法如下:方法一修改客户端,将客户端带“+”的参数中的“+”全部替换为“%2B”,这样参数传到服务器端时就能得到“+”了。方法二修改服务器端,将空格替换为“+”,这种方式只适用于参数...
2020-01-10 16:48:00
11887
原创 nginx白名单黑名单设置
nginx白名单黑名单设置白名单设置,访问根目录location / { allow 123.34.22.155; allow 33.56.32.1/100; deny all;}黑名单设置,访问根目录location / { deny 12...
2020-01-09 15:52:00
622
原创 openresty http
openresty httpopenresty默认没有提供http客户端,需要第三方提供插件。下载方式:wgethttps://raw.githubusercontent.com/pintsized/lua-resty-http/master/lib/resty/http_headers.luawgethttps://raw.githubusercontent.com...
2020-01-09 15:45:00
221
原创 lua 中 . 和 : 的区别
lua 中 . 和 : 的区别首先在lua中使用“:”定义的函数会自动传入一个名为self的变量,这个变量是隐含的,self同c++中的this一样,表示当前对象的指针:而“.”定义的函数中没有self。function class:func2( ) endfunction class.func1(self) end --这时候这两个函数等价 function...
2020-01-09 15:45:00
168
原创 分布式架构体系
分布式架构体系https://juejin.im/post/5da6b68b51882565f76606fb?utm_source=gold_browser_extension
2019-10-25 12:10:00
187
原创 Spring 中读取文件-ResourceLoaderAware
Spring 中读取文件-ResourceLoaderAware概述Spring ResourceLoader为我们提供了一个统一的getResource()方法来通过资源路径检索外部资源。从而将资源或文件(例如文本文件、XML文件、属性文件或图像文件)加载到Spring应用程序上下文中的不同实现资源(Resource)接口Resource是Spring中用于表示外部资源的通用...
2019-10-25 10:55:00
2019
1
原创 Spring Boot定义系统启动任务的两种方式
Spring Boot定义系统启动任务的两种方式概述如果涉及到系统任务,例如在项目启动阶段要做一些数据初始化操作,这些操作有一个共同的特点,只在项目启动时进行,以后都不再执行,这里,容易想到web基础中的三大组件( Servlet、Filter、Listener )之一 Listener ,这种情况下,一般定义一个 ServletContextListener,然后就可以监听到项目...
2019-10-24 17:31:00
490
原创 欧几里得距离
欧几里得距离概述根据两用户之间共同评价的Item为维度,建立一个多维的空间,那么通过用户对单一维度上的评价Score组成的坐标系X(s1,s2,s3……,si)即可定位该用户在这个多维度空间中的位置,那么任意两个位置之间的距离Distance(X,Y)(即:欧式距离)就能在一定程度上反应了两用户兴趣的相似程度。欧氏距离越小,两个用户相似度就越大,欧氏距离越大,两个用户相似度就越...
2019-10-24 14:36:00
3706
原创 推荐系统简介
推荐系统简介概述用户有明确需求的情况下,通过搜索引擎找到自己需要的东西。用户没有明确的需求呢?比如说,某个周日的下午,你想看一部电影,但打开视频网站后,面对各种类型的电影,不知如何挑选。推荐系统为了解决这个问题就应运而生;无论是在互联网上,还是在现实生活中,这两种方式都大量并存,为互补关系。以在商场买东西为例,如果我们清楚地知道自己想要买什么、什么型号、什么款式、什么颜色的话,直...
2019-10-23 21:50:00
303
原创 linux容器技术和Docker
linux容器技术和Docker概述Docker在一定程度上是LXC的增强版,早期的Docker使用LXC作为容器引擎,所以也可以说Docker是LXC的二次封装发行版,目前docker使用的容器引擎为runC,其是容器运行时标准的实现之一;Docker使用镜像的方式启动容器,解决了LXC所面临的问题目前市面上所说的容器通常指Docker,其以成为事实上的工业标准Docker 是...
2019-10-16 16:00:00
277
原创 k8s概述
k8s概述概述Kubernetes 使你在数以千计的电脑节点上运行软件时就像所有这些节点是单个大节点一样。它将底层基础设施抽象,这样做同时简化了应用的开发、部署, 以及对开发和运维团队的管理。Kubernetes 的核心功能整个系统由一个主节点和若干个工作节点组成。开发者把一个应用列表提交到主节点, Kubemetes 会将它们部署到集群的工作节点。组件被部署在哪个节点对于...
2019-10-16 15:58:00
239
原创 LXC(LinuX Container)之namespaec和cgroup
LXC(LinuX Container)之namespaec和cgroupnamespace概述从操作系统级上实现了资源的隔离,它本质上是宿主机上的进程(容器进程),所以资源隔离主要就是指进程资源的隔离。实现资源隔离的核心技术就是 Linux namespace。这技术和很多语言的命名空间的设计思想是一致的(如 C++ 的 namespace)。Linux的命名空间机制提供了一种...
2019-10-15 21:46:00
379
原创 linux容器技术之chroot
linux容器技术之chrootlinux chroot 机制的由来root 用户启动一个daemon,必须用root 用户来启动,比如一个web 服务器(nginx/apapce 80端口)是在操作系统的接口(1-1024),只有root 有这个权限来启动这类接口;用root 户启动daemon 的程序也被认为是一个自然的事情。随着安全的攻击越来越严重,如果任何一个提供TCP ...
2019-10-15 21:29:00
616
原创 gerrit merge后不能提交问题
需求:git分支合并问题:使用 git merge 在本地执行分支合并操作,然后想 push 到 gerrit 上评审入库,可是在提交时,提示:! [remote rejected] HEAD -> refs/for/dev (no new changes)分析:no new changes 的意思,是说,这个合并,是个线性的合并。而合并的那些历史的 commit 节点,...
2019-10-07 17:54:00
1614
原创 Spring AnnotationConfigApplicationContext
Spring AnnotationConfigApplicationContext概述通常Spring XML文件用来作为ClassPathXmlApplicationContext 的初始化。@Configuration 标注的类能够用来初始化AnnotationConfigApplicationContext类,这样就可以提供Spring容器的完全的自由的无XML用法Anno...
2019-09-05 19:55:00
450
原创 spring动态修改bean
spring动态修改bean@RequestMapping("ok") public Object test2(){ ApplicationContext applicationContext = SpringContextUtil.getApplicationContext(); String[] beans = applicationCont...
2019-09-03 11:20:00
3715
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅