使用go micro开发微服务详解

本文介绍了微服务架构的优势,并详细阐述了如何使用Go Micro进行微服务开发。从安装必要的插件开始,逐步讲解服务端的定义、编译、服务逻辑开发以及服务注册与运行。接着,介绍了客户端的开发过程,包括编译和逻辑实现,强调了服务发现和名称映射的重要性。
摘要由CSDN通过智能技术生成

初识微服务

微服务架构是用来替换传统的单体架构的。它使用细颗粒度的服务及其组合来完成一个业务系统的工作。服务间是以一种约定来进行通信。微服务架构会带来如下的好处:

  • 开发团队可以并行进行开发工作;
  • 新加入的工作人员更容易上手;
  • 可以在组成系统的组件级别上进行持续集成和持续交付;
  • 它是一个松散的架构,不同的组件更容易替换;
  • 微服务架构不依赖与特定的语言和技术;

当谈论微服务时,服务的编排和发现是非常重要的。例如Kubernetes就用于编排docker容器。通常来说一个微服务对应一个容器是一个比较好的实践。
服务发现是一个自动化发现一个微服务实例的IP地址的过程。服务发现避免了硬编码IP地址的问题。

Go Micro

Netflix’s Eureka和Spring Boot是非常有名的用于创建微服务的框架。 Go Micro提供了同样的能力。它是一个使用Golang创建微服务的工具集。它非常轻量化,这意味在开始使用时它比较容易上手,而且体积会比较小,但随着服务数量增加和业务的复杂化,它也可以变得很大。
它创建微服务的方式对于Golang开发者来说非常友好。Go Micro可以使用插件进行特性的扩充,Go Micro支持以下特性:

  • 服务发现
  • 负载均衡
  • 消息编码
  • 异步消息
  • 可插拔的插件体系架构

开发微服务

下面我们就进行具体的微服务开发工作,在这里我们的客户端和服务端通过gRPC进行通信

安装必要的插件

go get -u github.com/golang/protobuf/protoc-gen-go
go get github.com/micro/protoc-gen-micro

开发服务端

定义微服务

首先我们需要使用protocol buffers对我们的服务进行定义:

syntax = "proto3";

option go_package =  "protofiles";

service Encrypter {
   
  rpc Encrypt(Request) returns (Response) {
   }
  rpc Decrypt(Request) returns (Response) {
   }
}

message Request {
   
  string message = 1;
  string key = 2;
}

message Response {
   
  string result = 1;
}

编译

在我们定义完服务后,就可以在项目根目录下使用如下命令进行编译:

protoc -I=. --micro_out=. --go_out=. protofiles/encryption.proto

参数说明

  • 7
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值