grpc运维平台系统(grpc服务端)

来源网友投稿 884 2023-01-10

本站部分文章、图片属于网络上可搜索到的公开信息,均用于学习和交流用途,不能代表睿象云的观点、立场或意见。我们接受网民的监督,如发现任何违法内容或侵犯了您的权益,请第一时间联系小编邮箱jiasou666@gmail.com 处理。
本篇文章给大家谈谈grpc运维平台系统,以及grpc服务端对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。 今天给各位分享grpc运维平台系统的知识,其中也会对grpc服务端进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

gRPC入坑记

概要

由于gRPC主要是谷歌开发的,由于一些已知的原因,gRPC跑demo还是不那么顺利的。单独写这一篇,主要是gRPC安装过程中的坑太多了,记录下来让大家少走弯路。

主要的坑:

本文讲解gRPC demo的同时,会介绍如何解决这些坑。本文对应的Github地址:https://github.com/52fhy/grpc-sample 。该仓库存储了demo示例,以及部分系统编译好的二进制包,大家觉得有些步骤里耗时实在太长了,可以直接clone该仓库,复制二进制包到对应目录(仅限测试开发,生产环境还是老老实实自己编译吧)。

升级GCC

gRPC命令行工具编译需要使用 GCC4.8及以上版本。CentOS6系列的内置版本是GCC4.7。

如果你的系统GCC版本=4.8,可以忽略本节。如果仅使用golang、java,请忽略本节。

如果需要升级gcc至4.8或更高版本,建议直接采用安装SCL源之后安装devtoolset-6(devtoolset-6目前gcc版本为6.3),因为devtoolset-4及之前的版本都已经结束支持,只能通过其他方法安装。

升级到gcc 6.3:

需要注意的是scl命令启用只是 临时 的,退出shell或重启就会恢复原系统gcc版本。如果要长期使用gcc 6.3的话:

这样退出shell重新打开就是新版的gcc了。其它版本同理。

升级到gcc 7.3:

已经停止支持的devtoolset4(gcc 5.2)及之前版本的安装方法,可能比较慢,大家感兴趣的话可以尝试。

编译gRPC命令行工具

gRPC分C、JAVA、GO、NodeJS版本,C版本包括C++, Python, Ruby, Objective-C, PHP, C#,这些语言都是基于C版本开发的,共用代码库一个代码库。

如果使用C版本的gRPC,最终要从源码里编译出下列工具:

这些工具作为插件供proto编译器使用。需要先下载 grpc/grpc github上的源码。

这里有2个坑:

