thrift

Obtain the queue length at a Thrift server

∥☆過路亽.° 提交于 2020-06-16 17:28:05
问题 I am using thrift to implement a simple application. I would like to collect the queue length at a server i.e the number of requests that are pending service at the server. It could be either the queue length per client (connection) or total queue length at a server. I am playing around with different server types and thought the ThreadManager class would help since it collects server metrics. I created a server of type TThreadPoolServer but the methods like ThreadManager::pendingTaskCount()

Obtain the queue length at a Thrift server

浪子不回头ぞ 提交于 2020-06-16 17:26:46
问题 I am using thrift to implement a simple application. I would like to collect the queue length at a server i.e the number of requests that are pending service at the server. It could be either the queue length per client (connection) or total queue length at a server. I am playing around with different server types and thought the ThreadManager class would help since it collects server metrics. I created a server of type TThreadPoolServer but the methods like ThreadManager::pendingTaskCount()

想开发IM集群?先搞懂什么是RPC!

ぃ、小莉子 提交于 2020-05-09 20:52:11
本文引用了后端技术指南针公众号“浅谈RPC那些事儿1”和即时通讯网的“即时通讯新手入门:快速理解RPC技术——基本概念、原理和用途”两篇文章的部分内容。 1、引言 经常有开发者在纠结怎么开发IM集群,虽然真正的使用人数,可能用个人电脑单机都能支撑。 你也许会说,明明不需要用到IM集群,干吗要自找麻烦?答曰:“老板说这个得有!”、“万一产品做成了,用户量达到百万、千万级呢?”,各种回答,反此种种。总之,IM集群就是得整一个(先甭管用不用的上...)。 当然,玩笑归玩笑,真正要做到可投入到生产级别的IM集群系统,难度还是相当大的。必竟IM这种长连接应用相比传统Http这种短连接应用太不标准。 我们以一个典型的IM聊天消息传输为例: 假设存在两个正在聊天的用户(用户A和用户B),当A连接的是IM集群中的IM实例1、B连接的是IM集群中的IM实例2,此时当用户A向用户B发送一条聊天消息时,这条消息应该如何传递呢? 我们梳理一下上面这个例子的消息流转过程: 1)IM聊天消息首先会由用户A发往IM实例1; 2)IM实例1会将此条消息转交给IM实例2; 3)IM实例2会将此条消息最终投递给连接在本实例上的用户B。 如上述流程所示,这就是一个IM集群系统中典型的聊天消息投递过程。 那么,这其中涉及到一个关键步骤:即第2)步中如何实现“IM实例1会将此条消息转交给IM实例2”? 此时

ubuntu18.04 安装hadoop 2.7.3+hive 2.3.4

旧街凉风 提交于 2020-05-07 19:06:25
1. 安装hadoop 详细请参见本人的另外一片博文《 Hadoop 2.7.3 分布式集群安装 》 2. 下载 hive 2.3.4 解压文件到/opt/software tar -xzvf ~/Downloads/apache-hive- 2.3 . 4 -bin. tar .gz -C /opt/software/ 3. 配置hive环境变量: sudo vim /etc/profile 在文件末尾添加: #hive export HIVE_HOME =/opt/apache-hive- 2.3 . 4 - bin export HIVE_CONF_HOME =$HIVE_HOME/ conf export PATH =.:$HIVE_HOME/ bin:$PATH export HADOOP_CLASSPATH =$HADOOP_CLASSPATH:$HIVE_HOME/lib /* export HCAT_HOME=$HIVE_HOME/hcatalog export PATH=$HCAT_HOME/bin:$PATH 在本人机器上之前已经配置好了hadoop和jdk 4. 配置hive配置文件 cd /opt/software/apache-hive- 2.3 . 4 -bin/conf/ mv beeline-log4j2.properties.template

如何使用thrift 服务引擎组件

谁说我不能喝 提交于 2020-05-06 09:20:33
在本文中将介绍如果通过thrift 组件集成到surging 微服务引擎中,然后可以选择dotnetty 或thrift作为服务远程调用RPC,也可以通过其它语言的thrift 调用surging 服务,下面将简单介绍如何使用thrift 准备工作 首先需要到 官网 下载Thrift compiler for Windows代码生成工具,thrift-0.13.0.exe,然后编写脚本文件,代码如下: 1 namespace netstd ThriftCore 2 3 service Calculator{ 4 5 i32 Add( 1 :i32 num1, 2 :i32 num2) 6 string SayHello(); 7 } 8 9 10 service ThirdCalculator{ 11 12 i32 Add( 1 :i32 num1, 2 :i32 num2) 13 string SayHello(); 14 } 在命令行中执行“thrift-0.13.0.exe --gen netstd tutorial.thrift”,会在目录下生成“gen-netstd\ ThriftCore \ Calculator .cs”,“gen-netstd\ ThriftCore \ThirdCalculator.cs”两个文件。这部分使用与以前一致

如何使用thrift 服务引擎组件

梦想的初衷 提交于 2020-05-06 09:03:26
在本文中将介绍如果通过thrift 组件集成到surging 微服务引擎中,然后可以选择dotnetty 或thrift作为服务远程调用RPC,也可以通过其它语言的thrift 调用surging 服务,下面将简单介绍如何使用thrift 准备工作 首先需要到 官网 下载Thrift compiler for Windows代码生成工具,thrift-0.13.0.exe,然后编写脚本文件,代码如下: 1 namespace netstd ThriftCore 2 3 service Calculator{ 4 5 i32 Add( 1 :i32 num1, 2 :i32 num2) 6 string SayHello(); 7 } 8 9 10 service ThirdCalculator{ 11 12 i32 Add( 1 :i32 num1, 2 :i32 num2) 13 string SayHello(); 14 } 在命令行中执行“thrift-0.13.0.exe --gen netstd tutorial.thrift”,会在目录下生成“gen-netstd\ ThriftCore \ Calculator .cs”,“gen-netstd\ ThriftCore \ThirdCalculator.cs”两个文件。这部分使用与以前一致

