自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

moxiaomomo的专栏

个人blog: blog.moguang.me

  • 博客(503)
  • 资源 (17)
  • 收藏
  • 关注

原创 Centos7安装ElasticSearch6.4

本文主要是记录在Centos7下安装ElasticSearch集群及管理工具Cerebro的流程。节点准备节点IP角色ES节点名称192.168.1.10masternode1192.168.1.11datanode21.下载ES安装包cd /optwget https://artifacts.elastic.co/downloads/elasti...

2018-09-19 21:47:35 1997

原创 Redis共享Session原理及示例

Redis共享session的作用微服务自身可以保持无状态,应用实例数量的多少不会影响用户登录状态;可实现单点登录的踢出功能,如可以让上次异地登录的用户下线;session在多个服务或服务器间共享,实现多站点单点登录(参考SSO服务)Redis缓存session原理简述其工作原理,可简单用图描述(假设服务A运行有有个多个实例):Springboot-session结合Redis示...

2018-09-17 22:04:51 18170 1

原创 Centos7安装Kubernetes1.11集群及Dashboard工具

1. 测试节点暂时一个Master节点,一个Node节点192.168.1.148 Master192.168.1.6 Node建议首先清空iptables路由规则:# (清理filter表的规则,不加 –t 就默认filter表)iptables -X && iptables -F && iptables -Z ipt

2018-08-21 11:53:47 3345

原创 centos7安装ftp服务

通过yum安装vsftpdyum install -y vsftpd修改配置文件/etc/vsftpd/vsftpd.conf增加了一些自定义配置,全部配置详细如下:# 原有初始配置local_umask=022dirmessage_enable=YESxferlog_enable=YESconnect_from_port_20=YESxferlog_std_fo...

2018-08-16 09:48:23 3619

原创 微服务开发之单点登录

关于CASCAS是一种单点登录开源框架,遵循apache2.0协议,代码托管在github.com/apereo/cas上。而单点登录(SSO, Single Sign On)可简单理解为当用户在一个应用上登录了,其他被授权信任的关联应用不用再登录。比如在同一个浏览器中登录了天猫,再打开淘宝网站时会自动登录,无需单独输用户名密码或扫二维码。以下简单说明下CAS的部署与测试结果。本地...

2018-07-16 08:52:35 6339

原创 微服务开发之熔断器

一般在微服架构中,有一个组件角色叫熔断器。顾名思义,熔断器起的作用就是在特定的场景下关掉当前的通路,从而起到保护整个系统的效果。在微服务架构中,一般我们的独立服务是比较多的,每个独立服务之间划分责任边界,并通过约定协议接口来进行通信。当我们的调用链路复杂依赖多时,很可能会发生雪崩效应。假设有这么一个场景,有A, B, C, D四个独立服务,A会依赖B,C,D;当D发生负载过高或网络异常等导...

2018-06-22 17:47:39 4472

原创 PySpark NaiveBayes算法之中文文本分类测试

假设现在有N行文本,每行文本的第一列已经打好标签, Y 或 N, 用于标识该行文本是否包含敏感词汇;第二列之后的每一列是对某些句子或文本进行中文分词之后的词汇。比如N 朴素贝叶斯算法 是 生成模型 中 最经典 分类算法 之一Y 这是 一条 包含 色情 的 语句我们现在用pyspark结合NaiveBayes分类算法来进行训练和测试,这个过程大概包括:词条转换成特征向量统计词频...

2018-06-19 16:33:39 2695

原创 [分布式trace]在Ubuntu17.10上部署jaeger

关于JaegerJaeger是由Uber发布的一种分布式调用链跟踪系统,主要用于集成到微服务调用追踪,和Zipkin作用类似。通过调用链跟踪系统,可以快速了解各节点的响应状况,方便定位问题。Jaeger关键组件Jaeger本身是一种可单独部署运行的服务,主要有以下几个关键组件:数据存储Cassandra数据收集jaeger-collector客户端代理jaeger-age...

2018-06-18 13:30:17 1325

原创 基于jaeger和grpc实现的rpc调用链跟踪模块

grpc-jaeger说明具体源码可参考我的github源码grpc-jaeger是基于Go的针对gRPC的一种拦截器实现,用于结合jaeger来实现rpc调用链跟踪;可用于集成到微服务的分布式trace功能中。grpc包中对外暴露了两个接口:grpc.UnaryClientInterceptor及grpc.UnaryServerInterceptor, 只要将这两个函数重写即可以自定...

