- 博客(15)
- 资源 (4)
- 收藏
- 关注
转载 网络协议 19 - RPC协议综述:远在天边近在眼前
这几年微服务很火,想必各位博友或多或少的都接触过。微服务概念中,各服务间的相互调用是不可或缺的一环。你知道微服务之间是通过什么方式相互调用的吗?你可能说,这还不简单,用 socket 呗。服务之间分调用方和被调用方,我们就建立一个 TCP 或者 UDP 连接进行通信就好了。说着说着,你可能就会发现,这事儿没那么简单。我们就拿最简单的场景:客户端调用一个加法函数,将两个整数加起来,返回它们...
2019-01-07 17:27:37 100
转载 模仿OpenStack写自己的RPC
nova各个服务启动时就是开启了一个RPC的服务端,在调用其他服务时会创建一个客户端,通过客户端调用到相应的服务。以nova创建虚拟机为例,在上图的第三步中,nova-scheduler选择好计算节点,将创建虚拟机的信息通过RPC发送给计算节点。代码经过RPC客户端的封装和调用,本文的重点就是如何调用RPC客户端。从rpc.py中可知,客户端来自messaging,其实就是oslo_messag...
2019-01-07 17:26:12 98
转载 MySQL分区表使用方法
分区键为日期或是时间类型 (可以使得各个分区表的数据比较均衡,如果按上面的例子中以整型id为分区键,假如活跃用户集中在10000-19999之间,则p1中的数据量就会比其他分区的数据量大很多,这就失去了分区的意义;而且按时间类型分区,如果要按时间顺序进行数据的归档,则只需要对某一个分区进行归档就可以了)所有查询中都包括分区键(避免跨分区查询)定期按分区范围清理历史数据之前说过建立分区表时,最...
2019-01-07 16:34:57 132
转载 Redis的Pub/Sub客户端实现
从响应结果可以看出,客户端订阅了 news.*,然后收到了news.sports,news.country的消息。响应消息解析上述代码中有一个MyPubSub对象,它继承自抽象类TedisPubSub.这个类做了发布订阅核心的业务处理。通过对服务端返回的消息格式,我们可以发现,它的消息格式是统一的。所以我们在做发布订阅的响应消息解析时,可以返回 List。这里以SUBSCRIBE/PSUBS...
2019-01-07 16:33:46 137
转载 Python聚类模型原理及应用--批发商客户分群
K-MEANS算法有时也叫快速聚类算法, 其大致流程为:第一步: 随机选取K个点, 作为初始的K个聚类中心, 有时也叫质心.第二步: 计算每个样本点到K个聚类中心的距离, 并将其分给距离最短的簇, 如果k个簇中均至少有一个样本点, 那么我们就说将所有样本点分成了K个簇.第三步: 计算K个簇中所有样本点的均值, 将这K个均值作为K个新的聚类中心.第四步: 重复第二步和第三步, 直到聚类中心不...
2019-01-07 16:32:37 238
转载 DirectX11--实现一个3D魔方(1)
在高中的学校接触到了魔方社,那时候的我虽然也能够还原魔方,可看到大神们总是可以非常快地还原,为此我也走上了学习高级公式CFOP的坑。当初学习的网站是在魔方小站,不过由于公式太多了,那一年主要也就学会了顶层公式PLL和底二层公式F2L,最好的时候大概30s能够复原一个魔方,不过后来还是退坑了。然后到了大学,参加考核的时候被要求用DirectX9来实现考题规定的游戏,我选择了魔方。然后在仅有12天的...
2019-01-07 16:31:28 121
转载 程序配置的原则和实践以及 Spring Boot 支持方式
构建好的程序被部署在服务器上后,为了解决故障、性能优化、适应新的需求,需要对服务器和应用的配置进行更改。如果直接登录服务器修改某个配置,随着时间的推移和管理的复杂化,就会引发配置漂移。这种可以直接登录修改的服务器称为可变服务器。可变服务器会造成开发、测试、生产服务器不一致,生产环境中不同的节点也不一致,容易出现运行问题。要防止配置漂移,服务器要禁止手动修改,只能通过自动化部署形式更改配置,这种...
2019-01-07 16:30:24 77
转载 数据预处理也有套路的
数据科学家们一直想为数据预处理赋予一个定义。其实简单地说,数据预处理就是一种数据挖掘技术,本质就是为了将原始数据转换为可以理解的格式或者符合我们挖掘的格式。那么为什么需要数据预处理呢在真实世界中,数据通常是不完整的(缺少某些感兴趣的属性值),不一致的(包含代码或者名称的差异),极易受到噪声(错误或异常值)的侵扰的。因为数据库太大,而且数据集经常来自多个异种数据源,低质量的数据将导致低质量的挖掘...
2019-01-07 16:29:29 99
转载 python中多线程,多进程,多协程概念及编程上的应用
线程是进程的一个实体,是CPU进行调度的最小单位,他是比进程更小能独立运行的基本单位。 线程基本不拥有系统资源,只占用一点运行中的资源(如程序计数器,一组寄存器和栈),但是它可以与同属于一个进程的其他线程共享全部的资源。 提高程序的运行速率,上下文切换快,开销比较少,但是不够稳定,容易丢失数据,形成死锁。直接上代码:import timeimport threading函数1用时2秒...
2019-01-07 16:27:48 80
转载 Docker的网络模式详解
(1)docker四种网络模式如下:Bridge contauner 桥接式网络模式Host(open) container 开放式网络模式Container(join) container 联合挂载式网络模式,是host网络模式的延伸None(Close) container 封闭式网络模式(2)可以通过docker network命令查看[root@along ~]...
2019-01-07 16:23:37 87
转载 后缀自动机及其建图
到底如何构造说道底,这才是后缀自动机真正的难点所在...我甚至建议一边看建图过程一边看引理的证明。过程主要注重理解。在这里采用的是动态的加入过程,也就是一个字符一个字符地加入。假设当前加入的字符是chr,然后让我们再来定义一些奇奇怪怪的变量:当前新建的点是np。 上一次加入的点是p,也就是这次我们需要把np接在后面的那个点。同时p也是我们通过后缀链接不断地向前跳的当前点。 假设...
2019-01-06 20:39:01 87
转载 C++重写new和delete,比想像中困难
并且不太影响执行效率去实现内存泄漏检测,是不太现实的。当时觉得重写new和delete是没有太大价值的,不过后来在自己的项目中还是重写了,加了个计数。在程序退出时检测下计数new的次数和delete次数是否对得上,对不上就是有问题了,再用valgrind之类的工具去检测。这种排除不了所有情况,但确实也解决了一些问题。毕竟每次写新功能时发现问题立马去解决,比你写了成千上万个功能,上线后出问题再查找容...
2019-01-06 20:37:12 581
转载 对ES6的yield示例分析
近期ES6标准如火如荼的发展,其中主要还是各大浏览器的支持,最重要厂商支付宝,微信的支持,使得国内的发展也很迅猛。这里主要是对yield关键字的,yield实际上可以看作是一种新的中断机制,大家都知道javascript函数执行是顺序的,中途没有暂停,等待消息只能通过回调或者settimeout等延迟检查来完成。有些示例说yield和线程有关系,不过我在官方示例中没看出来,好了进入主题,先...
2019-01-06 20:35:29 97
转载 如何为你的 Vue 项目添加配置 Stylelint
现在已经是 9102 年了,网上许多教程和分享帖都已经过期,照着他们的步骤来会踩一些坑,如 stylelint-processor-html 已经不再维护,以及 --fix 之后 .vue 文件只剩下 <style> 部分等。我在踩完坑跑通出满意的效果后,维护一份新的指引,以备后续项目使用,顺便分享一下。为什么选择用 stylelint ?这个问题有两层含义,一是为什么要使用这...
2019-01-06 20:33:44 781 1
转载 linux时间配置综述
一.时间类型分为: 1.网络时间(设置时区,ntp服务器同步的时间) 2.系统时间,当前系统所显示的时间 3.硬件(RTC)时间,主板上面Bios的时间 一般设置为:系统时间与网络时间同步,系统时间写入硬件时间。 二.时间的查看方式: 1.查看硬件时间 2.查看系统时间 3.网络时间的更新及查看 四 ...http://weibo.com/p/2313474325492525255920/we...
2019-01-06 20:28:52 85
itext介绍和适用案例讲解
2011-06-30
MySQL 5.1参考手册
2010-11-16
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人