consul

Golang 通过 Consul 实现分布式锁

北战南征 提交于 2020-03-05 17:22:05
Golang 通过 Consul 实现分布式锁 Consul 是什么 Consul 是一个支持多数据中心分布式高可用的服务发现和配置共享的服务软件,由 HashiCorp 公司用 Go 语言开发, 基于 Mozilla Public License 2.0 的协议进行开源. Consul 支持健康检查,并允许 HTTP 和 DNS 协议调用 API 存储键值对. 命令行超级好用的虚拟机管理软件 vgrant 也是 HashiCorp 公司开发的产品. 一致性协议采用 Raft 算法,用来保证服务的高可用. 使用 GOSSIP 协议管理成员和广播消息, 并且支持 ACL 访问控制. Consul 的使用场景 docker 实例的注册与配置共享 coreos 实例的注册与配置共享 vitess 集群 SaaS 应用的配置共享 与 confd 服务集成,动态生成 nginx 和 haproxy 配置文件 Consul 的优势 使用 Raft 算法来保证一致性, 比复杂的 Paxos 算法更直接. 相比较而言, zookeeper 采用的是 Paxos, 而 etcd 使用的则是 Raft. 支持多数据中心,内外网的服务采用不同的端口进行监听。 多数据中心集群可以避免单数据中心的单点故障,而其部署则需要考虑网络延迟, 分片等情况等. zookeeper 和 etcd

Consul:12:使用容器方式构建Consul集群

旧时模样 提交于 2020-03-04 03:14:07
这篇文章介绍使用官方镜像构建Consul集群的方式。 启动Consul服务 使用如下命令,使用Consul官方镜像以开发模式启动Consul服务,将Consul web UI端口映射出来给用户提供访问。 执行命令:docker run -d --name=agent1 -p 8500:8500 consul:1.7.1 agent -dev -client=0.0.0.0 -bind=0.0.0.0 执行日志如下所示: liumiaocn:~ liumiao$ docker run -d --name=agent1 -p 8500:8500 consul:1.7.1 agent -dev -client=0.0.0.0 -bind=0.0.0.0 bed6136ca254a22ffa6cab24b7db6b30c0bbb209525f503b9c4e665657fd94f3 liumiaocn:~ liumiao$ docker ps |grep consul bed6136ca254 consul:1.7.1 "docker-entrypoint.s…" 5 seconds ago Up 3 seconds 8300-8302/tcp, 8301-8302/udp, 8600/tcp, 8600/udp, 0.0.0.0:8500->8500/tcp agent1

.NET Core + Ocelot + IdentityServer4 + Consul 基础架构实现

a 夏天 提交于 2020-03-02 10:56:37
先决条件 关于 Ocelot 针对使用 .NET 开发微服务架构或者面向服务架构提供一个统一访问系统的组件。 参考 本文将使用 Ocelot 构建统一入口的 Gateway。 关于 IdentityServer4 IdentityServer4 是一个 OpenID Connect 和 OAuth 2.0 框架用于 ASP.NET Core 。IdentityServer4 在你的应用程序中集成了基于令牌认证、单点登录、API访问控制所需的所有协议和扩展点。 参考 本文将使用 IdentityServer4 搭建独立认证服务器。 关于 Consul Consul 是一个服务网格解决方案,通过服务发现、配置、功能分割提供一个全功能的控制层。这些功能可以单独使用,也可以同时使用以形成一个完整的网格服务。 参考 本文将使用 Consul 注册多个服务。 关于 .Net Core 将使用 WebApi 构建多个服务 构建 IdentityServer 服务 添加 ASP.Net Core Web 项目 添加空项目 在程序包管理控制台中输入:Install-Package IdentityServer4.AspNetIdentity 添加 Config.cs 文件,并添加内容如下: using System.Collections.Generic; using IdentityServer4

(十三)SpringBoot微服务 b2b2c 多用户商城系统:注册中心 Consul 使用详解

