Qt学习资料大全
Qt学习资料大全简述为了方便更多Qter了解、学习Qt,现将相关资源进行整理,主要内容包括:Qt官网、编码风格、GitHub & Third-Party、社区论坛、博客、书籍等。 Qt官网 Qt官网:https://www.qt.io Qt下载:http://www.qt.io/download Qt所有下载:http://download.qt.io/archive/qt Qt官方发布下载:http://download.qt.io/official_releases/qt Open Source下载:http://www.qt.io/download-open-source/#section-2 Qt WiKi:https://wiki.qt.io/Main_Page 编码风格 Qt Coding Style http://wiki.qt.io/Qt_Coding_Style(low-level) http://wiki.qt.io/Coding_Conventions( higher-level ) Google开源项目风格指南 http://zh-goo...
Qt Active Server的注册
Qt Active Server的注册对于Qt开发Active Server需要使用MSVC版Qt。mingw版无法用于开发Active Sever,只能通过Qt Active调用COM组件。 idc工具:D:\Qt\Qt5.5.1\5.5\msvc2013\bin 1234567#注册idc.exe multipleax.dll /regserveridc.exe multipleax.dll -regserver#反注册idc.exe multipleax.dll /unregserveridc.exe multipleax.dll -unregserver 通过Qt Active Server,可以通过浏览器来显示应用,效果就像一个web应用。Active server可以编译成dll或exe的形式。 要为每个COM类提供属性,请使用Q_CLASSINFO宏,它是Qt的元对象系统的一部分。 Key Meaning of value Version 类的版本号,默认值是1.0 Description 类的描述 ClassID 类的ID(COM中用来...
golang版PureMvc框架
golang版PureMvc框架重点PureMVC框架的目标很明确,即把程序分为低耦合的三层:Model、View和Controller。它们合称为PureMVC框架的核心,由Facade统一管理。关于它的核心层,我们不需要管太多,只需要记得下面几点就可以了: 一、Model保存对Proxy对象的引用,Proxy负责操作数据模型,与远程服务通信存取数据。 二、View保存对Mediator对象的引用。由Mediator对象来操作具体的视图组件(View Component,例如Flex的DataGrid组件),包括:添加事件监听器,发送或接收Notification ,直接改变视图组件的状态。 三、Controller保存所有Command的映射。Command可以获取Proxy对象并与之交互,通过发送Notification来执行其他的Command。 上面的什么对什么的引用,可以一开始看的时候很难理解,我们暂时不用管它谁对谁的引用的。这些已经由框架为我们管理好了,我们要所要做的是编写具体的Command,Mediator,Proxy。 一、Proxy是负责操作数...
protobuf编译插件调用规则
要让protoc使用插件,需要做下面事情: Place the plugin binary somewhere in the PATH and give it the name "protoc-gen-NAME" (replacing "NAME" with the name of your plugin). If you then invoke protoc with the parameter –NAME_out=OUT_DIR (again, replace "NAME" with your plugin's name), protoc will invoke your plugin to generate the output, which will be placed in OUT_DIR. Place the plugin binary anywhere, with any name, and pass the –plugin parameter to protoc to direct i...
Golang中使用protobuf高效编码
Golang中使用protobuf高效编码Protocol Buffers 是Google推出的一种数据交换格式。二进制、高性能、跨平台、跨编程语言。很适合现在分布式、微服务中结合消息总线做高性能数据交换。 定义 *.proto1234567891011121314151617181920212223242526syntax = "proto3";package tutorial;message Person { string name = 1; int32 id = 2; // Unique ID number for this person. string email = 3; enum PhoneType { MOBILE = 0; HOME = 1; WORK = 2; } message PhoneNumber { string number = 1; PhoneType type = 2; } repeated PhoneNumber phones ...
proto3与proto2的区别
这是一篇学习笔记。在粗略的看了 Protobuf 的文档中关于 proto2 和 proto3 的说明后,记录下了几点 proto3 区别于 proto2 的地方。 总的来说,proto3 比 proto2 支持更多语言但 更简洁。去掉了一些复杂的语法和特性,更强调约定而弱化语法。如果是首次使用 Protobuf ,建议使用 proto3 。 在第一行非空白非注释行,必须写: syntax = "proto3"; 字段规则移除了 “required”,并把 “optional” 改名为 “singular”1; 在 proto2 中 required 也是不推荐使用的。proto3 直接从语法层面上移除了 required 规则。其实可以做的更彻底,把所有字段规则描述都撤销,原来的 repeated 改为在类型或字段名后加一对中括号。这样是不是更简洁? “repeated”字段默认采用 packed 编码; 在 proto2 中,需要明确使用 [packed=true] 来为字段指定比较紧凑的 packed 编码方式。 语言增加 Go、Ru...
Protobuf语言指南(proto3)
Protobuf 语言指南(proto 3)这个指南描述了如何使用Protocol buffer 语言去描述你的protocol buffer 数据, 包括 .proto文件符号和如何从.proto文件生成类。 这是一个参考指南——对于使用本文档中描述的许多功能的分步示例。 定义一个消息类型先来看一个非常简单的例子。假设你想定义一个“搜索请求”的消息格式,每一个请求含有一个查询字符串、你感兴趣的查询结果所在的页数,以及每一页多少条查询结果。可以采用如下的方式来定义消息类型的.proto文件了: 123456syntax = "proto3";message SearchRequest { string query = 1; int32 page_number = 2; int32 result_per_page = 3;} 文件的第一行指定了你正在使用proto3语法:如果你没有指定这个,编译器会使用proto2。这个指定语法行必须是文件的非空非注释的第一个行。 SearchRequest消息格式有3个字段,在消息中...
临时记录
Go标准库所有方法使用示例,请注意这不是Go的中文版标准库(内含传送门),持续更新examplehttps://github.com/zc2638/go-standard 模拟浏览器登录操作https://studygolang.com/topics/900?fr=sidebar 微服务https://studygolang.com/articles/13061?fr=sidebar https://ewanvalentine.io/tag/go/ https://download.docker.com/win/stable/Docker%20for%20Windows%20Installer.exe https://www.cnblogs.com/52php/p/6060104.html GO项目收藏 go-micro https://github.com/micro-in-cn/all-in-one micro 特性全合一项目示例https://github.com/micro-in-cn/tutorials Micro教程系列 https://www.wangtian...
常用网址
vite vitepress vue3.0 vuex vuerouter typescript flutter dart k8s docker drone argo go html5 css javascript electron java springboot redis mq nats etcd nsq http://www.bejson.com/ 在线工具 json解析 base64编解码等等...https://unbug.github.io/codelf/ 变量命名http://www.php.cn/ 在线文档 https://www.bookstack.cn/ https://learngitbranching.js.org/?demo Git分支练习 https://down.52pojie.cn/Tools/ 吾爱破解工具 http://www.riaway.com/zb/ 装逼工具 https://curl.haxx.se/docs/caextract.html 证书 [web工具]https://w...
nsq实例
nsq实例1234567nsqlookupdnsqd --lookupd-tcp-address=0.0.0.0:4160 -tcp-address="0.0.0.0:4153" --data-path=./data1 >./log/nsqd1.log 2>&1 &nsqd --lookupd-tcp-address=0.0.0.0:4160 -tcp-address="0.0.0.0:4154" --data-path=./data2 -http-address="0.0.0.0:4155" >./log/nsqd2.log 2>&1 &nsqadmin --lookupd-http-address=127.0.0.1:4161 >./log/nsqadmin.log 2>&1 & 创建Producer123456789101112131415161718192021222324252627282930313233343536pa...
nsq介绍
nsq介绍nsq 是一个基于 Go 语言的分布式实时消息平台,nsq 可用于大规模系统中的实时消息服务,并且每天能够处理数亿级别的消息,其设计目标是为在分布式环境下运行的去中心化服务提供一个强大的基础架构。 nsq 具有分布式、去中心化的拓扑结构,该结构具有无单点故障、故障容错、高可用性以及能够保证消息的可靠传递的特征。NSQ 非常容易配置和部署,且具有最大的灵活性,支持众多消息协议。另外,官方还提供了拆箱即用 Go 和 Python 库。如果读者兴趣构建自己的客户端的话,还可以参考官方提供的协议规范。 nsq 是由四个重要组件构成: nsqd:一个负责接收、排队、转发消息到客户端的守护进程 nsqlookupd:管理拓扑信息并提供最终一致性的发现服务的守护进程 nsqadmin:一套 Web 用户界面,可实时查看集群的统计数据和执行各种各样的管理任务 utilities:常见基础功能、数据流处理工具,如 nsq_stat、nsq_tail、nsq_to_file、nsq_to_http、nsq_to_nsq、to_nsq nsq 的主要特点如下: 具有分布式且...
nsq多播分发和负载均衡实验
nsq多播分发和负载均衡实验实验nsq多播分发1.在第一个shell中,启动nsqlookupd 1$ nsqlookupd 2.在第二个shell中,启动nsqd 1$ nsqd --lookupd-tcp-address=127.0.0.1:4160 3.在第三个shell中,启动nsqadmin 1$ nsqadmin --lookupd-http-address=127.0.0.1:4161 4.在第四个shell中,发布第一个消息(同时创建topic) 1$ curl -d 'hello world 1' 'http://127.0.0.1:4151/pub?topic=test' 注意:在这一步中,可以指定channel的值,但是消息依然会发送给所有订阅topic的消费者。 5.在第五个shell中,使用nsq_to_file启动一个client来接收消息(消息存储目录为/tmp/nsq1) 1$ nsq_to_file --topic=test --channel=ch_test1 --...
NSQ部署
NSQ部署安装Binary Releases为 linux 和 darwin 预编译二进制文件 (nsqd, nsqlookupd, nsqadmin, 以及所有的例子应用),可用来下载。 当前稳定 Release 版本: v0.3.5 nsq-0.3.5.darwin-amd64.go1.4.2.tar.gz nsq-0.3.5.linux-amd64.go1.4.2.tar.gz 老的稳定 Release 版本 nsq-0.3.2.darwin-amd64.go1.4.1.tar.gz nsq-0.3.2.linux-amd64.go1.4.1.tar.gz nsq-0.3.1.darwin-amd64.go1.4.1.tar.gz nsq-0.3.1.linux-amd64.go1.4.1.tar.gz nsq-0.3.0.darwin-amd64.go1.3.3.tar.gz nsq-0.3.0.linux-amd64.go1.3.3.tar.gz nsq-0.2.31.darwin-amd64.go1.3.1.tar.gz nsq-0.2.31.linux-amd...
NSQ客户端
NSQ客户端TCP 协议规范NSQ 协议足够简单,用任何语言编译客户端都很容易。我们提供官方的 Go 和 Python 客户端库。 nsqd 进程通过监听配置的 TCP 端口来接受客户端连接。 连接后,客户端必须发送一个 4 字节的 "magic" 标识码,表示通讯协议的版本。 V2 (4 个字节的 ASCII [space][space][V][2]) 消费用到的推送流协议(和发布用到的请求/响应协议) 认证后,客户端可以发送 IDENTIFY 命令来停供常用的元数据(比如,更多的描述标识码)和协商特性。为了消费消息,客户端必须 SUB 到一个通道(channel)。 订阅的时候,客户端的 RDY 状态为 0。意味着没有消息会被发送到客户端。当客户端已经准备好接受消息时,需要把 RDY 设置为 #。比如设置为 100,不需要任何附加命令,将会有 100 条消息推送到客户端(每次服务端都会相应的减少 RDY 的值)。 V2 版本的协议让客户端拥有心跳功能。每隔 30 秒(默认设置),nsqd 将会发送一个 _heartbeat_ 响应,并期待返...
NSQ组件
NSQ组件nsqdnsqd 是一个守护进程,负责接收,排队,投递消息给客户端。 它可以独立运行,不过通常它是由 nsqlookupd 实例所在集群配置的(它在这能声明 topics 和 channels,以便大家能找到)。 它在 2 个 TCP 端口监听,一个给客户端,另一个是 HTTP API。同时,它也能在第三个端口监听 HTTPS。 命令行选项123456789101112131415161718192021222324252627282930313233343536373839-auth-http-address=: <addr>:<port> 查询授权服务器 (可能会给多次)-broadcast-address="": 通过 lookupd 注册的地址(默认名是 OS)-config="": 配置文件路径-data-path="": 缓存消息的磁盘路径-deflate=true: 运行协商压缩特性(客户端压缩)-e2e-processing-latency-percentile=:...
NSQ概述
NSQ概述快速开始下面的步骤将通过推送(publishing)、消费(consuming)和归档(archiving)消息到本地磁盘,在本地环境演示一个小型的 NSQ 集群 根据文档安装安装 NSQ。 在另外一个 shell 中,运行 nsqlookupd: 1$ nsqlookupd 再开启一个 shell,运行 nsqd: 1$ nsqd --lookupd-tcp-address=127.0.0.1:4160 再开启第三个 shell,运行 nsqadmin: 1$ nsqadmin --lookupd-http-address=127.0.0.1:4161 开启第四个 shell,推送一条初始化数据(并且在集群中创建一个 topic): 1$ curl -d 'hello world 1' 'http://127.0.0.1:4151/put?topic=test' 最后,开启第五个 shell, 运行 nsq_to_file: 1$ nsq_to_file --topic=test --output-dir=/tmp...
NATS与NSQ的介绍和比较
轻量消息中间件NATS与NSQ的介绍和比较NATS1. 语言server:GO官方支持client库:GO、C等 2. 设计特点高效稳定可用轻量支持多种消息策略(at-most-once,at-least-once)支持多种模式streaming下提供可配置的消息持久化 3. 多种消息发布模式生产-消费(发布-订阅)模式 一对多两种策略:at-most-once(只保证w/tcp的可靠性):消息无接受者时,则该消息丢失。即消息发送后不关心是否有接收。该策略以降低可靠性换取了性能(吞吐量)。可靠性由使用者自行设计保证。at-least-once:在消息可靠性要求更高的场合,使用nats streaming。监控消息是否到达每一个订阅者。降低性能(吞吐量)换取可靠性。 请求-响应模式 点对点/一对多。发布者发布消息需要收到响应。接受者可提前将响应放入“信箱”中。发布者只接收第一个响应。(如何配置一对多模型接收多个响应?) 队列订阅与协同工作 订阅的不是主题,而是队列。是一种负载均衡和容灾策略。队列中每个消息,随机发给一个订阅者。订阅者数量可随时增减。 (具体如何...
NATS和NATS Streaming
NATS和NATS StreamingNATS源码安装 12345# Go clientgo get github.com/nats-io/nats.go/# Servergo get github.com/nats-io/nats-server 二进制:https://nats.io/download/nats-io/gnatsd/ When using or transitioning to Go modules support: 123456789# Go client latest or explicit versiongo get github.com/nats-io/nats.go/@latestgo get github.com/nats-io/nats.go/@v1.9.1# For latest NATS Server, add /v2 at the endgo get github.com/nats-io/nats-server/v2# NATS Server v1 is installed otherwise# go get github.com/nat...
NATS Streaming
NATS StreamingNATS Streaming 概念NATS Streaming是一个由NATS驱动的数据流系统,用Go编程语言编写。 NATS Streaming服务器的可执行文件名是nats-streaming-server。 NATS Streaming与核心NATS平台无缝嵌入,扩展和互操作。 NATS Streaming服务器作为Apache-2.0许可下的开源软件提供。 Synadia积极维护和支持NATS Streaming服务器。 特点除了核心NATS平台的功能外,NATS Streaming还提供以下功能: 增强的消息协议 - NATS Streaming使用谷歌协议缓冲区实现自己的增强型消息格式。这些消息通过二进制数据流在NATS核心平台进行传播,因此不需要改变NATS的基本协议。NATS Streaming信息包含以下字段: 序列 - 一个全局顺序序列号为主题的通道 - 主题 - 是NATS Streaming 交付对象 - 答复内容 - 对应"reply-to"对应的对象内容 - 数据 - 真是数据内容 - 时间戳...