lz4

快速序列化组件MessagePack介绍

冷暖自知 提交于 2020-08-06 11:52:08
简介 MessagePack for C#(MessagePack-CSharp)是用于C#的极速MessagePack序列化程序,比MsgPack-Cli快10倍,与其他所有C#序列化程序相比,具有最好的性能。 MessagePack for C#具有内置的LZ4压缩功能,可以实现超快速序列化和二进制占用空间小。 性能永远是重要的! 可用于游戏,分布式计算,微服务,数据存储到Redis等。支持.NET, .NET Core, Unity, Xamarin。 从上图我们看出MessagePack for C#在性能测试中是最好的,这里解释一下第三个MsgPack-Cli是MessagePack官方实现的。第一和第二都是MessagePack for C#,第一项相比第二项具有稍快一点的序列化和反序列化速度,但是第二项采用了L4压缩功能,显著的减少了二进制的大小。在实际使用中推荐使用L4压缩功能。 使用 该组件已经发布在Nuget,使用命令加入项目。 Install-Package MessagePack 分析器 Install-Package MessagePackAnalyzer 扩展 Install-Package MessagePack.ImmutableCollection Install-Package MessagePack.ReactiveProperty

Addressable如何删除旧资源

泄露秘密 提交于 2020-08-04 11:42:10
1)Addressable如何删除旧资源 ​2)Addressable如何更新Catalog文件 3)Editor在Android平台下加载AssetBundle的疑问 4)资源被打成AssetBundle后,图集被多次加载在内存中 5)Gfx.WaitForPresent耗时与GPU的关系 这是第209篇UWA技术知识分享的推送。今天我们继续为大家精选了若干和开发、优化相关的问题,建议阅读时间10分钟,认真读完必有收获。 UWA 问答社区: answer.uwa4d.com UWA QQ群2:793972859(原群已满员) Addressable Q1:目前计划使用Addressable来实现资源热更新,实际真机测试发现当资源更新后,旧的资源Addressable并不会把它删除,同时可以看到App占用的数据文件会越来越大。请问有什么办法可以把指定的Group或Label的资源删除吗? 试了Addressable.ClearDependencyCacheAsync也不行。实际测试这个接口只能删除最新版本的资源。当本地已经是最新版本资源时这个接口确实有效;但是如果本地需要更新资源时,这个接口应该也是尝试去删除最新资源,然而本地并没有最新版的资源,所以大概就无效了。 A:调用Addressable.ClearDependencyCacheAsync实质是调用了 “Caching

Redis Conf 2020之提高Redis访问速度最佳实践

♀尐吖头ヾ 提交于 2020-07-28 09:39:10
来源:Zohaib Sibte Hassan from Doordash and RedisConf 2020 (redisconf.com/) organized by Redis Labs (redislabs.com) 翻译:Wen Hui 转载:中间件小哥 Cache stampede问题: Cache stampede问题又叫做cache miss storm,是指在高并发场景中,缓存同时失效导致大量请求透过缓存同时访问数据库的问题。 如上图所示: 服务器a,b 访问数据的前两次请求因为redis缓存中的键还没有过期,所以会直接通过缓存获取并返回(如上图绿箭头所示),但当缓存中的键过期后,大量请求会直接访问数据库来获取数据,导致在没有来得及更新缓存的情况下重复进行数据库读请求 (如上图的蓝箭头),从而导致系统比较大的时延。另外,因为缓存需要被应用程序更新,在这种情况下,如果同时有多个并发请求,会重复更新缓存,导致重复的写请求。 针对以上问题,作者提出一下第一种比较简单的解决方案,主要思路是通过在客户端中,通过给每个键的过期时间引入随机因子来避免大量的客户端请求在同一时间检测到缓存过期并向数据库发送读数据请求。在之前,我们定义键过期的条件为: Timestamp+ttl > now() 现在我们定义一个gap值,表示每个客户端键最大的提前过期时间

Centos7.7 配置OpenVPN (二)

