【GrowingIO源码】【九阴ol源码】【城市门户源码php】protobuf.net 源码
1.【实战】02.telemetry静态订阅获取华为设备信息
2.微信视频号的分析步骤
3.一个.Net Core开源缓存中间件,让你更加简单、方便使用缓存
4..net gRPC初探 - 从一个简单的Demo中了解并学习gRPC
5.gRPC之.Net6中的初步使用介绍
【实战】02.telemetry静态订阅获取华为设备信息
致谢及友情链接
感谢弈心老师和他的专栏《网路行者》以及朱嘉盛老师的专栏《网工手艺》,两位老师深耕NetDevOps领域,致力于打通国内外信息壁垒,为网络工程师提供了宝贵的GrowingIO源码学习资源。
概述
telemetry,广义上是指包括采集器、分析器、控制器和设备共同构成的一个自闭环系统,而狭义上则特指设备采样数据上送给采集器的功能。传统网络监控手段的缺陷促使telemetry的产生,以满足更高效、精确的网络监控需求。
telemetry特点
telemetry通过多种方式实现,如基于gRPC的九阴ol源码Telemetry、基于INT的Telemetry、基于ERSPAN的Telemetry和Telemetry Stream。其中,gRPC提供高性能的远程过程调用框架,适用于多种编程语言的网络设备配置与管理;INT技术从设备上采集数据,实现带内网络遥测;ERSPAN技术通过三层远程镜像复制报文,用于网络监控和故障排除;Telemetry Stream专注于网络流量监控,对流量传输路径和时延进行精确定位。
YANG
YANG是一种用于定义基于NETCONF协议通信的客户端和服务器之间交互模型的数据模型语言,类似于SNMP的MIB文件。它主要用来描述数据结构。
实验拓扑
实验采用eve-ng平台,使用NE-NE设备作为数据推送客户端,本机作为服务器端进行数据收集。
配置静态订阅
静态订阅采用gRPC-out方式,城市门户源码php实现数据的主动上送。
编写proto文件
关于proto文件的环境搭建和工具使用,参考了上文关于“GRPC的实验”。
生成python代码
使用python命令行执行生成python源文件,根据需要引入protobuf相关代码。
编写服务端代码
引入python模块,根据服务端代码位置和proto生成的代码位置进行修改。
设备运行验证
运行telemetry_server.py文件,开始侦听数据。通过解码huawei-devm.proto和openconfig-interfaces.proto文件,分析数据包信息。
复盘与总结
本文未详细解析代码,旨在提供实验指导和代码理解的引导。读者如有疑问欢迎讨论,建议实践操作,vb修改封包源码以加深理解。对于动态订阅的实践,未来可作为扩展内容。下次尝试锐捷设备的基于GRPC的telemetry功能,持续探索网络监控技术。
微信视频号的分析步骤
深入解析微信视频号的运行机制,关键在于理解其底层的数据传输和处理流程。核心原理为protobuf数据通过NetScene请求并接收。为了从代码层面进行探索,需要采取一系列步骤。
第一步,利用日志工具进行hook,随后启动应用并观察日志输出,寻找与视频号界面交互相关的名称或其他标识信息。
第二步,百易源码社区针对性地在日志中搜索特定关键词,比如"contact info"等,进而定位到相关类或方法。通过这种方式,能够初步发现与视频号功能相关的代码块。
第三步,使用搜索工具,依据在前两步中发现的关键词,对项目代码进行深度搜索。这一过程有助于找到更细致的实现细节和功能逻辑。
通过上述步骤,我们能够逐步揭开微信视频号的内部运作机制,为深入学习和理解其功能提供了路径。这些方法和技巧对于开发者和爱好者来说,无疑是一份宝贵的参考资源。
一个.Net Core开源缓存中间件,让你更加简单、方便使用缓存
更多开源项目请查看:一个专注推荐.Net开源项目的榜单
上次给大家推荐过一个缓存中间件《一个C#开发的非常实用的缓存中间件》,今天再给大家推荐一个缓存中间件,两者功能相似,都提供统一接口、多级缓存、分布式缓存、支持多种Provider等。
这是一个基于.Net Core开发的缓存中间件,它支持各种缓存并提供了很多高级功能。其主要目标是让开发人员开发更简单、特别是一些复杂的缓存场景。
1、统一缓存接口:方便我们随时调整缓存策略;
2、支持多种缓存:可以满足我们多种业务场景;
3、支持多种缓存系列化:BinaryFormatter、Newtonsoft.Json,MessagePack和Protobuf;
4、支持缓存AOP:able, put,evict,可以简化我们的代码量;
5、多实例支持;
6、支持Diagnostics:方便我们跟踪定位;
7、针对Redis支持特殊Provider:比如原子递增递减的操作等等;
8、二级缓存。
1、跨平台:这是基于.Net Core开发的系统,可以部署在Docker, Windows, Linux。
2、基于Net 6.0开发。
3、支持缓存类别:本地缓存:InMemory,SQLite;分布式缓存:StackExchange.Redis,csredis,EnyimMemcachedCore。
配置缓存
在Startup.cs,配置缓存
使用方式
ResponseCache缓存
AOP缓存
github.com/dotnetcore/E...
- End -
.net gRPC初探 - 从一个简单的Demo中了解并学习gRPC
gRPC是一种与语言无关的高性能远程过程调用(RPC)框架。
gRPC的主要优点包括:
这些优点使gRPC适用于:
一、从一个简单的Demo中了解并学习gRPC
1、创建gRPC服务端
1)新建一个gRPC项目
2)新建好的初试gRPC项目结构如下
3)proto文件
4)服务:proto中的方法具体实现
5)proto会自动生成两个类文件,保存proto重新生成即可
6)在项目的工程文件中(.csproj)可以看到此时的文件情况
7)开始自己新建上述文件
① 首先新建一个proto文件
添加新项,选择协议缓冲区文件
② 更改新建proto文件的属性
点击项目初始化的greet.proto文件可以看到其属性
根据初始文件更改我们新建的people.proto文件的属性,注意:生成操作选择[Protobuf compiler]
gRPC Stub Classes生成操作选择[Server only]
③ 此时,查看工程文件可以看到我们新建文件及其属性设置:和初始文件一样是一个服务器端的协议缓冲区文件
④ 按照greet.proto更改people.proto文件,编写服务,增加一个查询方法,并定义其请求类和响应类
注意:这里的int类型不同于.net代码中的int类型,短整型用int表示,长整型用int表示
⑤ 保存并生成people.proto文件,可以看到此时也生成了两个people.proto的类文件
⑥ 实现上述的服务:查询方法
注:这里的People.PeopleBase是由people.proto自动生成的类文件中的基类
⑦ 在Startup.cs中注册我们编写的服务
⑧ 至此,服务端新建完成
2、创建gRPC客户端
1)在解决方案上右键新建一个控制台程序
2)在NuGet程序包管理器中添加如下程序包
3)把服务端的proto文件拷贝过来
4)更改两个proto文件的gRPC Stub Classes属性为[Client only],查看客户端程序的工程文件即可看到更新
5)客户端也生成了两个proto的类文件
6)编写基于6.0\Protos目录下生成对应的类文件。调用gRPC服务端提供的https地址或http地址,分别在客户端项目中新建类文件UserTest.cs,进行调用,并运行以验证调用成功。
在WebApi中使用gRPC,通常我们会使用WebApi对外提供数据接口服务。在.NET 6的WebApi中,可以使用gRPC来提供服务,步骤如下:新建一个名称为Quber.Grpc.Web的项目,添加Grpc.AspNetCore依赖包,复制Quber.Grpc.Service项目中的文件到Web项目中,并在Web项目的配置中添加节点配置。注册gRPC服务和UserService服务,启动项目进行验证。这样,我们就在Web项目中成功实现了gRPC服务。