logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

基于脚手架微服务的视频点播系统-客户端业务逻辑处理部分(二)

写这部分代码的时候碰到了两次bug,耗时很久就解决了一个,所以才鸽了一个月再来更新。这里先提前说一下本文结束时代码的bug。当然不是代码的问题经排查,是ffmpeg我最开时时版本使用的有问题。导致mpv通过url播放远端服务器上的m3u8文件时不能通过调整进度条正确设置播放位置。为什么这里不解决了呢,是因为这个问题仅出现在本地环回测试上,而博主在写服务端时搁服务端弄了个m3u8文件让我这个“有问题

文章图片
#微服务#架构#云原生 +3
基于脚手架微服务的视频点播系统-脚手架开发部分-gflags,gtest及splog中间件的认识与使用

gflags是 Google 开发的⼀个开源库,⽤于 C++ 应⽤程序中命令行参数的声明、定义和解析。gflags 库提供了⼀种简单的方式来添加、解析和文档化命令⾏标志(flags),使得程序可以根据不同的运⾏时配置进行调整。编译时需要链接库-lgflags利⽤ gflags 提供的宏定义来定义参数。该宏的3个参数分别为命令⾏参数名,参数默认值,参数的帮助信息。DEFINE_bool(reuse_

文章图片
#微服务#中间件#架构 +1
基于脚手架微服务的视频点播系统-脚手架开发部分-brpc中间件介绍与使用及二次封装

RPC(Remote Procedure Call)远程过程调⽤,简单来说就是客⼾端在不知道调⽤细节的情况下,调⽤远程计算机上的某个功能就像调⽤本地功能⼀样,其主要⽬标就是让构建分布式计算(应⽤)更容易,在提供强⼤的远程调⽤能⼒时不损失本地调⽤的语义简洁性。因为brpc自带有日志输出模块,与websocket一样,无法更换除非改库内源码中所有的⽇志输出操作后重新编译库进⾏安装。

文章图片
#微服务#中间件#架构 +2
基于脚手架微服务的视频点播系统-脚手架开发部分-jsoncpp,protobuf,Cpp-httplib与WebSocketpp中间件介绍与使用

JSON(JavaScript Object Notation)是⼀种轻量级的数据交换格式,易于⼈阅读和编写,同时也易于机器解析和⽣成。它基于JavaScript的⼀个⼦集,但尽管它来源于JavaScript,JSON是独⽴于语⾔的,可以被多种编程语⾔读取。对象:由键值对组成,⼤括号{}包围。数组:由值的有序集合组成,⽅括号[]包围。值:可以是字符串、数字、对象、数组、布尔值( true / fa

文章图片
#微服务#中间件#c++ +2
基于脚手架微服务的视频点播系统-脚手架开发部分-FFmpeg,Etcd-SDK的简单使用与二次封装

为了能够与其他功能进⾏解耦,因此这⾥封装的时候由外部传⼊针对服务上线和下线所进⾏处理的接口进⾏回调处理,当前模块部分本⾝并不关注具体事件该如何处理。封装服务注册类,将客⼾端请求与租约保活部分封装起来,向外提供⼀个接⼝能够实现数据的新增即可,通过实例化的对象可以⽅便快捷的实现服务注册功能。封装服务发现类,将客⼾端请求与路径监视部分封装起来,通过实例化的对象可以⽅便快捷的实现服务发现功能,并针对发现的

文章图片
#微服务#etcd#c++ +2
基于脚手架微服务的视频点播系统-脚手架开发部分AMQP-SDK的简单使用与二次封装

AMQP,即Advanced Message Queuing Protocol,⼀个提供统⼀消息服务的应⽤层标准⾼级消息队列协议,是应⽤层协议的⼀个开放标准,为⾯向消息的中间件设计。基于此协议的客⼾端与消息中间件可传递消息,并不受客⼾端中间件不同产品,不同的开发语⾔等条件的限制。Erlang中的实现RabbitMQ等。

文章图片
#微服务#架构#云原生 +2
基于脚手架微服务的视频点播系统-客户端业务逻辑处理部分(三)-客户端主体部分完结

当用户需要进行一些比较敏感的操作时,我们需要为用户提供一个缓冲,再次确认用户是否需要进行此操作。比如退出登录,所以我们这里新增一个提示窗口,因为其构造较为简单,所以我们这里直接选择普通类即可,继承自QDialog:效果如下:我们这里有两种登录方式,一种是在已经有账户的情况下可以直接进行账密登录。而另一种的登录方式则是验证码登录,有账号时直接登录,没有则进行注册。我们先来处理后一种情况。请求url:

文章图片
#微服务#架构#云原生 +3
基于脚手架微服务的视频点播系统-脚手架开发部分(完结)elasticsearch与libcurl的简单使用与二次封装及bug修复

Elasticsearch, 简称ES,它是个开源分布式搜索引擎,它的特点有:分布式,零配置,⾃动发现,索引⾃动分⽚,索引副本机制,restful⻛格接⼝,多数据源,⾃动搜索负载等。它可以近乎实时的存储、检索数据;本⾝扩展性很好,可以扩展到上百台服务器,处理PB级别的数据。es也使⽤Java开发并使⽤Lucene作为其核⼼来实现所有索引和搜索的功能,但是它的⽬的是通过简单的RESTful API来

文章图片
#微服务#elasticsearch#bug +3
基于脚手架微服务的视频点播系统-服务端开发部分接口定义,数据库表设计,视频索引设计,缓存与消息队列设计部分

我们此前在客户端业务逻辑层定义的RESTful风格接口,现在需要在服务端通过Protobuf进行重构定义。因为我们的所有客户端请求会发起http请求到网关,然后网关再通过rpc调用相应的子服务,大致演示流程如下:所以基于我们之前在客户端实现业务逻辑定义的一系列RESTful接口,这里我们为服务端也来定义下相关接口,不过需要注意的是,这里因为手机验证码无法个人使用,所以我们之前改为了邮箱验证,因此下

文章图片
#微服务#数据库#音视频 +4
基于脚手架微服务的视频点播系统-服务端开发部分[一]文件子服务实现

字段类型约束空值备注IDPKNOT NULL文件IDUKNOT NULL上传用户IDNKNOT NULL存储路径NOT NULLFASTDFS存储ID文件大小NOT NULL文件mimeNOT NULL//data.h//定义所有的数据库表结构/*文件元信息表*/table。

文章图片
#微服务#架构#云原生 +3
    共 73 条
  • 1
  • 2
  • 3
  • 8
  • 请选择