你离开我真会死。 提交于 2020-03-01 21:03:51
Consul 介绍 Consul 是 HashiCorp 公司推出的开源工具,用于实现分布式系统的服务发现与配置。与其它分布式服务注册与发现的方案,Consul 的方案更“一站式”,内置了服务注册与发现框 架、分布一致性协议实现、健康检查、Key/Value 存储、多数据中心方案,不再需要依赖其它工具(比如 ZooKeeper 等)。使用起来也较 为简单。Spring Cloud大型企业分布式微服务云构建的B2B2C电子商务平台源码请加企鹅求求:一零三八七七四六二六。Consul 使用 Go 语言编写,因此具有天然可移植性(支持Linux、windows和Mac OS X);安装包仅包含一个可执行文件,方便部署,与 Docker 等轻量级容器可无缝配合。 Consul 的优势: 使用 Raft 算法来保证一致性, 比复杂的 Paxos 算法更直接. 相比较而言, zookeeper 采用的是 Paxos, 而 etcd 使用的则是 Raft。 支持多数据中心,内外网的服务采用不同的端口进行监听。 多数据中心集群可以避免单数据中心的单点故障,而其部署则需要考虑网络延迟, 分片等情况等。 zookeeper 和 etcd 均不提供多数据中心功能的支持。 支持健康检查。 etcd 不提供此功能。 支持 http 和 dns 协议接口。 zookeeper 的集成较为复杂, etcd

springcloud微服务实战_04_服务消费者

 ̄綄美尐妖づ 提交于 2020-02-29 14:23:53
4.1 客服端负载均衡 Ribbon 通过上一篇《Spring Cloud构建微服务架构:服务消费》,我们已经学会如何通过LoadBalancerClient接口来获取某个服务的具体实例,并根据实例信息来发起服务接口消费请求。但是这样的做法需要我们手工的去编写服务选取、链接拼接等繁琐的工作,对于开发人员来说非常的不友好。所以,下来我们看看Spring Cloud中针对客户端负载均衡的工具包:Spring Cloud Ribbon。 Spring Cloud Ribbon Spring Cloud Ribbon是基于Netflix Ribbon实现的一套客户端负载均衡的工具。它是一个基于HTTP和TCP的客户端负载均衡器。它可以通过在客户端中配置ribbonServerList来设置服务端列表去轮询访问以达到均衡负载的作用。 当Ribbon与Eureka联合使用时,ribbonServerList会被DiscoveryEnabledNIWSServerList重写,扩展成从Eureka注册中心中获取服务实例列表。同时它也会用NIWSDiscoveryPing来取代IPing,它将职责委托给Eureka来确定服务端是否已经启动。 而当Ribbon与Consul联合使用时,ribbonServerList会被ConsulServerList来扩展成从Consul获取服务实例列表

Consul:5:服务注册示例

