grpc服务注册到consul中

基于内网穿透下的go语言consul注册中心对远程GRPC和HTTP服务进行健康检查 consul注册中心对远程服务进行健康检查 阅读详情
package main

import (
   "New-lesson/account_srv/biz"
   "New-lesson/account_srv/proto/pb"
   "New-lesson/internal"
   "flag"
   "fmt"
   consulapi "github.com/hashicorp/consul/api"
   "go.uber.org/zap"
   "google.golang.org/grpc"
   "google.golang.org/grpc/health"
   "google.golang.org/grpc/health/grpc_health_v1"
   "net"
)
func main() {
   flag.Parse()
   addr := fmt.Sprintf("%s:%d", internal.ViperConf.AccountSrvConfig.Host, internal.ViperConf.AccountSrvConfig.Port)
   server := grpc.NewServer()
   pb.RegisterAccountServiceServer(server, &biz.AccountServer{}) //注册用的谁的结构体关联的方法,就用谁的结构体进行注册.
   listen, err := net.Listen("tcp", addr)
   if err != nil {
      zap.S().Error("account_srv 启动异常", err.Error())
      panic(err)
   }
   grpc_health_v1.RegisterHealthServer(server, health.NewServer()) //将已经有的server注册到grpc的健康检查中
   defaultConfig := consulapi.DefaultConfig()                      //初始化默认consul配置
   defaultConfig.Address = fmt.Sprintf("%s:%d", 
   internal.ViperConf.ConsulConfig.Host,
    internal.ViperConf.ConsulConfig.Port)

   client, err := consulapi.NewClient(defaultConfig) //生成consul注册对象
   if err != nil {
      zap.S().Error("consul.NewClient err:", err)
   }
   checkAddr := fmt.Sprintf("%s:%d", internal.ViperConf.AccountSrvConfig.Host, internal.ViperConf.AccountSrvConfig.Port)
   //checkAddr 是注册服务的地址.不是consul的服务地址用于注册服务的监控检测
   registration := consulapi.AgentServiceRegistration{
      ID:   internal.ViperConf.AccountSrvConfig.SrvName, //grpc服务的id
      Name: internal.ViperConf.AccountSrvConfig.SrvName, //grpc服务的Name
      Tags: internal.ViperConf.AccountSrvConfig.Tags,    //grpc服务的Tags
      Port: internal.ViperConf.AccountSrvConfig.Port,    //grpc服务的 端口号
      //Address: defaultConfig.Address,
      Address: internal.ViperConf.AccountSrvConfig.Host, //这里的地址是注册服务的地址.不是consul的地址.
      Check: &consulapi.AgentServiceCheck{
         Interval:                       "1s",      //监控检测间隔时间
         Timeout:                        "3s",      //监控检测超时时间
         GRPC:                           checkAddr, //grpc服务对应的地址和端口号
         DeregisterCriticalServiceAfter: "10s",     //超过这个时间后自动将注册服务从consul中删除 ..
         //删除时间过长.会有缓存导致服务注册有问题.
      },
   } //告诉consul要注册服务的配置信息
   err = client.Agent().ServiceRegister(&registration)
   if err != nil {
      zap.S().Error("srv服务注册失败.", err)
   }
   err = server.Serve(listen)
   if err != nil {
      panic(err)
   }
}

golang grpc consul 服务注册、发现和负载均衡。 开发环境 grpc-go: v1.24 consul:1.6 设备: docker-compose、 mac 搭建一个单节点的consul环境 阅读详情

相关推荐

golang consul-grpc 服务注册与发现

在微服务架构里面,每个小服务都是由很多节点组成,节点的添加删除故障希望能对下游透明,因此有必要引入一种服务的自动注册和发现机制,而 consul 提供了完整的解决方案,并且内置了对 GRPC 以及 HTTP 服务的支持 总体架构 服务调用: client 直连 server 调用服务 服务注册: 服务端将服务的信息注册到 consul 里 服务发现: 客户端从 consul 里发现服...

hatlonely的专栏 6279

Java-gRPC-Consul整合

Java-gRPC-Consul整合 一、整合consul 工程搭建 使用springboot自带的consul-starter <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-consul-discovery</artifactId>

Young_Black的博客 1661

gRPC入门系列之4-consul服务注册与发现

在生产环境中,除非是直直接在固定ip的物理机/虚拟机上运行,否则ip地址是不固定的,而且服务的数量也是不固定的,这时候就需要服务注册与发现了。需要说明的是:在现实中,consul服务的地址可能是通过配置文件,或者配置中心获取的,不会写死在代码中。在微服务架构中,服务的注册与发现是一个非常重要的组件,它可以让服务之间的调用更加简单,也可以让服务更加健壮。在上面的代码中,我们通过consul客户端获取服务列表,然后随机选择一个服务节点,调用服务。根据服务列表返回的节点,随机选择一个节点,调用服务。

dreambreeze110的博客 1062

golang工程— grpc-gateway健康检查和跨域配置

