consul

golang 使用 consul 做服务发现

匿名 (未验证) 提交于 2019-12-02 23:57:01
当我们服务越来越多,如果服务配置了弹性伸缩,或者当服务不可用时,我们需要随时动态掌握可以使用的服务数量,并向可提供响应的服务发送请求。这时我们需要服务发现功能,当新增服务时,服务可以自动向consul注册,客户端直接向consul发送请求,获取可用服务的地址和端口;当服务不可用时,动态的更新consul,删除该服务在consul中的列表 docker安装consul docker run --name consul1 -d -p 8500:8500 -p 8300:8300 -p 8301:8301 -p 8302:8302 -p 8600:8600 consul:latest agent -server -bootstrap-expect 2 -ui -bind=0.0.0.0 -client=0.0.0.0 8500 http 端口,用于 http 接口和 web ui 8300 server rpc 端口,同一数据中心 consul server 之间通过该端口通信 8301 serf lan 端口,同一数据中心 consul client 通过该端口通信 8302 serf wan 端口,不同数据中心 consul server 通过该端口通信 8600 dns 端口,用于服务发现 -bbostrap-expect 2: 集群至少两台服务器,才能选举集群leader -ui

Docker容器跨主机通信--overlay网络

匿名 (未验证) 提交于 2019-12-02 23:56:01
一、Docker主机间容器通信的解决方案    Docker网络驱动 Overlay: 基于VXLAN封装实现Docker原生Overlay网络 Macvlan: Docker主机网卡接口逻辑上分为多个子接口,每个子接口标识一个VLAN。容器接口直接连接Docker主机 网卡接口: 通过路由策略转发到另一台Docker主机    第三方网络项目    隧道方案     -- Flannel: 支持UDP和VLAN封装传输方式 -- Weave: 支持UDP(sleeve模式)和 VXLAN(优先fastdb模式) -- OpenvSwitch: 支持VXLAN和GRE协议 路由方案 Calico: 支持BGP协议和IPIP隧道。每台宿主机作为虚拟路由,通过BGP协议实现不同主机容器间通信  回到顶部 二、Docker Overlay Network   Overlay网络是指在不改变现有网络基础设施的前提下,通过某种约定通信协议,把二层报文封装在IP报文之上的新的数据格式。这样不但能够充分利用成熟的IP路由协议进程数据分发;而且在Overlay技术中采用扩展的隔离标识位数,能够突破VLAN的4000数量限制支持高达16M的用户,并在必要时可将广播流量转化为组播流量,避免广播数据泛滥。   因此,Overlay网络实际上是目前最主流的容器跨节点数据传输和路由方案。   

consul:connect

匿名 (未验证) 提交于 2019-12-02 23:53:01
官方文档: https://www.consul.io/docs/connect/index.html#getting-started-with-connect consul connect的功能类似与envoy,作为一个sidecar,用于实现service mesh,按我的理解,所谓的service mesh其实就是通过服务注册和服务发现,以及sidecar,屏蔽调用服务的ip和端口,仅仅通过服务名即可相互调用,同时由于sidecar的存在,还可以在sidecar这一层增加对服务的鉴权、流量控制等功能。 其实最终又归为计算机界的那句名言,任何都可以通过增加一层来解决,这里的这一层就是sidecar。 来源: https://www.cnblogs.com/lit10050528/p/11330284.html

搭建注册中心Consul集群

匿名 (未验证) 提交于 2019-12-02 23:43:01
1、安装Consul # 下载Consul # wget https://releases.hashicorp.com/consul/0.7.2/consul_0.7.2_linux_amd64.zip -O consul.zip # cd /opt/ # unzip consul_0.7.2_linux_amd64.zip # 将解压的二进制文件Consul移动到 /usr/bin/ # mv consul /usr/bin/ 2、启动Consul集群 推荐 Consul集群使用 3 台或 5 台 serverAgent。 # serverAgent 启动 # [root@localhost bin]# nohup consul agent -server -data-dir=/tmp/consul -node=server-12 -bind=192.168.56.101 -bootstrap-expect 1 -client 0.0.0.0 -ui -dc=zjgdc & #clientAgent-1 启动 # [root@localhost bin]# nohup consul agent -data-dir=/tmp/consul -node=client-13 -bind=192.168.56.103 -join=192.168.56.101 -dc=zjgdc &

consul集群和服务发现