不打扰是莪最后的温柔 提交于 2020-02-29 14:04:30
这篇文章结合具体的示例来介绍如何在Consul中进行服务的注册。 事前准备 Consul安装 本文示例使用的Consul版本信息如下 liumiaocn:~ liumiao$ consul --version Consul v1.7.1 Protocol 2 spoken by default, understands 2 to 3 (agent will automatically use protocol >2 when speaking to compatible agents) liumiaocn:~ liumiao$ 服务定义 使用服务定义只最为通用的服务注册的方式,在Consul中也可以通过HTTP API方式进行,在本文中直接使用Consul配置方式,通过-config-dir选项指定配置文件所在的目录,在启动时会讲指定目录下服务定义文件全部读入并进行注册。 本文示例中使用如下两个服务定义在Consul启动时进行注册: liumiaocn : consul . d liumiao$ ls service - nginx . json service - tornado . json liumiaocn : consul . d liumiao$ cat service - nginx . json { "service" : { "name" : "nginx" ,

feign.FeignException$NotFound: status 404 reading ClassName#function()

a 夏天 提交于 2020-02-28 19:30:43
调用工程(消费者)的接口未配置被调用工程(生产者)的工程名 如上图, @ FeignClient(value = "spc-consul-provider",path="demo")应该再加一个配置path,这个path是被调用工程的工程调用名,在被调用工程(微服务生产者)配置的这个server.servlet.context-path=/demo。 调用工程(生产者)的consul配置要正确,不要搞错了 ############################ 配置consul begin ############################## #consul服务器ip spring.cloud.consul.host=127.0.0.1 #consul服务器端口,默认8500 spring.cloud.consul.port=8500 #是否将服务注册到consul,即成为(微)服务生产者 spring.cloud.consul.discovery.register=true #注册到consul上的(微)服务名称,可以理解为类名 spring.cloud.consul.discovery.service_name=spc-consul-provider #当前注册这个(微)服务服务的实例id,可以理解为类对象,一个类可以有多个实例 #默认情况下为 spring

spring cloud seata 参数配置

拜拜、爱过 提交于 2020-02-28 18:43:46
spring cloud seata 参数配置 ***************************** 公共配置 transport.serialization: cleint、server通信编解码方式,可为: seata(默认)、protobuf、kryo、hession transport.compressor: cleint、server数据压缩方式,可为: none(默认)、gzip transport.heartbeat: client、server心跳检测开关, 默认为true registry.type: 注册中心类型,可为: file、consul、nacos、zookeeper等 config.type: 配置 中心类型,可为: file、consul、nacos、zookeeper等 ***************************** server 端配置 registry.type: 注册中心类型,可为: file、consul、nacos、zookeeper等 config.type: 配置中 心类型,可为: file、consul、nacos、zookeeper等 store.mode: 事务存储模式,可为: file、db store.db.driverClassName: 存储模式为db时,使用的数据库驱动类 store.db.url:

Docker | 基于docekr安装sonsul

天大地大妈咪最大 提交于 2020-02-28 16:31:20
一、查看sonsul的docker镜像 1.1查看consul镜像 docker search consul 1.2查看consul镜像的tag docker-tags consul 二、拉取consul镜像 2.1拉取镜像 docker pull consul 2.2查看镜像 docker images 三、启动容器 3.1启动容器 docker run -d -p 8300:8300 -p 8301:8301 -p 8301:8301/udp -p 8302:8302 -p 8302:8302/udp -p 8400:8400 -p 8500:8500 --restart = always --name = consul consul:latest agent -server -bootstrap -ui -node = 1 -client = '0.0.0.0' 3.2查看容器 docker ps docker ps -a docker ps | grep consul 来源: CSDN 作者: @范恒宾 链接: https://blog.csdn.net/qq_41980405/article/details/104555535

Windows 下安装使用 Consul

荒凉一梦 提交于 2020-02-28 13:37:50
介绍 Consul 是一个支持多数据中心分布式高可用的服务发现和配置共享的服务软件, 由 HashiCorp 公司用 Go 语言开发, 基于 Mozilla Public License 2.0 的协议进行开源。Consul 支持健康检查, 并允许 HTTP 和 DNS 协议调用 API 存储键值对。 命令行超级好用的虚拟机管理软件 vgrant 也是 HashiCorp 公司开发的产品。一致性协议采用 Raft 算法, 用来保证服务的高可用, 使用 GOSSIP 协议管理成员和广播消息, 并且支持 ACL 访问控制。 详细可以参考:https://my.oschina.net/adairs/blog/1605766 下载安装 去官网下载: https://www.consul.io/downloads.html 得到一个 zip 压缩包 在你想要安装的位置解压就行,只有一个 consul.exe 文件(我的解压位置是:D:\Java\consul\) 通过命令行,进入D:\Java\consul\ 然后cmd 命令窗口启动: C:\>D: D:\>cd D:\Java\consul D:\Java\consul>consul agent -dev consul 自带 UI 界面,打开网址: http://localhost:8500 ,可以看到当前注册的服务界面。 Consul