golang工程— grpc-gateway健康检查和跨域配置

qq_43058348的博客 1807

grpc使用consul做服务注册与发现

grpc consul

kankan231的专栏 1018

使用DeepSeek、MCP和AKShare实现智能金融问答系统技术方案

DeepSeek是由深度求索公司开发的大规模语言模型,最新版本DeepSeek-V3采用混合专家(MoE)架构,拥有671B参数,激活37B参数,在多项基准测试中表现优异3。要使用DeepSeek的API服务:访问DeepSeek平台注册账号获取API Key(形如AKShare是基于Python的金融数据接口库,提供股票、基金、期货、宏观经济等领域的海量数据。主要特点包括:免费开源,数据源丰富支持多种数据格式(DataFrame/JSON)持续更新维护安装命令。

Kin 3174

4.服务注册与发现-go操作consul(grpc服务的注册与发现)

1.grpc服务的健康检查 imporet ( "google.golang.org/grpc/health" "google.golang.org/grpc/health/grpc_health_v1" ) func main(){ server := grpc.NewServer() proto.RegisterUserServer(server, &handler.UserServer{}) lis, _ := net.Listen("tcp", ip ,port)

apple_56973763的博客 856

开箱即用的Platform IO开发平台(包括Arduino,ESP8266,ESP32,STM32)

开箱即用的 Platform IO 离线开发环境,包含(ESP32,ESP32S2,ESP8266,Arduino,STM32)

qq_19703307的博客 755

将 gRPC 服务注册到 Consul:从配置到服务发现的完整实践(上)

本文详细介绍了gRPC服务与Consul注册中心的集成方案。主要内容包括:1)使用Viper和Zap实现Go微服务的配置管理和日志系统;2)通过Consul实现服务注册与发现的核心流程,包括健康检查配置;3)提供命令行和UI两种验证方法;4)给出生产环境优化建议。该方案解决了微服务架构中的配置管理、服务治理等关键问题,通过Go语言实践展示了从配置加载到服务注册的全过程,为构建弹性可扩展的分布式系统提供了可落地的技术方案。

Landcc的博客 1621

CTFHUB------XSS反射型(WP)

文章目录前言XSS测试平台 前言 一开始我直接在上面写js脚本发现出错,最后发现只能通过下面的输入框来执行XSS测试,于是我们只能用XSS测试平台解决问题 XSS测试平台 注册一个XSS测试平台 这里随便填写 勾选默认模块就够了,点击下一步 这时会出现一个找个将代码复制 拼接到网站后缀name后面,点击send 这时平台会收到一个记录点开即可 得到flag ...

Y4tacker的博客 1万+

【头歌educoder】离散数学实训参考-第二章-关系-part1-关系基础

python实现离散数学-关系基础-二元关系

wander_alice的博客 8465

(精华)2020年10月28日 Grpc Grpc对接Consul服务注册发现

一. 前言 gRPC 在当前最常见的应用就是在微服务场景中,所以不可避免的会有服务注册与发现问题,我们使用gRPC实现的服务可以使用 Consul 或者 etcd 作为服务注册与发现中心,本文主要介绍Consul。 二. 注册GRPC服务与健康检查 1.为服务端项目安装 nuget包 NConsul.AspNetCore 2.在 Startup 的 ConfigureServices方法内进行配置 public void ConfigureServices(IServiceCollection serv

愚公智库 30万+

Quartus II编译时出现Error (119013): Current license file does not support the EP4CE6E22C6 device

Quartus II编译时出现Error (119013): Current license file does not support the EP4CE6E22C6 device, Quartus的安装过程不同于ISE/vivado的安装。“Current license file does not support”这种情况多出现在高版本的quartus中综合很久以前的代码,使用很早型号的FPGA或是CPLD。对于这种情况,就得在官网或是其他网站上下载包含所需Device的库文件。

夜半少年的博客 1万+

ASP.NET Core gRPC 使用 Consul 服务注册发现

一. 前言gRPC 在当前最常见的应用就是在微服务场景中,所以不可避免的会有服务注册与发现问题,我们使用gRPC实现的服务可以使用 Consul 或者 etcd 作为服务注册与发现中心,...

dotNET跨平台 709

在Simulink中进行基于强化学习控制策略的三相逆变器仿真

本文详细介绍了在Simulink中实现基于强化学习控制策略的三相逆变器仿真的完整流程。主要内容包括:1)准备工作,确保MATLAB/Simulink及相关工具箱安装;2)构建三相逆变器基础模型,包含电源、全桥电路、LC滤波器和负载;3)重点阐述强化学习控制器设计,涉及状态空间、动作空间定义,奖励函数设计和算法选择;4)实现控制逻辑,包括环境创建、代理配置和训练过程;5)仿真设置与结果分析。文章强调了模型调试优化的重要性,并建议结合文献研究提升控制效果。该方案为开发自适应电力电子控制系统提供了实用指南。

amy_mhd的博客 271