☆樱花仙子☆ 提交于 2020-05-09 14:13:00
OpenVPN是一个开源的应用程序,它允许您通过公共互联网创建一个安全的专用网络。OpenVPN实现一个虚拟专用网(VPN)来创建一个安全连接。 OpenVPN是一个开源的应用程序,它允许您通过公共互联网创建一个安全的专用网络。OpenVPN实现一个虚拟专用网(VPN)来创建一个安全连接。OpenVPN使用OpenSSL库提供加密,它提供了几种身份验证机制,如基于证书的、预共享密钥和用户名/密码身份验证。 在本教程中,我们将向您展示如何在 CentOS 7.7服务器上逐步安装和配置OpenVPN。实现基于证书的OpenVPN认证。 修改OpenVPN配置文件 复制模板到主配置文件夹里面 [root@localhost server]# cp -p /usr/share/doc/openvpn-2.4.8/sample/sample-config-files/server.conf /etc/openvpn/server/ # 修改后的内容如下 [root@localhost server]# cat server.conf |grep '^[^#|^;]' port 1194 proto udp dev tun ca ca.crt cert server1.crt key server1.key # This file should be kept secret dh dh.pem

hadoop native 冲突报错

僤鯓⒐⒋嵵緔 提交于 2020-05-08 17:18:33
问题描述 集群升级后,hadoop不能正常加载本地库 $ hadoop checknative -a 20/05/08 14:32:11 WARN bzip2.Bzip2Factory: Failed to load/initialize native-bzip2 library system-native, will use pure-Java version 20/05/08 14:32:11 WARN zlib.ZlibFactory: Failed to load/initialize native-zlib library 20/05/08 14:32:11 ERROR snappy.SnappyCompressor: failed to load SnappyCompressor java.lang.NoSuchFieldError: clazz at org.apache.hadoop.io.compress.snappy.SnappyCompressor.initIDs(Native Method) at org.apache.hadoop.io.compress.snappy.SnappyCompressor.<clinit>(SnappyCompressor.java:57) at org.apache.hadoop.io.compress

《Kafka权威指南》读书笔记

五迷三道 提交于 2020-05-05 07:49:33
一、 Kafka的组成 kafka是一个发布与订阅消息系统 消息:kafka的数据单元称为"消息"。可以把消息看成是数据库中的一个"数据行"。 消息的key:为key生成一个一致性散列值(HashCode),然后使用散列值对主题分区数进行取模,为消息选取分区。 消息被分批次写入kafka。 批次:就是一组消息,这些消息属于同一个主题和分区。 主题(topic):kafka的消息,是通过topic来分类的。topic,好比数据库里的表,或者文件系统里的文件夹。 topic,可分为若干个分区(partition)。 由于一个topic一般分为几个partition,因此整个Topic范围内无法保证消息的顺序,但可以保证消息在单个Partition内的顺序。 生产者(producer):创建消息。 消费者(consumer):订阅读取消息。 consumer可以订阅一个或多个topic,并按照消息生成的顺序去读取它们。消费者通过检查消息偏移量来区分已经读取过的消息。 偏移量(offset):是一个不断递增的整数值,在创建消息时,Kafka会把它添加到消息里。在给定的分区里,每个消息的偏移量都是唯一的。 消费者群组: 消费者群组中,会有一个或多个消费者读取同一个topic。 另外,群组能保证每个分区只能被一个消费者使用。 服务器(broker):Kafka的服务器broker

四月天清丽典雅的涉水而

前提是你 提交于 2020-05-03 15:42:13
sdfsdf 服务网格作为一个改善服务到服务通信的专用基础设施层,是云原生范畴中最热门的话题。随着容器愈加流行,服务拓扑也频繁变动,这就需要更好的网络性能。服务网格能够通过服务发现、路由、负载均衡、心跳检测和支持可观测性,帮助我们管理网络流量。服务网格试图为无规则的复杂的容器问题提供规范化的解决方案 将供应链搬出中国,似乎成了过去两三个月新冠肺炎疫情衍生出的热门话题。 年初新冠肺炎疫情爆发,让中国供应链的生产活动几乎完全停顿,影响席卷全球:苹果的新 5G 有可能因疫情而延期推出,特斯拉新款芯片无法及时交付、陷入“芯片门”纠纷。其余像三星、小米、索尼等著名跨国企业,均受到供应链停摆的影响。 因此,tbzjkmalaysia.answers.yahoo.com/question/index?qid=20200426202120AAyjr0R?NJ3=58mea=56s sg.answers.yahoo.com/question/index?qid=20200426202120AAyjr0R?UO9=68usj=99g hk.answers.yahoo.com/question/index?qid=20200426202120AAyjr0R?QZ9=32gqf=02k answers.yahoo.com/question/index?qid=20200426202120AAyjr0R