1、grpc/grpc仓库比较大,鉴于国内访问的网速,建议使用国内镜像。码云(https://gitee.com)提供了同步更新的镜像地址:

这样下载速度提高了不少。

2、git submodule update这个命令实际就是在下载.gitmodules文件里定义的第三方依赖项到third_party目录,这个依赖项有很多,大家可以打开.gitmodules文件查看下详情。依赖的仓库都在github上,下载没几个小时是下载不下来的,就等着慢慢下载吧。

回头想想,我们花费了很多时间,结果只是为了得到grpc的proto编译插件。

PHP相关支持

PHP暂时不支持作为grpc的服务端。作为客户端是可以的,需要机器安装:

其中protoc和protobuf c扩展已经在 Protobuf 小试牛刀 介绍过了,这里不再赘述。上一小节里如果安装成功,那么grpc_php_plugin也是有了的。下面介绍如何安装PHP版的gRPC库。

安装grpc c扩展:

要求:GCC编译器需要4.8及以上版本。可以使用pecl安装:

也可以指定版本:

或者下载源码(http://pecl.php.net/package/grpc)安装:

grpc/grpc代码库里也有PHP扩展的C源码,在grpc/src/php/ext/grpc目录,进去也可以直接编译。

编译完成后在php.ini里添加,使用php --ri grpc可以查看信息。

安装完C扩展后,还需要使用composer安装grpc的库:

gRPC示例

编写gRPC proto

一共定义了三个文件:

其中 User 作为 Model定义,Response 用于 RPC统一返回定义,GreeterService 则是服务接口定义。

限于篇幅,proto文件详见 https://github.com/52fhy/grpc-sample 仓库的proto目录。

GreeterService.proto文件内容如下:

这里面定义了一个service,相当于定义了一个服务接口,我们把方法名、参数定义好了,后面需要去实现它。由于gRPC不支持PHP作为服务端,这里我们使用Golang作为服务端。

首先需要使用proto工具编译出golang的代码:

执行成功,会在 Pb_Go目录里生成Go代码:

如果需要生成PHP客户端的代码,则需要使用grpc php的命令行工具grpc_php_plugin,前面小结如果执行成功,这个工具已经有了。然后:

最终生成的文件:

注意:编译那里如果我们不加--grpc_out=../$out --plugin=protoc-gen-grpc=/usr/local/bin/grpc_php_plugin,生成的PHP类是没有GreeterClient的。这个文件是gRPC编译工具自动生成的,用于连接gRPC服务端。

go编写服务

我们用Golang写服务端。上面虽然生成了Golang的部分代码,但真正的服务还没有写呢。

main.go

首先我们新建个main.go,代码不多,我直接贴出来:

然后就可以编译了。

有个大坑:go build main.go的时候会先下载go.mod里定义的依赖(依赖比较多,详情查看:https://github.com/52fhy/grpc-sample/blob/master/go.mod),其中下面这条非常慢,仓库太大了,虽然重定向到github:

为了快速下载,我在码云上做了镜像,地址:gitee.com/52fhy/google-api-go-client 。改了之后下载快多了。

编译成功后,生成了二进制文件main。我们可以直接运行:

go test

为了测试我们写的服务是否正常,可以写测试用例:

test_client.go

运行:

运行有点慢,感觉依赖的库多了。

php客户端

使用gRPC PHP客户端,确保你已经安装了:

示例:

client_test.php

运行后输出:

常见问题

1、CentOS6使用 go mod获取第三方依赖包unknown revision xxx错误

解决:其实go mod调用链中会用到一些git指令,当git版本比较旧时,调用失败产生错误,并给出歧义的提示信息。方法就是升级git版本,CentOS6自带的git是1.7版本。升级完毕后,再尝试go mod。

快速升级方法:

centos6:

2、PHP报错:Fatal error: Class 'Google\Protobuf\Internal\Message' not found

解决:请安装PHP的protobuf c扩展。

3、PHP报错:Fatal error: Class '\Grpc\BaseStub' not found

解决:使用composer require grpc/grpc安装grpc。另外对应的grpc C扩展也要安装。

4、下载 github release包很慢怎么办?

解决:下载Mac版 Free Download Manager 下载工具可以解决Github 下载缓慢或失败问题。速度嗖嗖的。

参考

1、为CentOS 6、7升级gcc至4.8、4.9、5.2、6.3、7.3等高版本

http://www.vpser.net/manage/centos-6-upgrade-gcc.html

2、centos 6.x/7.x使用yum升级git版本 - 夜空

https://blog.slogra.com/post-721.html

3、Protobuf 小试牛刀 - 飞鸿影

https://www.cnblogs.com/52fhy/p/11106670.html

(本文完)

智能运维管理平台是如何进行运维管理的?

IT运维从传统走向智慧,首先要经历数字化运维阶段,搭建数字运维中台既是实现运维数据有效治理的前提和基础,也是推进运维数智化转型的第一步。针对上述需求,擎创科技自主研发的擎创夏洛克AIOps智慧运营平台(如下图所示)可通过数字运维中台,对运维数据进行统一的采集存储和管理,即便面对高达100TB的日增数据量,也可进行秒级实时分析,为异常检测、根因定位等场景奠定坚实基础。


擎创夏洛克AIOps智慧运营平台架构


与传统运维方式相比,智能化运维最突出的优势是“数据大集中”,即基于数字运维中台建设,通过统一监控中心来集中管理和分析所有运维数据,并以业务视角观测运维数据的相关性,最终建立智能化场景来解决实际问题。擎创自主研发的智能运维产品——夏洛克AIOps智慧运营平台,刚好为此量身定制。它能以全局运营视角解读IT运维,在AI算法平台的支撑下实现包括精准告警、异常检测、根因定位和容量分析等场景,助力企业数字化业务高效、稳定和顺畅运行。


擎创夏洛克AIOps智慧运营平台架构


目前,夏洛克AIOps已在政府机关组织、银行业、证券保险业和交通运输业等行业场景中应用落地,极大节省了企业客户的人力成本和资金成本,提升了运维的有效性和质量。例如,通过为客户构建智能运维平台,轻松应对日增80TB的数据量,让客户平均故障修复时间(MTTR)缩短150%以上,运维总体拥有成本(TCO)下降80%以上。

运维的运维工程师使用的平台、工具

运维工程师使用的运维平台和工具包括: Web服务器:apache、tomcat、nginx、lighttpd 监控:nagios、ganglia、cacti、zabbix 自动部署:ansible、sshpt 配置管理:puppet、cfengine 负载均衡:lvs、haproxy 传输工具:scribe、flume 备份工具:rsync、wget 数据库:mysql、oracle、sqlserver 分布式平台:hdfs、mapreduce、spark、storm、hive 分布式数据库:hbase、cassandra、redis、MongoDB 容器:lxc、docker 虚拟化:openstack、xen、kvm 安全:kerberos、selinux、acl、iptables 问题追查:netstat、top、tcpdump、last 广义上所有开源的软件都是运维工程师会使用到的平台和工具,同时也包括运维各个技术方向上自行研发的各类平台。

阿里云的智能运维平台是什么

智能运维系统是阿里云Elasticsearch(简称ES)的辅助产品,提供集群、节点、索引等二十余个诊断项的健康检测功能。
通过智能运维系统,您可以探测集群潜在风险,寻找最佳解决方案。同时智能运维系统还会自动归纳集群诊断结果,帮助您掌握集群最新态势,提取关键信息,让开发更便捷。智能运维系统支持以下功能:
开启或关闭智能运维服务、查看集群概况、诊断集群健康状况、支持定时诊断和自主诊断,并且可以选择诊断索引和诊断项、查看历史诊断报告。 关于grpc运维平台系统和grpc服务端的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。 grpc运维平台系统的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于grpc服务端、grpc运维平台系统的信息别忘了在本站进行查找喔。
上一篇:基于NB-IOT的一站式城市智慧燃气安监解决方案
下一篇:智通信机房智能运维平台(信息机房运维)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~