logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

C++实现分布式网络通信框架RPC(3)--rpc调用端

在前边的文章中,我们已经大致实现了rpc服务端的各项功能代码,接下来我们就来看看,如果一个rpc调用端想要调用都要干什么。到这里我们基本已经实现了整个框架,包括rpc发布端rpc方法的发布和rpc调用端的调用。后面我们还要给整个框架添加必不可少的一个模块——日志模块,还有zookeeper在本项目上的应用。见下一文!

文章图片
#分布式#rpc#网络协议
C++实现分布式网络通信框架RPC(5)——分布式协调服务zookeeper、一键编译.sh

在前边的文章中我们已经基本实现了一个rpc远程调用框架,并且给它也设计了日志系统的模块,现在我们还差最后一步,那就是分布式绕不开的一个东西--分布式协调服务。那我们的rpc远程调用框架为什么需要用到分布式协调服务呢?到现在为止还有什么不足之处呢?

文章图片
#分布式#rpc#zookeeper +1
手写Muduo网络库核心代码3--详解CurrentThread类、Eventloop类

为了保证线程安全和事件处理的正确性,必须确保每个 Channel 的事件只能由其所属的 subReactor 所在线的线程来处理。即Muduo 通过 mainReactor 监听新连接,并将连接分发给多个 subReactor,每个 subReactor 在独立线程中处理其 Channel 的 I/O 事件。为了确保事件只能由所属线程处理,必须借助 CurrentThread 获取线程身份,实现线

文章图片
#服务器#运维
Docker学习--认识Docker

开发人员在本地电脑(Windows/Mac)上开发、测试通过的应用,部署到测试、预发或生产服务器(通常是 Linux)时,可能因为操作系统、库版本、依赖软件(如 Python、Node.js、MySQL 版本不同)导致运行失败或行为异常。传统部署需要手动或脚本化地在服务器上安装各种运行环境、配置依赖、设置端口、管理进程等,过程繁琐,容易出错,且难以快速复制和扩展。在使用虚拟机(VM)创建操作系统时

文章图片
#docker#服务器#容器 +2
Docker学习--认识Docker

开发人员在本地电脑(Windows/Mac)上开发、测试通过的应用,部署到测试、预发或生产服务器(通常是 Linux)时,可能因为操作系统、库版本、依赖软件(如 Python、Node.js、MySQL 版本不同)导致运行失败或行为异常。传统部署需要手动或脚本化地在服务器上安装各种运行环境、配置依赖、设置端口、管理进程等,过程繁琐,容易出错,且难以快速复制和扩展。在使用虚拟机(VM)创建操作系统时

文章图片
#docker#服务器#容器 +2
Docker--Docker-compose容器编排、轻量级可视化工具Portainer、CIG重量级监控

可以很容易的用一个配置文件定义一个多容器的应用,然后使用一条指令安装这个应用的所有依赖,完成构建。Grafana是一个开源的数据监控分析可视化平台,支持多种数据源配置(支持的数据源包括InfluxDB、MySQL、Elasticsearch、OpenTSDB、Graphite等)和丰富的插件及模板功能,支持图表权限控制和报警。CAdvisor是一个容器资源监控工具,包括容器的内存、CPU、网络IO

文章图片
#docker#eureka#容器
数据结构——B-树、B+树、B*树

在之前,我们已经学习了很多的数据结构,当我们处理海量数据时,选择合适的数据结构变得至关重要,对于不同的数据结构它们的搜索效率也存在着很大的差异。如下种类数据格式时间复杂度顺序查找无要求O(N)二分查找有序O(log⁡2N)二叉搜索树无要求O(N)二叉平衡树(AVL树和红黑树)无要求O(log⁡2N)哈希无要求O(1)以上结构适合用于数据量相对不是很大,能够一次性存放在内存中,进行数据查找的场景。

文章图片
#数据结构#b树#哈希算法
数据结构——图及其C++实现 多源最短路径 FloydWarshall算法

前两篇学习的Dijkstra算法和Bellman-Ford算法都是用来求解图的单源最短路径,即从图中指定的一个源点出发到图中其他任意顶点的最短路径。Dijkstra算法不能求解带有负权重的图的最短路径,而Bellman-Ford算法弥补了这个缺点。本篇文章再来见识一下一个求解多源最短路径的算法——Floyd-Warshall算法。多源最短路径–Floyd-Warshall算法Floyd-Warsh

文章图片
#数据结构#c++#算法
Docker学习--认识Docker

开发人员在本地电脑(Windows/Mac)上开发、测试通过的应用,部署到测试、预发或生产服务器(通常是 Linux)时,可能因为操作系统、库版本、依赖软件(如 Python、Node.js、MySQL 版本不同)导致运行失败或行为异常。传统部署需要手动或脚本化地在服务器上安装各种运行环境、配置依赖、设置端口、管理进程等,过程繁琐,容易出错,且难以快速复制和扩展。在使用虚拟机(VM)创建操作系统时

文章图片
#docker#服务器#容器 +2
Docker学习--认识Docker

开发人员在本地电脑(Windows/Mac)上开发、测试通过的应用,部署到测试、预发或生产服务器(通常是 Linux)时,可能因为操作系统、库版本、依赖软件(如 Python、Node.js、MySQL 版本不同)导致运行失败或行为异常。传统部署需要手动或脚本化地在服务器上安装各种运行环境、配置依赖、设置端口、管理进程等,过程繁琐,容易出错,且难以快速复制和扩展。在使用虚拟机(VM)创建操作系统时

文章图片
#docker#服务器#容器 +2
    共 13 条
  • 1
  • 2
  • 请选择