2018-06-17 22:03:46 4633

原创 基于环形队列和令牌桶实现的限流模块

概述在分布式服务架构下,比如微服务架构,一般需要构建一个独立的gateway模块。gateway模块的主要作用包括流量控制,规则路由,负载均衡,鉴权,熔断等等;而gateway一般是stateless的,因此可自由弹性伸缩集群规模,以应对实际的访问场景。 本文主要介绍通过golang实现限流模块的一种方案,其关键点主要有两个:环形队列(ring queue)令牌桶算法(token b...

2018-06-15 09:29:58 1817

原创 [微服务]关于架构设计的问题

微服务架构的核心思想是类似的,而不同的应用场景总有不同的具体实践架构。 微服务设计前,我想有几个问题应该需要思考一下:客户端如何访问这些服务每个服务的边界如何划分,如何通信划分成这么多的服务,如何实现部署划分成这么多的服务,如何有效监控和容灾以下是基于本地项目环境设计的一种初步架构,权当笔记: ...

2018-06-04 14:18:57 354

原创 [分布式协议]Go实现raft协议

之前对raft算法是有所了解但无深究,偶然机会下读了下大牛的goraft代码 后,决定自己实现一把。 目前代码基本完成,本人水平有限,代码基本能用,未经严格测试,欢迎指导:源码github地址 以下是项目说明README:raft协议的go版本,实现功能包括:选主投票节点心跳日志同步成员变更日志压缩存在的问题或需要解决的问题:完善snapshot快照同步逻辑...

2018-05-28 15:21:12 2738

原创 shell curl 与 python requests的一次对比

shell curl 与 python requests偶然发现了curl和requests库的一个区别。场景是这样的–这样使用curl去发起post请求:curl -v -X POST http://api.xx.com/api/yy.php --data 'params={"sign":"xxxx","data":[{"uid":110,"remark":"just4test&q

2018-04-19 13:55:01 12703

原创 [python]书籍信息爬虫示例

[python]书籍信息爬虫示例背景说明需要收集一些书籍信息,以豆瓣书籍条目作为源,得到一些有效书籍信息,并保存到本地数据库。获取书籍分类标签具体可参考这个链接: https://book.douban.com/tag/?view=type 然后将这些分类标签链接存到本地某个文件,存储内容如下https://book.douban.com/tag/小说https://bo

2018-01-10 14:59:47 1410 2

原创 golang并发下载多个文件

背景说明假设有一个分布式文件系统,现需要从该系统中并发下载一部分文件到本地机器。 已知该文件系统的部分节点ip, 以及需要下载的文件fileID列表,并能通过这些信息来拼接下载地址。 其中节点ip列表保存在xx_node.txt, 要下载的fileID保存在xx_fileID.txt中。代码示例package mainimport ( "bufio" "flag" "fm

2018-01-03 17:27:37 8192

原创 [Golang]通过interface实现"泛型"的用例

目前Golang最新版本为1.9, 暂时不支持泛型。 不过可以通过interface实现”泛型编程”效果, 下面以slice类型数据的添加/删除元素为例, 供大家参考一下:package mainimport ( "errors" "fmt")var ( ERR_ELEM_EXISTS = errors.New("element exits.") ER

2017-12-06 10:39:33 6216

原创 使用parallel-ssh批量执行远程shell命令

pssh使用场景假设现在需要对数百台服务器节点进行配置更新或者执行一些简短command,而目前并没有完备的部署工具软件, 那可以选择向pssh这样的并行登录远程终端并执行指定命令的shell工具。 以前机器节点少的时候,直接用shell写个for循环来执行命令,也没什么问题。当节点数量多了之后,一个shell命令可能要消耗几秒, 这时才能感受到pssh这种并行方式的好处,省时省力。pssh可选配

2017-12-05 11:39:56 4747

原创 分布式转码初步方案(hadoop+ffmpeg)

分布式转码初步方案背景说明现有的转码方案是一个转码worker处理整个视频的不同清晰度的转码,如果一个视频很大,那这个视频转码将非常耗时。 因此需要改进方案,要求对大多数格式的视频可以进行切片后并行转码,以此提高一个视频的转码效率。技术预研目前搜到的参考资料,基本都是针对某几个特定格式的分布式转码方案。 当前视频转码基本都依赖于ffmpeg, 目前存在一个问题: 暂时没有找到一个合适的方法去无

2017-11-29 12:14:11 4929 2

原创 分布式文件上传服务架构设计

背景由于某业务需要,需要对文件上传服务进行一次架构调整,初步考虑几点:水平扩展性:上传worker节点按需弹性部署负载均衡:根据上传worker节点的状态随时均衡调度支持断点续传:即需要提供分片上传接口支持秒传:对于上传过的相同文件直接响应完成就近原则:通过离用户最近的区域节点上传文件,通过CDN节点下载文件初步架构逻辑架构图如图所示: 重点功能模块说明: - 上传调度服务 (

2017-11-20 23:35:07 7136 2

原创 golang内存管理

最近粗略看了下golang内存初始化相关的代码,结合大牛们的一些源码分析,自己整理了一下学习总结。几个关键数据结构mspan 由mheap管理的页面,记录了所分配的块大小和起始地址等mcache 与P(可看做cpu)绑定的线程级别的本地缓存mcenter 全局空间的缓存,收集了各种大小(67种)的span列表mheap 分配内存的堆分配器,以8kb进行页管理fixalloc 固定

2017-11-16 00:19:36 2677

原创 golang知识点整理(持续更新)

对golang的整体理解Go是一种编译型语言,结合了解释型语言的优点(如调试效率,跨平台),动态类型语言的优点(如开发效率),以及静态类型的优点(如安全性);Go是静态类型语言,类型系统没有层级,因此无需在类型关系定义上耗费过多时间;Go是垃圾回收型的语言,并为并发执行与通信提供了基本的支持;Go目标是要成为一种现在的系统语言,不过目前更多用来构建支持高性能高并发web服务。列出常用的一些

2017-11-14 13:45:22 4054

原创 [Golang]另一角度理解goroutine

偶然看到一条关于goroutine有趣的QA: https://news.ycombinator.com/item?id=12459841 发现可以以另一种方式来理解goroutine,欢迎拍砖。关键概念说明:M: machine, M对应于内核线程;P: processor, P是一种在M上运行的context, 维护了goroutine的列表;G: goroutine核心结构, 维护了g

2017-11-09 20:03:20 807

翻译 理解TCP/IP协议栈(3)

翻译自: https://www.cubrid.org/blog/understanding-tcp-ip-network-stack如何处理中断及接收包中断处理很复杂, 而你需要理解与之相关的到达包处理的性能. Figure 5展示了一个中断处理的流程. Figure 5: Processing Interrupt, softirq, and Received Packet.假设CPU 0

2017-11-07 15:53:05 715

翻译 理解TCP/IP协议栈(2)

翻译自: https://www.cubrid.org/blog/understanding-tcp-ip-network-stack数据接收现在来看看数据是如何接收的. 数据接收就是网络协议栈处理到达数据的过程. 如Figure 3所示: Figure 3: TCP/IP栈各层如何处理到达数据的过程.首先NIC将包写入它的内存. 它会通过CRC来检查包是否有效, 然后将数据发送到主机的内存

2017-11-06 17:50:37 960

原创 操作系统知识点整理(持续更新)

基础概念操作系统的四个特性1. 并发: 同一时间间隔内支持执行多个任务, 对于一个核则是交替执行;2. 共享: 硬件资源或数据资源支持多个进程共享;3. 异步: 并发情况下, 一个程序会陆陆续续被执行,完成时间不可预知;4. 虚拟: 物理实体转化为逻辑实体,如虚拟内存。操作系统的基本功能1. CPU管理, 作业调度2. 存储管理, 数据存取3. 设备管理, 与外围设备交互4. 接

2017-11-06 10:58:35 9647 4

原创 ElasticSearch数据备份与恢复

ElasticSearch数据备份与恢复最近线上业务ES日志量过于庞大, 达到500亿条(约30TB)记录,需要对旧的索引进行归档处理。用scan和scroll的方式导出备份基本是不可能的了, 本文主要是记录(Ubuntu环境)通过sshfs共享文件系统来进行快照方式备份数据。 假设ES集群有三个节点:192.168.1.10192.168.1.11192.168.1.121. 创建共享目录

2017-10-31 11:20:46 12301 1

翻译 理解TCP/IP协议栈(1)

翻译自: https://www.cubrid.org/blog/understanding-tcp-ip-network-stack目前我们的internet服务都是基于TCP/IP来开发的, 无法想像没有TCP/IP的Internet会是什么样子. 因此无论是在逻辑调整, 故障排除,还是发现新技术方面, 理解网络中数据的传输原理会帮助我们多方面提高服务性能表现. 本文会介绍基于Linux系统及

2017-10-26 17:07:20 1990

翻译 [Linux]理解用户空间与内核空间

源文: http://learnlinuxconcepts.blogspot.com/2014/02/kernel-space-and-user-space.html理解用户空间及内核空间对于增强理解Linux内核知识是非常重要的。这里的用户空间及内核空间对应于虚拟地址空间.每个linux中的进程占用独立的虚拟空间.在32位架构linux系统中, 用户空间至少对应3GB虚拟空间, 而内核空间至

2017-10-25 14:33:34 1318

原创 [shell]curl结果获取http header的问题

在通过curl请求http获取response header时, 发现字符串拼接一个问题。 比如以下程序:hadoop@1:~$ ct=$(curl -s -I http://www.baidu.com | grep Content-Type | awk '{print $2}')hadoop@1:~$ echo $cttext/htmlhadoop@1:~$ echo $ct"_postf

2017-10-24 12:15:51 9302 4

原创 Spark Streaming从Flume读取数据流(pull模式)

1.jar包准备参考官方文档: http://spark.apache.org/docs/latest/streaming-flume-integration.html当前测试flume使用到的jar包版本如下:spark-streaming-flume-sink_2.11-2.2.0.jarscala-library-2.11.8.jarcommons-lang3-3.5.jar这几个jar包

2017-10-19 13:06:31 2309

原创 flume-kafka部署总结

部署准备配置日志收集系统(flume+kafka), 版本:apache-flume-1.8.0-bin.tar.gzkafka_2.11-0.10.2.0.tgz假设部署在三个工作节点的ubuntu系统环境中:192.168.0.2192.168.0.3192.168.0.4flume配置说明假设flume的工作目录在/usr/local/flume, 监测某日志文件(如/tmp/tes

2017-10-16 18:15:30 1168

原创 hadoop-spark错误问题总结(二)

1.Caused by: java.lang.NoClassDefFoundError: scala/collection/GenTraversableOnce$class具体错误日志:Caused by: java.lang.NoClassDefFoundError: scala/collection/GenTraversableOnce$class at org.elasticsearc

2017-10-16 14:48:13 5918 6

原创 shell批量对比不同host的目录文件

假设有一个数据集群, 每个集群的目录/data/下面有很多子目录, 子目录内包含很多文件; 每两个节点的/data/目录下所有文件理论上要保持一致(比如fastdfs的两副本模式)。现在需要快速的对每两台机器上的/data目录下的文件检测是否全部一致, 那么可以怎么做呢?一个思路是利用shell实现, 每次将两台机器上的文件全部扫描并排序到一个文件内, 然后拉取到本地上进行对比。具体示例代码(同

2017-09-28 19:23:20 689

原创 [golang]简单文件上传服务

利用net/http库及gorilla/mux库实现了一个简单的文件上传服务,示例如下:package mainimport ( "fmt" "github.com/gorilla/mux" "io" "net/http" "os")const uploadHTML = `<html> <head> <title>选择文件</titl

2017-09-11 09:29:03 3299

原创 python3 pika之连接断开问题

python3 pika库连接断开问题问题描述在消费rabbitMQ队列时, 每次进入回调函数内需要进行一些比较耗时的操作;操作完成后给rabbitMQ server发送ack信号以dequeue本条消息。问题就发生在发送ack操作时, 程序提示链接已被断开或socket error。源码示例#!/usr/bin#coding: utf-8import pikaimport timeUSER

2017-08-19 18:44:17 13977 7

原创 [golang]pprof性能分析工具

1. 关于pprofpprof是golang程序一个性能分析的工具,可以查看堆栈、cpu信息等。2. 源码示例package mainimport ( "flag" "log" "net/http" _ "net/http/pprof" "sync" "time")func Counter(wg *sync.WaitGroup) { time

2017-08-11 14:02:22 18336

原创 [python]map方法与并行执行

文章也可参考: 我的个人博客1. 内建方法map内建map方法可以通过一个序列的方式来实现函数之间的映射, 并且串行执行。如:import timefrom datetime import datetimedef add(x, y): print(datetime.now(), "enter add func...") time.sleep(2) print(datetim

2017-08-10 23:28:01 16409 1

原创 [mysql]python3实现并发访问水平切分表

场景说明假设有一个mysql表被水平切分,分散到多个host中,每个host拥有n个切分表。 如果需要并发去访问这些表,快速得到查询结果, 应该怎么做呢? 这里提供一种方案,利用python3的asyncio异步io库及aiomysql异步库去实现这个需求。代码演示import loggingimport randomimport asynciofrom aiomysql import c

2017-08-07 12:12:51 1780

原创 [golang]map/set类型

map类型1. 基础特性map是一种无序的键值对的集合; 所以可以类似数组/slice一样进行迭代map的值可以使内建类型, 也可以是struct类型内部使用hash表实现, map的hash表包含了一个collection of buckets(桶集合)2. 声明与初始化package mainimport ( "fmt")// map[keyType]valueTypefun

2017-08-07 11:07:49 2566

原创 [golang]array与slice

array类型1)基础特性array为固定长度的数组, 其内存分配为连续的, 使用前需确定长度;数组为值类型, 赋值操作的新变量是原数组的一份完整拷贝;作为函数的传递参数, 实际也是数组的一份拷贝, 效率也就比传递指针低;数组长度也是Type一部分, 如[4]int和[2]int类型不一样.2)声明与初始化package mainimport "fmt"// 只声明, 不作初始化var

2017-08-07 11:07:07 695

google_appengine_1.9.50.7z

app engine, 源码包,版本1.9.50 for python sdk。源地址googleapis。可用于搭建webRTC服务。通过grunt build可以完成编译。

2020-03-05

ArmorySDK2002.zip

经过数次下载失败后获取的ArmorySDK, 202002开源版本。亲测可用,支持Windows/Mac/Linux等平台,可直接作为blender的游戏引擎插件使用。

2020-03-02

google_appengine_1.9.40.tar.gz

代替: wget https://storage.googleapis.com/appengine-sdks/featured/google_appengine_1.9.40.zip # 解压google_appengine_1.9.40.tar.gz tar -zxf google_appengine_1.9.40.tar.gz

2019-07-25

springboot+redis共享session(Demo)

基于maven构建的springboot工程,结合redis实现session共享的源码

2018-09-18

互联网开发职位技能图谱

开发职位技能图谱描述: 含C++/Golang/视频编解码/数据分析等。

2017-10-18

booststrap示例

8个booststrap示例整合 源码基本源自官方 maven工程 欢迎下载参考

2013-05-04

win8应用开发指南(Metro Revealed Building Windows 8 apps with XAML and C#)

英文原版 Metro Revealed Building Windows 8 apps with XAML and C# 内容详细和源码示例 高清pdf

2013-01-05

XNA_4.0_学习指南

XNA_4.0_学习指南 中文版 内容齐全 pdf格式 排版整齐 接近高清

2012-09-25

Linux内核设计的艺术(新设计团队)

Linux内核设计的艺术:图解Linux操作系统架构设计与实现原理 重点是图解,更容易理解书本所讲述的内容 此资料仅包含第一章和第四章

2012-06-10

五子棋(c#源码程序)

人机对战五子棋 人工智能 c#实现 界面简约清新

2012-05-18

敏捷开发技巧

第一章 移除重复代码 第二章 将注释转换为代码 第三章 除去代码异味 第四章 保持代码简洁 第五章 慎用继承 第六章 处理不合适的依赖 第七章 将数据库访问,UI和域逻辑分离 第八章 以用户例事管理项目 第九章 用CRC卡协助设计 第十章 验收测试 第十一章 对UI进行验收测试 第十二章 单元测试 第十三章 测试驱动编程 第十四章 结对编程

2012-03-27

一起学windowsphone7系列教程

一起学windowsphone7系列教程 本资料包含前4章教程

2012-02-07

Ice3.4.2_Manual

Ice分布式程序设计 网络通信架构 服务器应用部署 一步程序 多线程与并发 Ice信号处理 Ice Run Time

2011-09-26

Ice-3.4.2_Manual

Ice分布式程序设计,网络通信架构,异步程序设计,多线程,Slice规范语言,服务器应用部署

2011-09-26

C#.net 人事管理系统

首先配置好数据库的表,在MS Server管理器中附加数据库 然后在工程中修改Web.config文件中的数据库登录名 工程在vs2008及更新版本打开。

2011-05-25

flash cs5 与as3制作的仿雷电小游戏

flash cs5 与as3制作的仿雷电小游戏 flash cs5 与as3制作的仿雷电小游戏

2011-05-25

菜单栏图标,工具栏图标icons

菜单icon,各种icon图标,菜单icon,各种icon图标

2011-05-25

空空如也

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

TA关注的人

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