匿名 (未验证) 提交于 2019-12-02 23:43:01
创建集群:1个client,3个server docker run -d --name=consul1 -p 8900:8500 -e CONSUL_BIND_INTERFACE=eth0 consul agent --server=true --bootstrap-expect=3 --client=0.0.0.0 -ui docker run -d --name=consul2 -e CONSUL_BIND_INTERFACE=eth0 consul agent --server=true --client=0.0.0.0 --join 172.17.0.9 docker run -d --name=consul3 -e CONSUL_BIND_INTERFACE=eth0 consul agent --server=true --client=0.0.0.0 --join 172.17.0.9 docker run -d --name=consul4 -e CONSUL_BIND_INTERFACE=eth0 consul agent --server=false --client=0.0.0.0 --join 172.17.0.9 进入容器 : docker exec -it consul4 /bin/sh 第一:通过配置文件注册一个服务 services.json {

Ocelot(十一)- 服务发现

匿名 (未验证) 提交于 2019-12-02 23:43:01
Ocelot允许您指定服务发现提供程序,并使用它来查找Ocelot正在将请求转发给下游服务的主机和端口。目前,这仅在GlobalConfiguration部分中受支持,这意味着所有ReRoute将使用相同的服务发现提供程序,以便在ReRoute级别指定ServiceName。 Consul GlobalConfiguration中需要以下内容。 提供者是必需的,如果你没有指定主机和端口,默认使用Consul。 "ServiceDiscoveryProvider": { "Host": "localhost", "Port": 9500 } 将来我们可以添加一个功能,允许ReRoute配置服务发现提供程序。 为了告诉Ocelot一个ReRoute需要使用服务发现提供程序来发现下游主机和端口,您必须在下游请求配置中添加ServiceName,UseServiceDiscovery和LoadBalancer。 目前Ocelot有RoundRobin(轮询)和LeastConnection(最少连接)两个负载均衡的算法。 如果没有指定负载均衡器,Ocelot将不会均衡请求。 { "DownstreamPathTemplate": "/api/posts/{postId}", "DownstreamScheme": "https", "UpstreamPathTemplate": "

consul快速入门

匿名 (未验证) 提交于 2019-12-02 23:39:01
Consul的介绍 Consul是HashiCorp公司推出的开源工具,用于实现分布式系统的服务发现与配置。 Consul是分布式的、高可用的、可横向扩展的。 Consul特性 服务发现:consul通过DNS或者HTTP接口使服务注册和服务发现变的很容易,一些外部服务,例如saas提供的也可以一样注册。 健康检查:健康检测使consul可以快速的告警在集群中的操作。和服务发现的集成,可以防止服务转发到故障的服务上面。 键/值存储:一个用来存储动态配置的系统。提供简单的HTTP接口,可以在任何地方操作。 多数据中心:无需复杂的配置,即可支持任意数量的区域。 Consul 的角色 client : 客户端, 无状态, 将 HTTP 和 DNS 接口请求转发给局域网内的服务端集群. server : 服务端, 保存配置信息, 高可用集群, 在局域网内与本地客户端通讯, 通过广域网与其他数据中心通讯. 每个数据中心的 server 数量推荐为 3 个或是 5 个. Consul安装 Consul官网下载地址: https://www.consul.io/downloads.html linux 可以配置放在 mv consul /usr/local/bin/ 验证 consul ,输出提示帮助说明安装完成。 Consul运行 agent可以运行为server或client模式。

consul下载安装

匿名 (未验证) 提交于 2019-12-02 23:38:02
下载consul 判断是否成功 cmd切换到consul解压目录,即consul.exe目录,执行输入consul出现如下表示安装成功 判断是否启动 cmd到consul安装目录键入命令: consul.exe agent -dev 本地模式,将会使用127.0.0.1 的ip地址 consul.exe agent -dev -client 192.168.xx.xx 远程模式 浏览器输入localhost:8500 出现如下界面表示启动成功 文章来源: https://blog.csdn.net/qq_40673786/article/details/91042373

SpringCloud Config 配置(基于Consul)

匿名 (未验证) 提交于 2019-12-02 22:56:40
一,构建配置中心    1.在pom.xml文件中添加相关依赖     <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-config-server</artifactId> </dependency>     <dependency>     <groupId>org.springframework.cloud</groupId>      <artifactId>spring-cloud-starter-consul-discovery</artifactId>     </dependency>   </dependencies>       2.在SpringBoot程序主类上添加@EnableConfigServer注解, 开启SpringCloud Config的服务端功能   @SpringBootApplication   @EnableConfigServer    public class Application {    public static void main(String[] args) {   SpringApplication.run(Application. class , args);   }