- 博客(24)
- 资源 (11)
- 收藏
- 关注
原创 数组排序使得数组负数在正数左边且按照原来的顺序
假设一整型数组存在若干正数和负数,现在通过某种算法使得该数组的所有负数在正数的左边,且保证负数件和正数间元素相对位置不变。时空复杂度要求分别为:o(n),o(1)例如 -3 4 2 -1 7 3 -5排序后 -3 -1 -5 4 2 7 3算法思想:从前往后遍历,记录第一个正数的位置,如果遇到负数就将负数插入到正数前面。Go算法如下:funcsort...
2020-03-12 00:45:03 1424 1
原创 Docker Stack 部署yunbay后台项目
一、项目用到nsqd分布式消息服务nsqdnsqlookupdnsqadmindocker nsq-compose.yml文件如下:version: "3.2"services: # 唯一性,在集群中的节点只能指向唯一的nsqlookupd服务 # 去中心化,即使nsqlookupd崩溃,也会不影响正在运行的nsqd服务 # 充当nsqd和naqad...
2019-12-11 18:10:33 240
原创 Docker Stack部署NSQ实时分布式消息集群
Docker搭建NSQ实时分布式消息集群NSQ是一个基于Go语言的分布式实时消息平台,它基于MIT开源协议发布,代码托管在GitHub。NSQ可用于大规模系统中的实时消息服务,并且每天能够处理数亿级别的消息,其设计目标是为在分布式环境下运行的去中心化服务提供一个强大的基础架构。NSQ具有分布式、去中心化的拓扑结构,该结构具有无单点故障、故障容错、高可用性以及能够保证消息的可靠传递的特征。NS...
2019-12-11 16:44:38 479 1
原创 docker-compose-volumes的说明
docker-compose里两种设置方式都是可以持久化的绝对路径,本服务直接挂载在宿主机目录ghost: image: ghost volumes: - ./ghost/config.js:/var/lib/ghost/config.js卷标的services: mysql: image: mysql container_name: my...
2019-12-11 16:03:13 770
转载 基于docker部署etcd集群部署
目录一 环境准备 二 docker etcd集群部署 2.1 安装docker 2.2 etcd基础配置 2.3 启动docker etcd集群 2.4 确认验证 回到顶部一 环境准备ntp配置:略 #建议配置ntp服务,保证时间一致性etcd版本:v3.3.9防火墙及SELinux:关闭防火墙和SELinux 名称 地...
2019-12-10 11:25:48 642
原创 手把手带你理解 etcd
导读:etcd是用于共享配置和服务发现的分布式、一致性的 KV 存储系统。本文从 etcd 项目发展所经历的几个重要时刻开始,为大家介绍了 etcd 的总体架构及其设计中的基本原理。希望能够帮助大家更好的理解和使用 etcd。etcd 项目的发展历程etcd 诞生于 CoreOS 公司,它最初是用于解决集群管理系统中 OS 升级的分布式并发控制以及配置文件的存储与分发等问...
2019-12-10 10:19:36 369
原创 Go 教程:使用 GO-KIT 来构建微服务(上)
微服务是软件架构领域目前最流行的术语之一。对于『微服务』一词,有许多不同的解释,我想说的是,微服务是单个程序员可以设计、实现、部署和维护的应用程序。在一个整体应用程序中,组件通过语言级的方法或函数彼此调用。相反,基于微服务的应用程序是运行在多台机器上的分布式系统。每个服务实例是不同的进程。因此,这些服务必须使用进程间通讯进行交互。服务间通信最简单的解决方案是基于 HTTP 协议使用 J...
2019-12-09 10:20:50 1292
转载 Docker Swarm 使用NFS数据共享
主要解决在集群中不同主机之间的容器数据共享,当前以单主机的nfs为例,你也可以搭建分布式文件系统docker swarm 集群的搭建请看前面的文章Docker Swarm集成搭建1. 搭建nfscentos 7 系统1.1. 安装yum -y install nfs-utils rpcbind1.2. 配置文件nfs 的配置文件 /etc/expots共享目录赋予...
2019-12-03 17:56:51 1319
原创 如何使用docker compose v3直接在容器中挂载NFS共享/卷
我有一个v3的撰写文件,其中有3个服务共享/使用相同的卷.在使用swarm模式时,我们需要创建额外的容器和放大器.卷来管理整个群集中的服务.我打算使用NFS服务器,以便将单个NFS共享直接挂载到群集中的所有主机上.我在下面找到了两种方法,但它需要在docker主机上执行额外的步骤 –>在主机上使用“fstab”或“mount”命令挂载NFS共享.然后将其用作docker服务...
2019-12-03 14:40:27 3899 1
原创 使用Golang程序创建Docker镜像
GOLANG应用打包成DOCKER镜像 golang编译的应用是不需要依赖其他运行环境的,那么为什么还需要打包成docker镜像呢?当需要附带配置和日志等文件时可以更方便的移植和运行,下面介绍从dockerfile编译成镜像。在项目根目录新建Dockerfile,内容如下:FROM alpine:latest #基于的镜像不是golang(733M...
2019-11-27 11:51:15 809
转载 服务端高并发分布式架构演进之路
1. 概述本文以淘宝作为例子,介绍从一百个并发到千万级并发情况下服务端的架构的演进过程,同时列举出每个演进阶段会遇到的相关技术,让大家对架构的演进有一个整体的认知,文章最后汇总了一些架构设计的原则。2. 基本概念在介绍架构之前,为了避免部分读者对架构设计中的一些概念不了解,下面对几个最基础的概念进行介绍: 分布式 系统中的多个模块在不同服务器上部署,即可称为分...
2019-06-19 15:49:06 120
转载 同步IO、异步IO、阻塞IO、非阻塞IO之间的联系与区别
同步IO、异步IO、阻塞IO、非阻塞IO之间的联系与区别POSIX同步IO、异步IO、阻塞IO、非阻塞IO,这几个词常见于各种各样的与网络相关的文章之中,往往不同上下文中它们的意思是不一样的,以致于我在很长一段时间对此感到困惑,所以想写一篇文章整理一下。POSIX(可移植操作系统接口)把同步IO操作定义为导致进程阻塞直到IO完成的操作,反之则是异步IO按POSIX的描述似乎把同步...
2019-03-04 18:29:06 249
原创 TCP三次握手第三次握手时ACK丢失怎么办
如果此时ACK在网络中丢失,那么Server端该TCP连接的状态为SYN_RECV,并且依次等待3秒、6秒、12秒后重新发送SYN+ACK包,以便Client重新发送ACK包。Server重发SYN+ACK包的次数,可以通过设置/proc/sys/net/ipv4/tcp_synack_retries修改,默认值为5。 如果重发指定次数后,仍然未收到ACK应答,那么一段时间后,Server自动...
2019-02-13 10:46:55 1660 1
原创 postgres 分组排序获取前几条
ROW_NUMBER() OVER()函数用法;(分组,排序),partition by1、row_number() over()排序功能:(1) row_number() over()分组排序功能: 在使用 row_number() over()函数时候,over()里头的分组以及排序的执行晚于 where group by order by 的执行。partition by 用于给结...
2018-06-30 18:16:26 10302
转载 Golang Go语言结构体中匿名字段暴露方法的优先级
Golang Go语言结构体中匿名字段暴露方法的优先级Go语言的结构体中可以包含匿名的字段,比如:struct { T1 // 字段名自动为 T1 *T2 // 字段名自动为 T2 P.T3 // 字段名自动为 T3 *P.T4 // 字段名自动为 T4 x, yint // 非匿名字段 x , y}如果构体 S,包含...
2018-06-23 15:17:03 706
转载 Go语言中的Array、Slice、Map和Set使用详解
Array(数组)内部机制在 Go 语言中数组是固定长度的数据类型,它包含相同类型的连续的元素,这些元素可以是内建类型,像数字和字符串,也可以是结构类型,元素可以通过唯一的索引值访问,从 0 开始。数组是很有价值的数据结构,因为它的内存分配是连续的,内存连续意味着可是让它在 CPU 缓存中待更久,所以迭代数组和移动元素都会非常迅速。数组声明和初始化通过指定数据类型和元素个数(数组长度)来声明数组。...
2018-05-24 16:26:04 6597
转载 TCP的三次握手(建立连接)和四次挥手(关闭连接)
TCP的三次握手(建立连接)和四次挥手(关闭连接)参照:http://course.ccniit.com/CSTD/Linux/reference/files/018.PDFhttp://hi.baidu.com/raycomer/item/944d23d9b502d13be3108f61 建立连接: 理解:窗口和滑动窗口TCP的流量控制TCP使用窗口机制进行流
2018-02-02 19:23:01 387
转载 Windows消息机制
摘要:Windows编程和Dos编程,一个很大的区别就是,Windows编程是事件驱动,消息传递的。所以,要学好Windows编程,必须对消息机制有一个清楚的认识,本文希望能够对消息的传递做一个全面的分析。 什么是消息? 消息系统对于一个win32程序来说十分重要,它是一个程序运行的动力源泉。一个消息,是系统定义的一个32位的值,他唯一的定义了一个事件,向Win
2014-05-15 11:48:55 146
转载 常对象与常成员函数的关系
(1) 常对象 用const修饰的对象叫对象常量,其格式如下: 〈类名〉const 〈对象名〉 或者 const 〈类名〉〈对象名〉 声明为常对象的同时必须被初始化,并从此不能改写对象的数据成员。 例:分析下列错误的地方,说明理由;#includeclass Point{ int x, y;public:
2014-04-04 15:18:32 266
原创 VC操作Windows快捷方式(自己总结)
二个操作:新建和解析主要用到的是COM组件。IShellLink和IPersistFile需要添加的头函数shobjidl.hIPersistFile主要用到两个成员函数:1、Save。保存内容到文件中去2、Load。读取 Load的函数原型 HRESULT Load( LPCOLSTR pszFileName, //快捷方式的文件名,应该是
2014-03-26 13:33:11 255
转载 【STL】list基础
各个容器有很多的相似性。先学好一个,其它的就好办了。先从基础开始。先看看他们的分类吧标准STL序列容器:vector、string、deque和list。 标准STL关联容器:set、multiset、map和multimap。 非标准序列容器slist和rope。slist是一个单向链表,rope本质上是一个重型字符串。非标准关联容器hash_set、hash_multiset、
2014-03-21 11:09:40 163
转载 VC多线程编程
m_dlg.Create(IDD_UITHREADDLG); m_dlg.ShowWindow(SW_SHOW); m_pMainWnd=&m_dlg; return TRUE;}int CUIThread::ExitInstance(){ m_dlg.DestroyWindow(); return CWinThread::ExitInstance();}双击按钮IDC_UI_THREA
2009-10-03 09:01:00 191
原创 VC++遍历整个目录树查找文件
在应用程序的开发过程中,经常会遇到如何查找某一文件以确定此文件路径问题。利用CFileFind类可以比较方便地在当前目录下进行文件查找,但却不能对其子目录中的文件进行搜寻。而实际应用中往往需要对某一整个目录树,甚至是整个C盘或D盘驱动器进行文件搜寻。通过实践,我们在Visual C++ 6.0中编程实现了如何遍历任意目录树,以查找某一特定的文件。 在下面的具体陈述中可以看到,在确定要查找的
2009-05-18 20:31:00 548
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人