protobuf

gRPC+protobuf学习

自作多情 提交于 2020-02-07 04:11:26
gRPC学习网站 https://grpc.io/docs/guides/ Golang protobuff 先安装protoc大环境: https://github.com/protocolbuffers/protobuf/releases 再安装针对于go的小环境 https://github.com/golang/protobuf echo学习 https://echo.labstack.com/guide/installation protobuf https://developers.google.com/protocol-buffers/docs/reference/overview 来源: CSDN 作者: 项目技术总监 链接: https://blog.csdn.net/LiuHandsomes/article/details/104200962

【深度学习】——记录安装object_detection

心不动则不痛 提交于 2020-02-06 10:38:44
环境说明:windows10、python3.5、tensorflow1.12(cpu版本) 听说Windows系统安装tensorflow全是坑,开始不相信,进去之后,一把辛酸泪,前辈诚不欺我。 一、安装Anaconda及激活环境 1.安装Anaconda:Anaconda指的是一个开源的Python发行版本,其中包含了conda、Python等180多个科学包及其依赖项 ,管理起来比较方便,可以自行去官网下载安装,安装到最后一步时,记得勾选第一个选项,可以不用自己为Anaconda系统变量 下载anaconda: 2.激活环境: 为了方便管理各种库,我在Anaconda下新建了一个环境,python版本用的是3.5的,据说tensorflow目前不支持windows的python3.7,反正我之前是不信的,屁颠屁颠的安装了python3.7,后面真的是错误一大堆,还半天解决不了。 打开Anaconda Prompt,Anaconda新建环境指令:conda create -n project pip python=3.5(project是我的环境的名字,可根据自己喜好更改) 激活环境:activate project (注意后面所有的命令需要在此环境下执行,如果不小心退出了,要重新激活一次) 二、安装tensorflow 1

Netty高级

℡╲_俬逩灬. 提交于 2020-02-06 01:45:35
Netty 快速 入门 什么 是 N etty Netty 是一个基于 JAVA NIO 类库的异步通信框架,它的架构特点是:异步非阻塞、基于事件驱动、高性能、高可靠性和高可定制性。 N etty 应用场景 1. 分布式 开源框架中 dubbo、Zookeeper , RocketMQ 底层 rpc 通讯 使用 就是 netty 。 2. 游戏 开发 中 ,底层 使用netty通讯 。 为什么 选择 netty 在本小节,我们总结下为什么不建议开发者直接使用 JDK 的 NIO 类库进行开发的原因: 1) NIO 的类库和 API 繁杂,使用麻烦,你需要熟练掌握 Selector 、 ServerSocketChannel 、 SocketChannel 、 ByteBuffer 等; 2) 需要具备其它的额外技能做铺垫,例如熟悉 Java 多线程编程,因为 NIO 编程涉及到 Reactor 模式,你必须对多线程和网路编程非常熟悉,才能编写出高质量的 NIO 程序; 3) 可靠性能力补齐,工作量和难度都非常大。例如客户端面临断连重连、网络闪断、半包读写、失败缓存、网络拥塞和异常码流的处 n 理等等, NIO 编程的特点是功能开发相对容易,但是可靠性能力补齐工作量和难度都非常大; 4) JDK NIO 的 BUG ,例如臭名昭著的 epoll bug ,它会导致 Selector

序列化和反序列化

