RPC 框架

Go Micro 初探及其底层架构

前面几篇分享学院君已经给大家介绍了微服务的背景和概念、总体设计、适用场景、服务拆分以及要提前做好的技术保障,接下来我们正式开始介绍微服务的开发。目前,市面上已经有很多符合我们前面介绍的满足微服务...

由 学院君 发布于8 months ago    浏览数: 4816    点赞数: 0

基于 Go Micro 框架构建一个简单的微服务接口

友情提示:由于 Go Micro 已经将 Consul 从开箱支持调整为插件支持,所以本篇教程对于新手已经不再适用,最新版本教程在这里:https://xueyuanjun.com/post...

由 学院君 发布于8 months ago    浏览数: 6832    点赞数: 4

基于 Go Module 管理依赖并将注册中心调整为 Etcd

前言 由于 Go Micro 框架去年年底将 Consul 从默认支持的注册中心调整为通过插件机制引入,导致很多同学反映按照基于 Go Micro 框架构建一个简单的微服务接口这篇教程遇到很多...

由 学院君 发布于2 months ago    浏览数: 3068    点赞数: 3

通过 HTTP 请求调用 Go Micro 提供的微服务接口

上篇分享我们简单介绍了基于 Go Micro 框架构建第一个微服务接口,并且编写了简单的客户端测试代码,但是这个客户端代码也是集成在 Go Micro 项目中的,需要调用相应的 Go Micro...

由 学院君 发布于8 months ago    浏览数: 3206    点赞数: 0

Go Micro 底层是如何将服务注册到 Consul 的

前面两篇分享学院君已经简单介绍了基于 Go Micro 框架实现服务接口的发布和调用,接下来,我们以 Consul 作为注册中心为例,介绍 Go Micro 框架底层是如何将服务注册到 Co...

由 学院君 发布于7 months ago    浏览数: 1582    点赞数: 0

基于 Consul 的 Go Micro 客户端服务发现是如何实现的

上篇分享我们介绍了基于 Consul 作为注册中心的 Go Micro 服务注册底层实现原理,今天我们来看看 Go Micro 中客户端服务发现是如何实现的。 客户端服务发现要复杂一些,涉...

由 学院君 发布于7 months ago    浏览数: 1160    点赞数: 1

微服务中的 API 网关模式概述

前面我们介绍过,Go Micro 框架可以通过 API 网关方式对外提供统一接口,以便客户端可以通过 HTTP 方式请求网关背后的微服务。接下来,我们通过源码来探究 Go Micro 中的 AP...

由 学院君 发布于7 months ago    浏览数: 1379    点赞数: 0

Go Micro 中的 API 网关实现 —— Micro API 底层源码剖析(上)

Micro API 架构模式 上篇分享学院君给大家介绍了微服务中为什么需要 API 网关以及 API 网关的两种架构模式,今天我们以 Go Micro 框架为例,介绍其 API 网关的底层实现...

由 学院君 发布于7 months ago    浏览数: 1547    点赞数: 1

Go Micro 中的 API 网关实现 —— Micro API 底层源码剖析(下)

上篇分享学院君介绍了 Micro API 底层如何解析命令行参数并设置全局初始值,接下来,我们来看看 Micro API 网关启动之后,是如何将 HTTP 请求映射到对应的 API 处理器进行处...

由 学院君 发布于7 months ago    浏览数: 968    点赞数: 0

通过 Micro Web 仪表盘页面查看、测试 Go Micro 微服务接口

我们可以通过 Micro Web 提供的仪表盘页面查看和测试基于 Go Micro 提供的所有微服务接口,该功能和 Micro API 类似,通过如下命令启动: micro web ...

由 学院君 发布于7 months ago    浏览数: 945    点赞数: 0

通过 Micro Proxy 实现微服务之间的服务接口调用

前面我们介绍了从微服务内部(直接通过相应的 SDK)及客户端(通过 API 网关)调用微服务接口的实现,如果要从一个微服务调用另一个微服务的服务接口,该怎么做呢? Go Micro 为我们提供...

由 学院君 发布于7 months ago    浏览数: 886    点赞数: 1

微服务架构模式之 sidecar 模式(上):原理概述

问题引入 应用程序和服务通常需要一组相关的外围功能,例如监控、日志记录、配置和网络服务等。 对于单应用程序程序而言,这些外围功能往往紧密集成在主应用程序中,好处是可以在运行主应用程序的同一个...

由 学院君 发布于7 months ago    浏览数: 923    点赞数: 0

微服务架构模式之 sidecar 模式(下):应用实例

