• sproto rpc 的用法
    sproto 是我自己设计, 用在我们新项目中取代过去用到的 google protocol buffers 的东西。 为什么不用 protobuf ? 这个问题我有足够的发言权。在 lua 语言为主的项目中,sproto 更合适。google 官方并没有给 protobuf 加入 lua 支持。现在在网上流传的 protobuf lua 方案,被人用的最多的两种,一个是 pbc 的 lua binding ,另一个是 protoc-gen-...
  • 开发笔记 (6) : 结构化数据的共享存储
    开始这个话题前,离上篇开发笔记已经有一周多了。我是打算一直把开发笔记写下去的,而开发过程中一定不会一帆风顺,各种技术的抉择,放弃,都可能有反复。公开记录这个历程,即是对思路的持久化,又是一种自我督促。不轻易陷入到技术细节中而丢失了产品开发进度。而且有一天,当我们的项目完成了后,我可以对所有人说,看,我们的东西就是这样一步步做出来的。每个点滴都凝聚了叫得上名字的开发人员这么多个月的心血。 技术方案的争议在我们几个人内部是很激烈的。让自己的想法说服...
  • pbc 库的 lua binding
    前几天写的 pbc 初衷就是想可以方便的 binding 到动态语言中去用的。所以今天花了整整一天自己写了个简单的 lua binding 库,就是很自然的工作了。 写完了之后,我很好奇性能怎样,就写了一个非常简单的测试程序测了一下。当然这个测试不说明很多问题,因为测试用的数据实在是太简单了,等明天有空再弄个复杂点的来跑一下吧。我很奇怪,为什么 google 官方的 C++ 版性能这么差。 我的 lua 测试代码大约是这样的: local ...
  • Protocol Buffers for C
    我一直不太满意 google protocol buffers 的默认设计。为每个 message type 生成一大坨 C++ 代码让我很难受。而且官方没有提供 C 版本,第三方的 C 版本 也不让我满意。 这种设计很难让人做动态语言的 binding ,而大多数动态语言往往又没有强类型检查,采用生成代码的方式并没有特别的好处,反而有很大的性能损失(和通常做一个 bingding 库的方式比较)。比如官方的 Python 库,完全可以在运行时...
  • 继续完善 protobuf 库
    又仔细推敲了两天,把 lua 版的 protobuf 库完善了一下。主要是做了两个工作: protobuf 本身的格式,google 是自描述的。定义为 google.protobuf.descriptor 。我先自己实现的 parser 图方便,用了自己的中间交换格式。为了日后更通用,稍微修改了一下,可以生成于官方相同的结构。解析的性能稍有下降,不过应该兼容性更好。 一开始实现的 api 虽然性能非常好。(经简单测试,是 python 库的...
  • [译]用GoLang实现微服务(一)
    导言 在本文中,我们将了解一些基础的概念,术语。同时将创建我们的第一个微服务,尽管它会非常简陋。 在接下来的文章中,我们会陆续创建以下微服务: consignments (货运) inventory (仓库) users (用户) authentication (认证) roles (角色) vessels (货船) 完整的技术栈如下:golang, mongodb, grpc, docker, Google Cloud, Kubernetes, NATS, CircleCI, Terrafrom ...
  • [译]用GoLang实现微服务(三)
    此系列文章介绍如何用 GoLang 实践微服务, 分十篇。此为其三。 原著作者:Ewan Valentine 原文连接:https://ewanvalentine.io/microservices-in-golang-part-3/ 友情提示:系列文章的后五篇翻译请移步至wuYin’s blog 初稿 -> 润色 在上一篇文章中, 我们了解了go-micro 以及 Docker的基础。同时引入了我们的第二个微服务,货船服务(vessel-service)。那么在此文中,我们将要了解一下 docke...
  • SpringBoot 集成 Protocol Buffer案例
    Hello,大家好,我是子悠,作为本周的小编之前已经跟大家介绍过自己了,今天就让我们跟着子悠(一个有点文艺有点技术宅的深漂程序员,是我是我就是我)的步伐学习新知识吧。下面是正文背景最近工作中使用到 Protobuf,发现 Protobuf 的强大和方便之处,今天给大家介绍一个这个强大的工具的使用。毕竟有好东西要一起分享。什么是 Protobuf首先我们来看下什么是 protobuf, 官方解释:Protocol buffers are Google’s language-neutral, platform-...
  • 比 json 快5倍的 protobuf,了解一下!
    之前在网络通信和通用数据交换等应用场景中经常使用的技术是 JSON 或 XML,而在最近的开发中接触到了 Google 的 ProtoBuf。在查阅相关资料学习 ProtoBuf 以及研读其源码之后,发现其在效率、兼容性等方面非常出色。在以后的项目技术选型中,尤其是网络通信、通用数据交换等场景应该会优先选择 ProtoBuf。自己在学习 ProtoBuf 的过程中翻译了官方的主要文档,一来当然是在学习 ProtoBuf,二来是培养阅读英文文档的能力,三来是因为 Google 的文档?不存在的!看完这些文档对...
  • 花椒服务端 gRPC 开发实践
    奇技指南gRPC是一个高性能、通用的开源 RPC 框架,由 Google 开发并基于 HTTP/2 协议标准而设计。本文介绍花椒服务端的 gRPC 开发实践。为了让客户端更专注业务实现,降低接口联调测试成本,我们选用了 gRPC 方案。在服务端,服务实现这个接口并且运行 gRPC 服务处理客户端调用。gRPC特点基于标准化的 IDL来生成服务器端和客户端代码,支持多种主流开发语言。因此在这次项目中前端未使用 gRPC 服务,而是由 gRPC-Gateway 提供代理的 RESTful 接口。gRPC-Gatewaygrpc-gateway 是 protoc 的一个插件,它能读取 gRPC 的服务定义并生成反向代理服务器,将 RESTful 的 JSON 请求转换为 gRPC 的方式。
  • TiDB Binlog 源码阅读系列文章(四)Pump server 介绍
    在上篇文章中,我们介绍了 TiDB 如何通过 Pump client 将 binlog 发往 Pump,本文将继续介绍 Pump server 的实现,对应的源码主要集中在 TiDB Binlog 仓库的 pump/server.go 文件中。为了避免丢失 binlog,在开始对外提供 binlog 写入服务之前,它会将当前 Server 注册到 PD 上,确保所有运行中的 Drainer 都已经观察到新增的 Pump 节点。WriteBinlog顾名思义,这是用于写入 binlog 的接口,上篇文章中 Pump client 调用的就是这个接口。storage.WriteBinlog将 binlog 持久化存储,并对 binlog 按start TS/commit TS进行排序,详细的实现将在下章展开讨论。PullBinlogsPullBinlogs 是为 Drainer 提供的接口,用于按顺序获取 binlog。
  • Go是如何实现protobuf的编解码的(1): 原理
    各位朋友咱们又见面了,我是大彬,今天聊一聊Go是如何实现protobuf编解码的。这是一篇姊妹篇文章,本编是第一篇:1.Go是如何实现protobuf的编解码的:原理2.Go是如何实现protobuf的编解码的:源码Protocol Buffers介绍Protocol buffers缩写为protobuf,是由Google创造的一种用于序列化的标记语言,项目Github仓库:https://github.com/protocolbuffers/protobuf。Protobuf主要用于不同的编程语言的协作RPC场景下,定义需要序列化的数据格式。我们介绍一下protobuf对多语言的支持原理。对于C++,protoc可以把a.proto,编译成a.pb.h和a.pb.cc。一个Hello World样例根据上面的介绍,Go语言使用protobuf我们要先安装2个工具:protoc和protoc-gen-go。
  • 高德地图数据序列化的探索与实践
    下半身采集的数据,需要经过处理,序列化为二进制数据,输送给上半身的各个应用。本文将分享高德技术团队在地图数据序列化领域的探索和实践。高德地图对数据的新鲜度要求非常高,如京港澳高速开通,需要实时上线,让用户第一时间用最新的数据进行导航。目前流行的开源序列化库有protobuf,flatbuffers等。图1varint表示图2 zigzag编码3.2自定义序列化规格由于地图数据有其独有特点,且全国数据量巨大,开源库序列化后的数据量大小都无法满足数据传输的要求。针对地图数据序列化后数据量的优化,我们无须拘泥于一种压缩形式,多种压缩方法综合使用,才能达到最好的压缩效果。
  • 工作中 Git 的使用实践
    点击链接或图片即可阅读喜欢请分享到朋友圈哦开发者头条工作中 Git 的使用实践工作中 Git 是一项必不可少的技能,在项目的开发进程中起着至关重要的作用,下面介绍一些 Git 在工作中的一些使用实践。更多「Git」热门文章性能测试从零开始实施指南这篇博客,简述一下我在准备阶段,是如何开展容量评估工作以及遇到的一些问题,以及解决方案。(老张)更多「性能测试」热门文章Protobuf 终极教程Protocol Buffer是 Google 出品的性能优异、跨语言、跨平台的序列化库。更多「Protobuf」热门文章头条君邀请您加入开发者头条读者交流群微信号:toutiaoio007
  • GitHub 标星 6.2k+!前 Google 工程师出品,最佳开发工具大全!
    关注“GitHubDaily”设为 “星标”,每天带你逛 GitHub!但实际上,这个大全实打实地也成为了一份最佳开发工具大全。xg2xg 上线仅仅一天就登上趋势榜,截至今天,已在 GitHub 收获 6200+ Star!即使你从来没进过 Google 工作,也在享受着 Google 工程师们带来的福利。Jeff Dean 等人 2004 年提出了这个分布式计算架构,最早在 Google 内部用来处理大规模数据的并行计算。完全撇开 Google,也不是就没有别的选择了。虽然作者把它放在开源 / 真实世界这一栏里,但事实上 Kubernetes 也是由 Google 设计并参与开发的。他认为这份清单在一定程度上具有误导性,某些替代品根本达不到 Google 内部工具的水平。
  • GitHub 标星 6.2k+!最佳开发工具大全!
    但实际上,这个大全实打实地也成为了一份最佳开发工具大全。https://github.com/jhuangtw-dev/xg2xg美国网友对这个大全给予了很高的评价:这份清单中列出的开源软件,不仅解决了硅谷大厂前员工的难处,也能为其他所有码农解除困惑。xg2xg 上线仅仅一天就登上趋势榜,截至今天,已在 GitHub 收获 6200+ Star!由于数据不需要额外的标注,Avro 在序列化大量相同的数据时会比 Protobuf 和 Thrift 更有效率。但显然 Kubernetes 的功能会更丰富。他认为这份清单在一定程度上具有误导性,某些替代品根本达不到 Google 内部工具的水平。比如将 Colossus 和 HDFS 对比是在开玩笑,相比之下,HDFS 就像是一个玩具。全部工具的下载链接请参阅文末的 GitHub 地址。
  • .NET Core Love gRPC
    自2018年11月以来,Microsoft的.NET团队一直与gRPC团队密切合作,共同开发适用于.NET Core的gRPC的全新完全托管实现。.NET目前有两种正式的gRPC实现:Grpc.Core:基于本地gRpc Core库的原生 gRpc C#实现,支持.NET Core 2.1/.NET Framework 4.5+/Mono 4+ 。grpc-dotnet:完全以C#编写的新实现,没有任何本机依赖性,并且基于最新发布的.NET Core 3.0。在服务器端,Grpc.AspNetCore.Server软件包集成到ASP.NET Core中,使开发人员受益于ASP.NET Core已解决的日志,配置,依赖项注入,身份验证,授权等常见的交叉问题。现在,ASP.NET生态系统中的流行库与gRPC无缝协作。protobuf-net.Grpc使用本机Grpc.CoreAPI或完全托管的Grpc.Net.Client/Grpc.AspNetCore.ServerAPI 在gRPC上添加对服务的代码优先支持。
活跃用户
《中国银行保险报》是中国银行保险监督管理委员会主管唯一工作日报。
专注于.NET Core的技术传播。在这里你可以谈微软.NET,Mono的跨平台开发技术。在这里可以让你的.NET项目有新的思路,不局限于微软的技术栈,横跨Windows,Linux 主流平台
这里有技术、算法、职场、感悟、面经、资源,一线大厂干货,10万 + 程序员都在看,做一个有趣的帮助程序员成长的公众号,每天早上8点20,第一时间与你相约。
《前端剑解》 —— 是由海之林技术团队维护的前端公众号,关注前端技能的发展;【前端面试每日3+1】 —— 365天,每天早上5点发布面试题(html, css, js, 软技能),以面试题来驱动学习,提倡每日学习与思考,每天进步一点!
号主是来自后厂村的十年资深架构师,技术leader,著有两本技术畅销书,多个业界顶级技术大会的特邀演讲嘉宾和出品人。除了分享技术干货,还关注程序员的技术生活、职场晋升、逆袭成长,助力10万+程序员崛起。
Flink/Spark/Hadoop/数仓开发,干货,面试,资料下载,源码解读等
《科技日报》是富有鲜明科技特色的综合性日报,是面向国内外公开发行的中央主流新闻媒体,是党和国家在科技领域的重要舆论前沿,是广大读者依靠科技创造财富、提升文明、刷新生活的服务平台,是中国科技界面向社会、连接世界的明亮窗口。
华为技术有限公司官方微信帐号
每天分享 Java技术栈 干货,路虽远,行则必至。
“早春江上雨初晴,杨柳丝丝夹岸莺。画舫烟波双桨急,小桥风浪一帆轻”,这是机器通过学习中华诗词然后以”早春“为题所写的一首诗。很多人非常恐惧AI的发展对人类的冲击,但我坚信AI会让世界变得更加美好,生活是美好的,所以我们一起,勇敢AI吧!
一个专注侃侃计算机视觉方向的公众号。计算机视觉、图像处理、机器学习、深度学习、C/C++、Python、诗和远方等。
程序员职业规划:职场晋升之路;探讨程序员转化转管理之路。程序员学习管理之道:团队管理、项目管理、管理工具的推荐和使用经验。
乔哥是百度java工程师,专注Java相关技术:Java面试、Spring全家桶、微服务、Mysql、集群、分布式、中间件、Linux、网络、多线程等,致力于Java全栈开发!
西安交大品牌讲座“学而讲坛”创始人和负责人,致力于打造一个跨界融合的学术共同体。北大文学博士,西安交大国家大学生文化素质教育基地副主任,人文学院高培中心主任,著有《陕西文化产业实战研究》、《视觉素养导论》、《艺术导论》、《读图范式》等。
专注于分享互联网技术文章。笔者待过BAT等一线互联网公司,文笔流畅,酷爱写作与编码,期待你的关注!