我怕爱的太早我们不能终老 提交于 2020-02-06 00:25:59
1, 摘要   序列化和反序列化几乎是工程师们每天都要面对的事情,但是要精确掌握这两个概念并不容易:一方面,它们往往作为框架的一部分出现而湮没在框架之中;另一方面,它们会以其他更容易理解的概念出现,例如加密、持久化。然而,序列化和反序列化的选型却是系统设计或重构一个重要的环节,在分布式、大数据量系统设计里面更为显著。恰当的序列化协议不仅可以提高系统的通用性、强健性、安全性、优化系统性能,而且会让系统更加易于调试、便于扩展。本文从多个角度去分析和讲解“序列化和反序列化”,并对比了当前流行的几种序列化协议,期望对读者做序列化选型有所帮助。   简介   文章作者服务于美团推荐与个性化组,该组致力于为美团用户提供每天billion级别的高质量个性化推荐以及排序服务。从Terabyte级别的用户行为数据,到Gigabyte级别的Deal/Poi数据;从对实时性要求毫秒以内的用户实时地理位置数据,到定期后台job数据,推荐与重排序系统需要多种类型的数据服务。推荐与重排序系统客户包括各种内部服务、美团客户端、美团网站。为了提供高质量的数据服务,为了实现与上下游各系统进行良好的对接,序列化和反序列化的选型往往是我们做系统设计的一个重要考虑因素。   本文内容按如下方式组织: 第一部分给出了序列化和反序列化的定义,以及其在通讯协议中所处的位置。 第二部分从使用者的角度探讨了序列化协议的一些特性。

[转]Google 的开源技术protobuf 简介与例子

前提是你 提交于 2020-02-05 02:10:23
本文来自CSDN博客:http://blog.csdn .NET /program_think/archive/2009/05/31/4229773.aspx 今天来介绍一下“ Protocol Buffers ”(以下简称protobuf)这个玩意儿。本来俺在构思“生产者/消费者模式 ”系列的下一个帖子:关于生产者和消费者之间的数据传输格式。由于里面扯到了protobuf,想想干脆单独开一个帖子算了。   ★protobuf是啥玩意儿?   为了照顾从没听说过的同学,照例先来扫盲一把。   首先,protobuf是一个 开源 项 目(官方站点在“这里 ”),而且是后台很硬的开源项目。网上现有的大部分(至少80%)开源项目,要么是某人单干、要么是几个闲杂人等合伙搞。而protobuf则不然,它是 鼎鼎大名的Google公司开发出来,并且在Google内部久经考验的一个东东。由此可见,它的作者绝非一般闲杂人等可比。   那这个听起来牛X的东东到底有啥用处捏?简单地说,这个东东干的事儿其实和 XML 差不多,也就是把某种 数据结构 的信息,以某种格式保存起来。主要用于数据存储、传输协议格式等场合。有同学可能心理犯嘀咕了:放着好好的XML不用,干嘛重新发明轮子啊?!先别急,后面俺自然会有说道。   话说到了去年(大约是08年7月),Google突然大发慈悲,把这个好东西贡献给了开源社区

Hadoop入门进阶课程2--Hadoop2.X 64位编译

女生的网名这么多〃 提交于 2020-02-04 21:21:17
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,博主为石山园,博客地址为 http://www.cnblogs.com/shishanyuan 。该系列课程是应邀实验楼整理编写的,这里需要赞一下实验楼提供了学习的新方式,可以边看博客边上机实验,课程地址为 https://www.shiyanlou.com/courses/237 【注】该系列所使用到安装包、测试数据和代码均可在百度网盘下载,具体地址为 http://pan.baidu.com/s/10PnDs , 下载该 PDF 文件 1 、 编译 环境 1.1 软硬件环境 说明 所有节点均是 CentOS 系统,防火墙和 SElinux 禁用,所有节点上均创建了一个 shiyanlou 用户,并在系统根目录下创建 /app 目录,用于存放 Hadoop 等组件运行包。因为该目录用于安装 hadoop 等组件程序,用户对 shiyanlou 必须赋予 rwx 权限(一般做法是 root 用户在根目录下创建 /app 目录,并修改该目录拥有者为 shiyanlou(chown – R shiyanlou:shiyanlou /app )。 Hadoop 搭建环境: l 虚拟机操作系统: CentOS6.6 64 位,单核, 1G 内存 l JDK : 1.7.0_55 64 位

C# protobuf自动更新cs文件