Python爬虫实战:利用Selenium与Playwright抓取美团外卖数据

在当今大数据时代,网络数据采集已成为商业分析和市场研究的重要手段。本文以美团外卖平台为例,详细介绍如何使用Python最新爬虫技术(Selenium、Playwright)进行数据采集,并探讨相关技术原理、反爬应对策略及数据存储方案。通过5000+字的详细讲解和完整代码示例,帮助读者掌握现代网络爬虫开发的核心技能。本文详细介绍了使用Python最新爬虫技术采集美团外卖数据的完整流程,涵盖了从环境配置、页面分析到数据存储的全链路解决方案。

2201_76125261的博客 2550

GRPC+Consul 实现服务注册和负载均衡

本文就是一个实现的demo,因为是个菜鸟, 没有知识点的讲解。请谅解,如有错误,请大佬指正,谢谢!!! 第一步:新建一个maven项目,没有图 第二部: 引入项目有关的jar 包。如下: <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding&...

weixin_43965374的博客 4552

数据资产入表——解读100页数据资产入表解读与分析【附全文阅读】

本文档《数据资产入表:解读与分析》面向企业财务、数据管理、法务合规及高管等核心岗位,系统解析数据资产入表全流程。以"政策-实操-价值"为主线,首先解读入表政策要求,明确会计处理规范;其次详细拆解数据盘点、治理、确权、评估等实操步骤,提供行业案例参考;最后分析入表难点及后续运营策略,为企业提供从政策理解到落地执行的一站式解决方案。

cdfunlove的博客 392

python consul_python与consul 实现gRPC服务注册-发现

背景通过对gRPC的介绍我们知道,当正常启动服务后,我们只需要知道ip,port就可以进行gRPC的连接。可以想到,这种方式并不适合用于线上环境,因为这样直连的话就失去了扩展性,当需要多机部署的时候,就无法在线上环境直接使用,而且当线上项目连接的那台服务器宕了的话,整个项目也会出错,这并不是我们想要的结果。于是,我们需要一个服务注册与发现的机制。也就是说当我们的rpc服务启动的时候注册到另一个服务...

weixin_39870413的博客 360

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

python与consul 实现gRPC服务注册-发现

背景 通过对gRPC的介绍我们知道,当正常启动服务后,我们只需要知道ip,port就可以进行gRPC的连接。可以想到,这种方式并不适合用于线上环境,因为这样直连的话就失去了扩展性,当需要多机部署的时候,就无法在线上环境直接使用,而且当线上项目连接的那台服务器宕了的话,整个项目也会出错,这并不是我们想要的结果。 于是,我们需要一个服务注册与发现的机制。也就是说当我们的rpc服务启动的时候注...

baican9362的博客 952

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

grpc服务注册到consul上

1、下载对应consul的api go get github.com/hashicorp/consul/api 2、初始化consul配置 consulConfig := api.DefaultConfig() 3、创建consul对象 consulClient, err := api.NewClient(consulConfig) if err != nil { fmt.Println("api.NewClient err:", err) return } 4、告诉c

min521fei的博客 614

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

consul golang_详解golang consul-grpc 服务注册与发现

在微服务架构里面,每个小服务都是由很多节点组成,节点的添加删除故障希望能对下游透明,因此有必要引入一种服务的自动注册和发现机制,而 consul 提供了完整的解决方案,并且内置了对 GRPC 以及 HTTP 服务的支持总体架构服务调用: client 直连 server 调用服务服务注册: 服务端将服务的信息注册到 consul 里服务发现: 客户端从 consul 里发现服务信息,主要是服务的地...

weixin_31558841的博客 395

python应用GRPC || consul 服务注册发现

GRPC python应用。

kunwen123的博客 215

基于 Consul 实现 MagicOnion(GRpc) 服务注册与发现

0.简介 0.1 什么是 Consul Consul是HashiCorp公司推出的开源工具,用于实现分布式系统的服务发现与配置。 这里所谓的服务,不仅仅包括常用的 Api 这些服务,也包括软件开发过程当中所需要的诸如 Rpc、Redis、Mysql 等需要调用的资源。 简而言之 Consul 就是根据 Key/Value 存储了一套所有服务的 IP/Port 集合,当你 Grpc 客...

224

java grpc服务注册与发现_战旗直播基于consul服务注册与发现的GRPC服务实战与感想...

前言鄙人关注consul也有一段时间了,从2017年开始了解它的一些特性,它能帮助解决哪些问题,然后怎么应用到微服务中去。随着时间的推移,微服务的发展也是非常的迅速,可以说日新月异,每天都在变化。consul工具所提供的功能也在不断地新增和完善。OK,有些扯远了,咱们还是回到主题上来吧。在微服务领域有个重要的概念——服务注册与发现。google或baidu一下,会发现有大量的关于服务注册发现的文章...

weixin_29840657的博客 616
上一篇: go 使用consul进行服务注册
下一篇: go语言使用gin框架
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值