这篇分享学院君主要通过示例代码的方式演示在 PHP 中基于 Micro Proxy 实现微服务的注册和引用,并使其能够与现有的其它语言实现的微服务(如 Go、Python、Java 等)可以相互...

由 学院君 发布于7 months ago    浏览数: 863    点赞数: 0

通过命令行模式与 Go Micro 微服务进行交互

除了前面介绍的 Web 仪表盘之外,Micro 生态系统还提供了命令行接口与 Go Micro 微服务进行交互。 启动命令行 启动命令行模式很简单,运行如下命令即可: micro cli ...

由 学院君 发布于7 months ago    浏览数: 670    点赞数: 0

通过 Micro Bot 与 Go Micro 微服务进行交互

上篇分享我们介绍了通过 Micro CLI 与 Go Micro 微服务进行交互,除此之外,Micro 生态还支持通过机器人与 Go Micro 进行交互,我们可以在 Slack、HipChat...

由 学院君 发布于7 months ago    浏览数: 543    点赞数: 0

Go Micro 框架底层组件篇 —— Registry 底层源码剖析

从今天开始,学院君会花几篇教程的篇幅深入介绍 Go Micro 底层组件的实现原理,包括 Registry、Selector、Transport、Broker、Codec,首先从 Registr...

由 学院君 发布于7 months ago    浏览数: 658    点赞数: 0

注册中心篇(一):Consul 简介和使用入门