kudu简介2

天大地大妈咪最大 提交于 2020-04-29 17:05:11
参考文章: kudu介绍 文章内容来源于官网文档: http://kudu.apache.org/docs/index.html 一、kudu介绍 Kudu是Cloudera开源的新型列式存储系统,是Apache Hadoop生态圈的成员之一(incubating),专门为了对快速变化的数据进行快速的分析,填补了以往Hadoop存储层的空缺。 1 功能上的空白 Hadoop生态系统有很多组件,每一个组件有不同的功能。在现实场景中,用户往往需要同时部署很多Hadoop工具来解决同一个问题,这种架构称为混合架构 (hybrid architecture)。比如,用户需要利用Hbase的快速插入、快读random access的特性来导入数据,HBase也允许用户对数据进行修改,HBase对于大量小规模查询也非常迅速。同时,用户使用HDFS/Parquet + Impala/Hive来对超大的数据集进行查询分析,对于这类场景, Parquet这种列式存储文件格式具有极大的优势。 很多公司都成功地部署了HDFS/Parquet + HBase混合架构,然而这种架构较为复杂,而且在维护上也十分困难。首先,用户用Flume或Kafka等数据Ingest工具将数据导入HBase,用户可能在HBase上对数据做一些修改。然后每隔一段时间(每天或每周)将数据从Hbase中导入到Parquet文件

PHP7的一些特性用法

跟風遠走 提交于 2020-04-18 11:38:18
1.use的用法 <?php // PHP 7 之前版本用法 use some\namespace\ClassA; use some\namespace\ClassB; use some\namespace\ClassC as C; use function some\namespace\fn_a; use function some\namespace\fn_b; use function some\namespace\fn_c; use const some\namespace\ConstA; use const some\namespace\ConstB; use const some\namespace\ConstC; // PHP 7+ 用法 use some\namespace\{ClassA, ClassB, ClassC as C}; use function some\namespace\{fn_a, fn_b, fn_c}; use const some\namespace\{ConstA, ConstB, ConstC}; ?> 2.序列号函数unserialize的新增了过滤功能 // 转换对象为 __PHP_Incomplete_Class 对象 $data = unserialize($foo, ["allowed_classes" => false])

[转帖]RocksDB简介

人盡茶涼 提交于 2020-04-17 08:25:31
【推荐阅读】微服务还能火多久?>>> RocksDB简介 https: // www.jianshu.com/p/a0088d7e9b97 1、RocksDB简介 RocksDB项目起源于Facebook的一个实验项目,该项目旨在开发一个与快速存储器(尤其是闪存)存储数据性能相当的数据库软件,以应对高负载服务。 这是一个c++库,可用于存储键和值,可以是任意大小的字节流。它支持原子读和写。 RocksDB具有高度灵活的配置功能,可以通过配置使其运行在各种各样的生产环境,包括纯内存,Flash,硬盘或HDFS。它支持各种压缩算法,并提供了便捷的生产环境维护和调试工具。 2、假设和目标 性能: RocksDB的主要设计目标是保证存取快速存储器和高负载服务器更高效,保证充分利用Flash或RAM子系统提供的高速率读写,支持高效的查找和范围scan,支持高负载的随机读、高负载的更新操作或两者的结合。其架构应该支持高并发读写和容量大增时系统的一致性。 向后兼容性: 这个软件的新版本应该是向后兼容的,因此,当升级到新版本时现有的应用程序不需要改变。 3、高级体系结构 RocksDB是一个嵌入式键值存储器,其中键和值是任意的字节流。RocksDB中的所有数据是按序存放的。常见操作包括Get(key), Put(key), Delete(key) and Scan(key)。