拥有回忆 提交于 2020-02-04 02:18:32
网上的教程大都是手动通过protoc编译, 比较难用 给当前工程添加"Google.Protobuf"和"Grpc.Tools"的引用(通过nuget), 然后添加proto文件, 编辑.csproj文件 <Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <TargetFramework>netcoreapp3.1</TargetFramework> </PropertyGroup> <ItemGroup> <PackageReference Include="Google.Protobuf" Version="3.11.2" /> <PackageReference Include="Grpc.Tools" Version="2.26.0"> <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> <PrivateAssets>all</PrivateAssets> </PackageReference> <!--编辑成这样--> <Protobuf Include="*.proto" OutputDir="%(RelativePath)" CompileOutputs="false"

google protocol 入门 demo

扶醉桌前 提交于 2020-02-03 01:02:08
ubunbu系统下google protobuf的安装 说明: 使用protobuf时需要安装两部分: 第一部分为*.proto文件的编译器,它负责把定义的*.proto文件生成对应的c++类的.h和.cpp文件; 第二部分是protobuf的c++动态库(由protobuf的源码编译生成),该部分在生成链接生成可执行文件时需要使用到。 1. 安装编译google protobuf源文件时需要的依赖文件 sudo apt-get install autoconf automake libtool curl make g++ unzip 2. 下载google protobuf 的c++对应的源码,并解压至当前目录中 wget https://github.com/protocolbuffers/protobuf/releases/download/v3.11.2/protobuf-cpp-3.11.2.tar.gz tar -xf protobuf-cpp-3.11.2.tar.gz 3. 进入解压后的目录,并安装 ./configure make make check sudo make install sudo make ldconfig google protobuf的使用 1. 新建一个表示电话薄的addressbook.proto文件 touch addressbook

gRPC C++ 入门教程

天涯浪子 提交于 2020-02-02 04:25:37
之前曾经写过 Python 使用 gRPC 收发消息的教程,可以参考文章 《体验 gRPC 那些事儿》 。最近计划在 C++ 项目中使用 gRPC,故写一篇文章来记录一下如何使用 C++ 语言来实现一个简单的 gRPC 服务端和客户端程序。 本教程需要先安装 gRPC,有关 gRPC 的安装教程可以参考文章 《CentOS 7 安装 gRPC》 , 《体验 gRPC 那些事儿》 。 本文涉及的程序包括四部分,分别是客户端源代码 client.cc ,服务端源代码 server.cc ,proto 文件 mathtest.proto 以及 Makefile。 Makefile Makefile 的作用是编译源代码,Makefile 文件如下: LDFLAGS = -L/usr/local/lib `pkg-config --libs protobuf grpc++`\ -Wl,--no-as-needed -lgrpc++_reflection -Wl,--as-needed\ -ldl CXX = g++ CPPFLAGS += `pkg-config --cflags protobuf grpc` CXXFLAGS += -std=c++11 GRPC_CPP_PLUGIN = grpc_cpp_plugin GRPC_CPP_PLUGIN_PATH ?= `which $

Go micro 开发微服务步骤

不打扰是莪最后的温柔 提交于 2020-01-31 07:57:14
1.写 proto文件,定义接口和服务 2.实现 接口,注册 handle 3.调用服务:直接用rpc 客户端调用,或者用 api http web等调用 api http web 等服务可以对客户端请求做转发,将请求转向到 srv 在传统的应用中,所有的功能都是存在于单一的代码库(Monotholic Code Base)中。在表面上看,代码库中的代码可以有几种聚合方式。可能会按照其类型分割,比如controllers, entity, factories,也有可能按照其功能拆分成几个包,比如auth, articles等等。但无论如何,整个应用是建立在一个单一代码库上的。 微服务是对于上述第二种聚合方式的拓展。我们依旧将应用按照其功能拆分成几个包,但不同的是,这些功能包现在都是一个可独立运行的代码库。 何为protobuf/gRPC 由于每个微服务对应一个独立运行的代码库,一个很自然的问题就是如何在这些微服务之间通信。gRPC使用protobuf来描述数据格式。使用Protobuf,你可以清晰的定义一个微服务的接口。gRPC支持全新的HTTP 2协议,正好可以使用二进制数据。gRPC甚至可以建立双向的流数据。HTTP 2是gRPC的基础 message 由protobuf处理,而 service 则是由protobuf的grpc插件处理。这个grpc插件使我们定义的