Dubbo源码学习总结系列一 总体认识

坚强是说给别人听的谎言 提交于 2020-05-02 14:32:50
本文写作时,dubbo最高版本是V2.6.0。 写这篇文章主要想回答以下4个问题: 一、dubbo是什么?完成了哪些主要需求? 二、dubbo适用于什么场景? 三、dubbo的总体架构是什么样的? 四、dubbo调用的过程是什么样的? 下面就一一道来。 一、dubbo是什么?完成了哪些主要需求? dubbo是一个面向服务治理(SOA)的分布式RPC框架。 它主要实现了以下一些需求: RPC方面: 实现了基本的RPC过程,开发了DubboProtocol作为默认的实现,并集成了Hession,RMI,HTTP,WebService,Thrift(被改造,与原Thrift不兼容),Rest等远程过程调用框架。基本组成为:Protocol(默认dubbo),Invoker,Transporter(默认netty),Codec2(默认Hession2编码)。 编解码方面提供了Hession2(默认,阿里修改过的 hessian lite )、dubbo、Java、JSON、Thrift(与原Thrift不兼容)、Kryo、FST序列化。 DubboProtocol实现了同步调用、异步请求、回调方法设置、本地调用等等灵活的调用特性。 服务治理方面: 1、实现了集群、容错、负载均衡及路由策略 2、实现了注册功能,完成提供者、消费者注册、订阅通知策略等; 3、对外提供了服务提供者、消费者配置信息

Hive Row Formats&SerDe

时光怂恿深爱的人放手 提交于 2020-04-29 13:45:53
Serde是 Serializer/Deserializer的简写。hive使用Serde进行行对象的序列与反序列化。 What is a SerDe? SerDe is a short name for " Serializer and Deserializer. " Hive uses SerDe (and FileFormat) to read and write table rows. HDFS files --> InputFileFormat --> <key, value> --> Deserializer --> Row object Row object --> Serializer --> <key, value> --> OutputFileFormat --> HDFS files 当是读取hdfs文件时key部分将会被忽略,在写入hdfs时key总是一个常量,一般的行的数据是存储在value中的。 用户在建表的时候可以自定义 SerDe 或者使用自带的 SerDe。如果没有指定 ROW FORMAT 或者 ROW FORMAT DELIMITED,将会使用自带的 SerDe。 你可以创建表时使用用户自定义的Serde或者native Serde,如果 ROW FORMAT没有指定或者指定了 ROW FORMAT DELIMITED就会使用native

搭建hadoop+spark+hive环境(centos极速安装和配置hive)

て烟熏妆下的殇ゞ 提交于 2020-04-24 03:08:17
总共分为三步: 第一步安装配置hadoop: 搭建hadoop+spark+hive环境(centos全远程hadoop极速安装及配置) 第二步安装配置spark: 搭建hadoop+spark+hive环境(centos极速安装和配置spark) 第三步安装配置hive: 搭建hadoop+spark+hive环境(centos极速安装和配置hive) I、下载并且解压hive #下载hive wget http: // apache.claz.org/hive/hive-2.3.6/apache-hive-2.3.6-bin.tar.gz #解压 tar zxf apache-hive- 2.3 . 6 -bin. tar .gz #移动到hadoop文件夹中 mv apache-hive- 2.3 . 6 -bin /usr/local/hadoop/hive- 2.1 . 1 #配置系统环境变量 vim /etc/profile #添加下面三行 export HIVE_HOME=/usr/local/hadoop/hive export HIVE_CONF_DIR=$HIVE_HOME/conf export PATH=$PATH:$HIVE_HOME/bin II、安装其他依赖包 1、mysql-connector驱动 #下载mysql- connector 驱动

使用Thrift让Python和C#可以相互调用

馋奶兔 提交于 2020-04-22 05:23:29
在聊如何使用Thrift让Python和C#可以互相调用之前,我们先来看看下面的话题。 一、什么是微服务、微服务的特征、诞生的背景、优势和不足   微服务:使用一套小服务来开发单个应用的方式,每个服务运行在 独立的进程中, 一般采用 轻量级的通讯机制 互联 , 并且他们可以通过 自动化 的方式部署。   微服务的特征:   1)单一职责 2)轻量级通讯 3)隔离性 4)有自己的数据 5)技术多样性   微服务诞生的背景:   1)互联网行业的快速发展 2)敏捷开发,精益方法深入人心 3)容器技术的成熟   优势:   1)独立性,各自开发自己的模块互不影响 2)敏捷性,能很快响应需求的变化 3)高效团队 4)技术栈灵活,可以使用多种语言进行混合开发。   不足:   1)额外的工作   拆分的太小,服务越多,服务之间的调用 就会过多,造成不必要的性能损耗。   拆分的太大,就会失去微服务的优势。   2)数据的一致性   单体架构可以通过事务很轻松的实现数据的一致性,但是微服务,他们都有自己的数据库,即使我们在拆分微服务是保证数据库的联表操作,尽量让它在同一个微服务内,但是也很保证没有这种意外的情况,一旦出现就会对我们的数据一致性造成影响。   3)沟通成本增加 二、微服务架构带来的问题   采用微服务架构会带来很多问题,在这里只讨论微服务之间是如何通讯的。   1