Consul 简介 我们前面已经介绍过,Go Micro 默认的注册中心是 mdns,这个是由 Micro 官方自己基于 Go 语言实现的组件。mDNS 是多播 DNS(Multicast D...

由 学院君 发布于7 months ago    浏览数: 1054    点赞数: 0

注册中心篇(二):Consul 服务注册与删除的底层实现

上篇分享我们简单介绍了 Consul 的基本原理,以及在开发模式下的启动过程,今天我们还是以开发模式为例,介绍在 Consul 底层,服务注册和发现是如何实现的。 服务注册 假设你已经在本地...

由 学院君 发布于7 months ago    浏览数: 732    点赞数: 0

注册中心篇(三):Consul 服务发现的底层实现

我们先回顾下通过客户端请求服务端部署的服务: // Create a new service. Optionally include some options here. service ...

由 学院君 发布于7 months ago    浏览数: 647    点赞数: 0

注册中心篇(四):通过 Consul 集群实现服务注册与发现

由于 Consul 是由 Hashicorp 公司开发的,而这个公司旗下还有一款著名的虚拟化工具 Vagrant,所以这篇教程我们基于 Vagrant 在本地通过虚拟机来演示如何搭建一个包含多个...

由 学院君 发布于7 months ago    浏览数: 526    点赞数: 0

注册中心篇(五):Etcd 简介和使用入门

基本介绍 除了 Consul 之外,在 Go 生态中,还可以选择基于 Etcd 作为注册中心,Etcd 是由 CoreOS 团队维护的、高可用分布式键值存储数据库,可用于为集群提供配置和...

由 学院君 发布于7 months ago    浏览数: 1075    点赞数: 0

注册中心篇(六):在 Go Micro 中集成 Etcd

集成演示 上篇分享我们简单介绍了 Etcd 的原理和本地安装,接下来,我们将其集成到 Go Micro 中作为注册中心实现服务注册与发现,Go Micro 默认并不支持 Etcd 作为注册中心...

由 学院君 发布于7 months ago    浏览数: 924    点赞数: 0

注册中心篇(七):Zookeeper 简介和使用入门

基本介绍 前面我们介绍了基于 Go 语言编写的、通过 Raft 算法实现分布式一致性的注册中心 Consul 和 Etcd,在 Go 语言微服务生态中,当然优先推荐使用这两个注册中心,不过...

由 学院君 发布于7 months ago    浏览数: 603    点赞数: 0

注册中心篇(八):集成 Zookeeper 到 Go Micro

以伪集群方式运行 上篇分享我们介绍了 Zookeeper 支持以单机和集群模式运行,单机模式用于开发环境,集群模式用于生产环境。单机模式上篇我们已经演示过了,这篇我们来看看如何通过集群模式...

由 学院君 发布于7 months ago    浏览数: 548    点赞数: 0

注册中心篇(九):Zookeeper 服务注册与发现的底层实现

上篇分享学院君给大家介绍了基于 Zookeeper 集群作为 Go Micro 框架的注册中心进行服务发现,这篇分享我想结合 Go Micro 源码给大家分析下底层是如何实现的。 服务注册 ...

由 学院君 发布于7 months ago    浏览数: 422    点赞数: 0

Go Micro 框架底层组件篇 —— Selector 底层源码剖析

前面我们花了很多篇幅介绍常见的注册中心以及如何将它们集成到 Go Micro 框架中,接下来,我们继续探索 Go Micro 的底层组件 —— Selector。关于 Selector 的底...

由 学院君 发布于7 months ago    浏览数: 610    点赞数: 0

Go Micro 框架底层组件篇 —— Transport 底层源码剖析(上)

前面学院君给大家介绍了 Go Micro 底层的 Registry 和 Selector 组件底层实现,这两个组件是用于服务注册和发现的,即找到微服务部署的节点进行通信,接下来我们来看下在...

由 学院君 发布于7 months ago    浏览数: 520    点赞数: 0

Go Micro 框架底层组件篇 —— Transport 底层源码剖析(下)

上篇我们介绍了基于 Go Micro 的微服务服务端启动时 Transport 组件底层的功能,主要是启动底层的 HTTP 服务器监听并处理客户端请求,请求的具体处理逻辑还是在 Server...

由 学院君 发布于7 months ago    浏览数: 403    点赞数: 0

Go Micro 框架底层组件篇 —— Codec 底层源码剖析

前面我们已经陆续介绍了 Go Micro 框架底层 Registry、Selector、Transport 组件的底层实现,并且在 Transport 组件中我们已经提到了 Codec 组件,如...

由 学院君 发布于7 months ago    浏览数: 594    点赞数: 0

通过 Broker 在 Go Micro 中实现基于事件驱动的异步通信

同步通信 vs 异步通信 今天我们来介绍 Go Micro 的最后一个组件 —— Broker,Broker 是一个异步消息组件,可用于在 Go Micro 微服体系中通过事件驱动实现基于...

由 学院君 发布于7 months ago    浏览数: 628    点赞数: 1

Go Micro 框架底层组件篇 —— Broker 底层源码剖析

Broker接口 今天这篇分享我们来看看 Go Micro 框架中 Broker 组件的底层实现。和其他组件一样,Go Micro 也是通过抽象接口的方式提供了 Broker 接口: t...

由 学院君 发布于7 months ago    浏览数: 435    点赞数: 0

Go Micro 框架增补篇:Protobuf 快速入门

Protobuf 简介 Protobuf 的全称是 Protocol Buffers,是 Google 开发的,诞生之初是为了解决服务器端新旧协议(高低版本)兼容性问题,所以取名叫做「协议...

由 学院君 发布于7 months ago    浏览数: 791    点赞数: 0

Go Micro 框架增补篇:集成 gRPC 网关对外提供服务

gRPC 是由一个 Google 公司开发的、基于 HTTP/2 和 Protobuf 的高性能开源通用 RPC 框架,且支持多种语言,如 Go、Java、Python、PHP、Node.j...

由 学院君 发布于7 months ago    浏览数: 769    点赞数: 0

Thrift 框架快速入门

Thrift 简介和系统架构 Thrift 是由 Facebook 开源的轻量级、跨语言 RPC 框架,为数据传输、序列化以及应用级程序处理提供了清晰的抽象和实现。我们可以通过中间语言 IDL...

由 学院君 发布于7 months ago    浏览数: 1213    点赞数: 1

基于 Thrift + Laravel 构建微服务(一):RPC 调用实现

上篇分享我们简单介绍了 Thrift 框架,本周学院君将会花几个篇幅的教程来介绍如何基于 Thrift + Laravel 构建微服务接口。 项目初始化 为此,我们先初始化一个新的 La...

由 学院君 发布于7 months ago    浏览数: 1807    点赞数: 0

基于 Thrift + Laravel 构建微服务(二):引入 Swoole 重构服务端实现

上篇分享学院君给大家演示了如何在 Laravel 项目中集成 Thrift 提供远程 RPC 服务调用,不过,Thrift 默认是基于 PHP 同步阻塞机制的,在应对高并发场景时性能上是个硬伤,...

由 学院君 发布于7 months ago    浏览数: 1290    点赞数: 0

基于 Thrift + Laravel 构建微服务(三):引入 Zookeeper 作为注册中心

前面我们介绍过,Thrift 只提供了传输层的解决方案,只能用作 RPC 框架来提供远程服务调用,如果要实现完整的微服务体系,需要自行实现服务发现、服务治理,下面我们就将借助开源的 Zookee...

由 学院君 发布于7 months ago    浏览数: 1178    点赞数: 0

Search Results