谷歌出品
他是一种与语言无关、与平台无关,是一种可扩展的用于序列化和结构化数据的方法,常用于用于通信协议,数据存储等。
他是一种灵活,高效,自动化的机制,用于序列化结构化数据,对比于 XML,他更小(310倍),更快(20100倍),更简单。
当然,最简单粗暴的理解方式,就是结合 JSON 和 XML 来理解,你可以暂时将他们仨理解成同一种类型的事物,但是呢,Protobuf 对比于他们两个,拥有着体量更小,解析速度更快的优势,所以,在 IM 这种通信应用中,非常适合将 Protobuf 作为数据传输格式。
Protobuf 有两个大版本,proto2 和 proto3,同比 python 的 2.x 和 3.x 版本,如果是新接触的话,同样建议直接入手 proto3 版本。所以下文的描述都是基于 proto3 的。
proto3 相对 proto2 而言,简言之就是支持更多的语言(Ruby、C#等)、删除了一些复杂的语法和特性、引入了更多的约定等。
为什么要关注语言,因为它不像 JSON 一样开箱即用,它依赖工具包来进行编译成 java 文件或 go 文件等。
正如硬币的两面性一样,凡事皆有双面性,Protobuf 数据的体量更小,所以自然失去了人类的直接可读性, JSON 数据结构是可以很直观地阅读的,但是 Protobuf 我们需要借助工具来进行更友好地使用,所以,我们需要自定义一个 schema 来定义数据结构的描述,即下面的 message。
Message
举个很简单的栗子,摘自官网:
syntax = “proto3”; // proto3 必须加此注解
message SearchRequest {
string query = 1;
int32 page_number = 2;
int32 result_per_page = 3;
enum Corpus {
UNIVERSAL = 0;
WEB = 1;
IMAGES = 2;
LOCAL = 3;
NEWS = 4;
PRODUCTS = 5;
VIDEO = 6;
}
Corpus corpus = 4;
}
上面便是定义好的一个 message,里面包含:
String 类型的 query,编号是 1 (注:字段必须有编号且编号不允许重复)
int 类型的 page_number,编号是 2
枚举类型的 corpus (注:枚举内部的编号也不允许重复,并且第一个编号必须为0)
ps:gzip也可压缩,不止可以用于网页
Pika是一个可持久化的大容量redis存储服务,兼容string、hash、list、zset、set的绝大部分接口(兼容详情),解决redis由于存储数据量巨大而导致内存不够用的容量瓶颈,并且可以像redis一样,通过slaveof命令进行主从备份,支持全同步和部分同步,pika还可以用在twemproxy或者codis中来实现静态数据分片
pika 是360公司开发的类redis 存储系统, 完全支持Redis协议,用户不需要修改任何代码, 就可以将服务迁移至pika. 有维护redis 经验的DBA 维护pika 不需要学习成本
pika 主要解决的是用户使用redis的内存大小超过50G, 80G 等等这样的情况, 会遇到比如启动恢复时间长, 一主多从代价大, 硬件成本贵, 缓冲区容易写满等等问题. pika 就下针对这些场景的一个解决方案
ORM 是 Object Relational Mapping 的缩写,译为“对象关系映射”框架。
所谓的 ORM 框架就是一种为了解决面向对象与关系型数据库中数据类型不匹配的技术,它通过描述 Java 对象与数据库表之间的映射关系,自动将 Java 应用程序中的对象持久化到关系型数据库的表中。
ORM 框架是一种数据持久化技术,即在对象模型和关系型数据库之间建立起对应关系,并且提供一种机制,可通过 JavaBean 对象操作数据库表中的数据,如图1所示。
当前 Java ORM 框架产品有很多,常见的框架有 Hibernate 和 MyBatis,其主要区别如下。
NSQ是Go语言编写的一个开源的实时分布式内存消息队列,其性能十分优异。
https://www.cnblogs.com/you-men/p/13884645.html
很多英特尔的U支持aes指令集 从而aes加密很快
最近有同事有个针对php-fpm进程的监护需求,也即:如果php-fpm的master进程意外退出(可能是crash,也可能是被误kill),那么希望master进程能被自动拉起,以免中断服务。或者消费进程 可以防止挂掉
Supervisor是用Python开发的一个client/server服务,是Linux/Unix系统下的一个进程管理工具,不支持Windows系统。它可以很方便的监听、启动、停止、重启一个或多个进程。用Supervisor管理的进程,当一个进程意外被杀死,supervisort监听到进程死后,会自动将它重新拉起,很方便的做到进程自动恢复的功能,不再需要自己写shell脚本来控制。
Supervisor是一个进程管理工具,当进程中断的时候Supervisor能自动重新启动它。可以运行在各种类unix的机器上,supervisor就是用Python开发的一套通用的进程管理程序,能将一个普通的命令行进程变为后台daemon,并监控进程状态,异常退出时能自动重启。
supervisorctl
是命令行管理工具,可以用来执行 stop、start、restart 等命令,来对这些子进程进行管理。
似乎是多端统一的
作者:柳风
链接:https://www.zhihu.com/question/264999651/answer/741654058
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
QT C++是一个神奇的存在!我相信现在有非常多的跨平台Desktop Application是基于QT编写的,它不仅能够保证跨平台,而且能够将运行效率最大化。QT最近在跟车企进行合作,很多监控设备的图形化展示,甚至是试验车内部的液晶仪表盘上都使用QT进行开发的,QT最大的优势就是跨平台!高效率!但是与Objective-C一样,CPP如同一座小山横在了众多server side程序员的面前,如果没有CPP这道小山横贯在前,我认为QT是最好的Desktop Application特别是嵌入式终端的UI开发框架。
QT另外有一个优势在于,它在UI上似乎要比之前几位要方便一些,在它的QML中甚至可以直接使用JavaScript(当然,Java也内置了JS引擎),同时QT中也包含了大量的标准CSS样式表可以使用。虽然这些特性在其他的语言中也有,例如WPF等,但是QT在保证效率的前提下还能做到跨平台就显得弥足珍贵了!所以,如果希望自己从事真正意义上的Desktop Application development,QT绝对值得你去学习。QT有可视化编辑器,但是相比较而言,可能略强于NetBeans的Swing,但是跟VS比起来还是差太远了,不过大多是实际开发都是基于代码的,倒也无所谓。聊胜于无吧。
用js html 写windows客户端界面 vscode就是用这个写出来的
nodejs
但是不适合写太复杂的,比如
可以实现电脑远程开机
http://www.ruanyifeng.com/blog/2019/02/orm-tutorial.html
filebeat是用于“转发”和“集中日志数据”的“轻量型数据采集器”。Filebeat监视您指定的日志文件路径,收集日志事件并将数据转发到Elastics.
“对大数据性能很快的mysql”,兼容sql语法 并可从hive、mysql、kafka等导入数据
大数据分析引擎 适用于
应用场景
OLAP多维分析
用户行为分析
用户画像、标签分析、圈人
高维业务指标报表
自助式报表平台
业务问题探查分析
跨主题业务分析
财务报表
系统监控分析
实时数据分析
电商大促数据分析
教育行业的直播质量分析
物流行业的运单分析
金融行业绩效分析、指标计算
广告投放分析
管理驾驶舱
探针分析APM(Application Performance Management)
高并发查询
广告主报表分析
零售行业渠道人员分析
SaaS行业面向用户分析报表
Dashbroad多页面分析
统一分析
通过使用一套系统解决多维分析、高并发查询、预计算、实时分析、Adhoc查询等场景,降低系统复杂度和多技术栈开发与维护成本。
————————————————
版权声明:本文为CSDN博主「BigDataMK」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/flyinthesky111/article/details/124407888
可以对系统性能监控 ,也可对业务监控,比如订阅公众号数量等等场景
https://zhuanlan.zhihu.com/p/98135840
十分钟搞懂WebAssembly https://www.jianshu.com/p/e4d002780cf8
WASM支持将C/C++/Go/Rust等语言实现的代码编译为浏览器可执行的机器码,从而支持浏览器以接近原生应用的性能运行相关应用。在边缘计算领域,WASM也在尝试建立自己的用例,为边缘应用提供统一的运行环境
WebAssembly于2015年首次发布,第一次演示是在Firefox、Chrome和Edge上执行Unity的Angry Bots游戏。但仅仅过了4年,它就成为了官方标准,是继HTML、CSS和JavaScript之后的第四种Web语言。到目前为止,94%的浏览器已经支持了WebAssembly。它能够在浏览器中实现接近本机的执行速度,使得我们有可能将桌面应用(如AutoCAD)甚至电子游戏(如《Doom 3》)移植到Web。