首页 > 系统相关 >2024go语言micro框架搭建踩坑解决(go版本: 1.22.5, 操作系统: ubuntu24.04, 感觉坑和操作系统版本无关)

2024go语言micro框架搭建踩坑解决(go版本: 1.22.5, 操作系统: ubuntu24.04, 感觉坑和操作系统版本无关)

时间:2024-07-17 14:07:13浏览次数:20  
标签:github 操作系统 proto ubuntu24.04 helloworld micro 版本 go protobuf

在这两天准备学习go语言微服务相关东西时要使用micro框架,因为看的视频是用的低版本go编译器和GOPATH,使用的是旧版本的micro框架,因为找不到和视频对应的框架版本,下载了半天跑不动

网上一搜全是22,21甚至更早的搭建micro的文档,很到东西现在不适应了(比如 "github.com/golang/protobuf/proto"已经没了, 改成 "google.golang.org/protobuf/proto"了, quic-go太低, 并且找不到naming, 我也不知道是什么, 反正好像也没有了), 实在找不下2024年的有关micro的框架搭建的文档,最后从github上照着作者的quick start终于搭建好了(官方地址: https://github.com/micro/micro?tab=readme-ov-file),以下就是搭建步骤和一些个人的心得(我比较喜欢先写坑有个准备再写步骤, 所以如果着急可以直接看第一步到第七步的命令, 有问题再回头看怎么解决):

安装 Micro CLI

  1. 第一步 (bash)

go install micro.dev/v4/cmd/micro@master

启动服务

我在启动时发现只有go install mirco的终端可以执行 mirco server, 其他终端又不能使用 micro 命令, 挺奇怪的, 不知道为什么, 所以我把 micro 给放到 /usr/bin/下面去了, 或者也可以去搜文档, 把 mirco 放到自己指定的目录并在环境变量中配置一下就好了

// 放入 /usr/bin 的方法: (bash)
找到自己第一步 install 的 mirco (通常在 $GOPATH/bin 下), 然后 cp mirco /usr/bin
  1. 第二步 (bash)

micro server

打开一个新终端, 在 mirco server 启动时 在新终端执行命令

  1. 第三步

micro env set local

登录用户名和密码 (用户名/密码): admin/micro

  1. 第四步

micro login
# `Enter username:` admin
# `Enter password:` micro
# `Successfully logged in.`

然后就可以创建案例(eg: helloworld)

  1. 第五步

micro new helloworld

然后它就会输出下面这些话

Output

Creating service helloworld

.
├── main.go
├── handler
│   └── helloworld.go
├── proto
│   └── helloworld.proto
├── Makefile
├── README.md
├── .gitignore
└── go.mod

打开该项目(如果使用的是 goland就直接 open project 这个 micro new 出来的 helloworld, 如果使用 bash 命令行就直接 cd helloworld 中)

`如果没有下载 protoc... (这个文档好像比较丰富, 可以找到关于 go 语言的 proto 的环境的下载, 如果找不到可以和我私信或留言) 下载 (protoc-$VERSION-$PLATFORM.zip) :

可以下载 https://github.com/protocolbuffers/protobuf/releases 的 proto包` (这是 github 作者的话, 我简单翻译了一下)

(最下面提供了一个关于 proto 的安装的参考)

注意第六步时(make proto后)如果 import 了 "github.com/golang/protobuf/proto" 在 helloworld/proto/helloworld.pb.micro.go 中, 将它换成 "google.golang.org/protobuf/proto", 并且在 helloworld 目录下使用命令更新 go.mod, 保证 go.mod 中没有 "github.com/golang/protobuf/proto"

go mod tidy
  1. 第六步

在 helloworld 文件下 使用下面命令 (如果没有 make 可以安装, 这个文档也很丰富)

make init
go mod vendor
make proto

基本就完成了, 可以通过命令启动 来验证

  1. 第七步(在 helloworld 目录下)

micro run .

在执行完成后如果没有报错, 可以使用命令

micro status

来查看输出结果得知是否成功

$ micro status
NAME		VERSION	SOURCE					STATUS	BUILD	UPDATED	METADATA
helloworld	latest	github.com/micro/services/helloworld	running	n/a	4s ago	owner=admin, group=micro

proto 的安装参考

  1. 下载 protobuf

    方法一:===> git clone https://github.com/protocolbuffers/protobuf.git
    
    方法二:===> 或者将准备好的压缩包进行拖入
    	解压到$GOPATH/src/github.com/protocolbuffers/下面
    	Unzip protobuf.zip
    
  2. 安装(ubuntu)

    (1)安装依赖工具(联网)
    $ sudo apt-get install autoconf automake libtool curl make g++ unzip libffi-dev -y
    
    (2)进入protobuf文件
    cd protobuf/
    
    (3)进行安装检测 并生成自动安装脚本
    ./autogen.sh
    ./configure
    
    (4)进行编译C代码
    make
    
    (5)进行安装
    sudo make install
    
    (6)刷新linux共享库关系
    sudo ldconfig
    
  3. 测试protobuf编译工具

    protoc -h
    

    如果正常输出 相关指令 没有报任何error,为安装成功

  4. 安装protobuf的go语言插件

    由于protobuf并没直接支持go语言需要我们手动安装相关插件

    (1)下载
    方法一:===> go get -v -u github.com/golang/protobuf/proto
    方法二:===>或者将 github.com-golang-protobuf.zip拖入 进行解压到 $GOPATH/src/github.com/golang
    
    (2)进入到文件夹内进行编译
    $ cd $GOPATH/src/github.com/golang/protobuf/protoc-gen-go
    $ go build
    
    (3)将生成的 protoc-gen-go可执行文件,放在/bin目录下
    $ sudo cp protoc-gen-go /bin/
    
    (4)尝试补齐protoc-gen-go 如果可以补齐代表成功,如果执行不报错 代表工具成功
    

标签:github,操作系统,proto,ubuntu24.04,helloworld,micro,版本,go,protobuf
From: https://www.cnblogs.com/zbjoy/p/18307176

相关文章

  • 依赖包版本号前面的 ^ 或者 ~ 或者* 的符号的含义
    参考1指定版本:比如1.2.2,遵循“大版本.次要版本.小版本”的格式规定,安装时只安装指定版本。波浪号(tilde),作用于小版本号:比如~1.2.2,表示安装1.2.x的最新版本(不低于1.2.2),但是不安装1.3.x,也就是说安装时不改变大版本号和次要版本号。插入号(caret),作用于此版本号:比如ˆ1.2.2,表示安装1.x.x......
  • 从零开始,轻松掌握Git版本控制
    1.创建Git仓库在项目开始前或者项目进行中都可以进行Git仓库的创建,首先进入项目的根目录,然后运行gitinit2.把文件添加到版本库gitaddreadme.mdgitaddsrc/gitadd只是把文件添加到暂存区(stage)gitcommit-m"addreadmeandsrc/"gitcommit命令是把暂存区的文件提......
  • eclipse免安装版64位 2018版本
    前言Eclipse是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse附带了一个标准的插件集,包括Java开发工具(JavaDevelopmentKit,JDK)。虽然大多数用户很乐于将Eclipse当作Java集成开发......
  • 操作系统真象还原:实现文件写入
    14.7实现文件写入这是一个网站有所有小节的代码实现,同时也包含了Bochs等文件本节要实现的sys_write是系统调用write的内核实现,咱们之前的write是个简易版,它是为了临时完成输出打印的功能,不支持文件描述符。如今要让write支持文件描述符的话,还要修改下周边与此系......
  • 第一章 操作系统的概述
    操作系统的概论操作系统的概念操作系统是计算机系统中的一个系统软件,有效的组织和管理计算机系统当中的硬件和软件资源,合理组织计算机的工作流程,控制程序的执行,并给用户提供各种服务,是计算机系统可以高效的运行(资源管理和控制程序的执行)有效:考虑用户的需求,提高系统的资源利用率......
  • 第五章 初识Sping框架(2023版本IDEA)
    学习目标5.1Sping框架的历史由来5.2SpringIOC5.2.1IOC和依赖注入5.2.2第一个Spring程序1.创建一个Maven项目2.添加SpringBoot依赖3.创建一个简单的SpringBoot应用4.创建一个Controller5.运行你的应用5.3SpringAOP1.定义一个切面(Aspect)2.创建一个服务类......
  • MySQL版本的相关问题:com.mysql.cj.jdbc.Driver和com.mysql.jdbc.Driver
    原文链接:https://www.cnblogs.com/daemonFlY/p/9820541.html1.在使用mysql时,控制台日志报错如下:Loadingclass`com.mysql.jdbc.Driver'.Thisisdeprecated.Thenewdriverclassis`com.mysql.cj.jdbc.Driver'.ThedriverisautomaticallyregisteredviatheSPIand......
  • 【操作系统】
    第一章一、操作系统的定义操作系统是一组计算机程序的集合,用于控制和管理硬件资源和软件资源,合理地组织计算机的工作流程,为用户提供方便、快捷、友好的应用程序使用接口。是系统最基本最核心的软件,属于系统软件控制和管理整个计算机的硬件和软件资源合理的组织、调度计算机......
  • [操作系统]进程
    进程进程、线程、协程的概念进程:是并发执行的程序在执行过程中分配和管理资源的基本单位,是一个动态概念,竞争计算机系统资源的基本单位。线程:是进程的一个执行单元,是进程内的调度实体。比进程更小的独立运行的基本单位。线程也被称为轻量级进程。协程:是一种比线程更加轻量级的......
  • 由于安装多个jdk导致出现java以及javac版本不匹配问题
    之前由于下载了多个版本的jdk版本,导致了在运行java程序时出现了报错thisversionoftheJavaRuntimeonlyrecognizesclassfileversionsupto52.0报错信息大概为版本不匹配,查看了java以及javac的版本,发现一个是18,一个是20,所以查看解决方法,实现版本匹配一开始全在修改环......