consul

consul在centos7下实现集群

佐手、 提交于 2019-12-02 04:49:11
上一篇 consul在centos7下实现集群 讲到consul的安装和集群,本次来说一下asp.net core使用consul注册服务 1. 准备 安装了consul的centos7系统 三个asp.net core api项目,其中一个网关项目,两个服务,一般微服务都会使用网关,所以这里也加上网关 项目将发布在本机IIS上(ip:192.168.1.155),consul在虚拟机(系统centos7,ip:192.168.253.128) 2. 代码 服务A:添加HealthController,健康检查用,然后发布到IIS,使用端口9001 [Produces("application/json")] [Route("api/[controller]")] [ApiController] public class HealthController : ControllerBase { [HttpGet] public IActionResult Get() => Ok("ok"); } 服务B:与服务A一样,添加HealthController,内容一样,然后发布到IIS,使用端口9002 网关项目:nuget引用ocelot包,然后在项目根目录下添加ocelot.json文件 { "ReRoutes": [ { "UpstreamPathTemplate": "/a/

.Netcore 2.0 Ocelot Api网关教程(4)- 服务发现

筅森魡賤 提交于 2019-12-02 01:59:52
本文介绍Ocelot中的服务发现(Service Discovery),Ocelot允许指定一个服务发现提供器,之后将从中寻找下游服务的host和port来进行请求路由。 关于服务发现的详细介绍请 点击 。 在Ocelot中使用了 Consul 作为服务发现的provider。 1、Consul下载安装 从 官方下载页 选择合适的平台下载,解压出一个二进制文件并保存到相应位置,并将路径存入path中,本文以windows版本为例(其他平台操作类似)。 打开 cmd/powershell 运行 consul agent -dev 输出如下文本表示成功以dev方式启动consul ==> Starting Consul agent... ==> Consul agent running! Version: 'v1.0.7' Node ID: '3fc1edca-b635-56cc-b767-01a942423f73' Node name: 'Weidaicheng-PC' Datacenter: 'dc1' (Segment: '<all>') Server: true (Bootstrap: false) Client Addr: [127.0.0.1] (HTTP: 8500, HTTPS: -1, DNS: 8600) Cluster Addr: 127.0.0.1 (LAN:

docker跨主机通信-overlay

半腔热情 提交于 2019-12-02 00:25:05
1,让两个网络环境下的容器互通,那么必然涉及到网络信息的同步,所以需要先配置一下consul。 直接运行下面命令。启动consul。 docker run -d -p 8500:8500 -h consul --name consul progrium/consul -server -bootstrap 2,同步网络信息的工具安装好了,那么肯定需要容器能够使用这个同步工具,以便consul能够找到各个服务器的docker节点。修改各个节点 docker的启动配置文件/lib/systemd/system/docker.service。在 ExecStart 最后添加 --cluster-store=consul:// :8500 --cluster-advertise=eth0(当前对外ip使用的网卡名或者直接使用当前ip):2376 3,保证所有主机的docker配置文件都与2一致,这样就能保证所有的docker overlay网络同步在consul上。 基本上需要配置的工作我们都已经完成了。 4,在随机一台机器上创建overlay网络(比如我想创建的docker的mongo集群网络互通,我创建了一个mongo的overlay的网络): docker network create -d overlay mongo 这个时候,你在别的机器上执行docker network ls

consul在centos7下实现集群

隐身守侯 提交于 2019-12-02 00:24:31
1. 准备 虚拟机安装centos7,复制两次,即共有三台虚拟机,ip分别为: 192.168.245.128 192.168.245.129 192.168.245.130 开放8500端口: firewall-cmd --zone=public --add-port=8500/tcp permanent firewall-cmd --reload 2. 安装consul 在每台虚拟机上执行如下步骤: yum install -y unzip yum install -y wget wget https://releases.hashicorp.com/consul/1.6.1/consul_1.6.1_linux_amd64.zip unzip consul_1.6.1_linux_amd64.zip 解压后看到consul文件,将文件迁移到/usr/bin/,命令为:mv consul /usr/bin 至此,consul安装完成 3. 集群 在三台机器上分别执行如下命令: consul agent -server -ui -bootstrap-expect=3 -data-dir=/var/local/consul -node=consul-128 -client=0.0.0.0 -bind=192.168.245.128 -datacenter=dc1 consul

Consul CAP理论纠错

偶尔善良 提交于 2019-12-01 23:28:42
Consul CAP理论纠错 随便搜索Consul、zookeeper、etcd、eureka注册中心比较相关博客文章,你都会发现千篇一律的是以下这幅对比图:但是我对Consul使用的是CA架构还是CP架构产生了疑问,于是我查看的Consul官网相关资料, 资料表明Consul不是CA体系架构,而是CP体系架构。 依据来源: https://www.consul.io/intro/vs/serf.html 熟悉CAP理论的人都应该清楚,CA架构是比较难保证的,因为现在系统很难避免网络分区(P)的情况出现。 虽然CAP理论三者之间没有绝对的界限,但是Consul的设计更偏重CP架构,保证一致性的前提下,尽量保证可用性。 来源: https://www.cnblogs.com/zhuyeshen/p/11721178.html

基于OpenResty与Consul实现服务网格ServiceMesh

若如初见. 提交于 2019-12-01 18:57:05
一、逻辑架构 1 、基于 OpenResty 开发智能代理, 利用其动态可编程特性,动态化配置 nginx 服务路由。 2 、可能需要向 OpenResty 添加 weibo 开源的 upsync 服务发现模块。 3 、基于 consul 建设微服务注册中心集群。 4 、服务网格中的每个 node包括至少一个智能代理,若干个微服务, 各个 node 和注册中心一起构成一个服务网格 。 5 、每个微服务启动时需向注册中心上报自身服务信息,包括 ip, 端口,服务名等。 6 、智能代理根据自身的配置和需求从注册中心 pull 相应的动态服务列表信息,并在本地落地做兜底,防止注册中心不可用的情况。 7 、至此,对于每个微服务: ( 1 )对外访问可通过要访问的服务名由智能代理提供 upstream 动态负载均衡访问。 ( 2 )对外提供服务则只需在启动时调用 rest API 向注册中心集群提供自身服务信息即可。 二、组件功能需求 1、 智能 proxy (1) 配置并存放服务注册中心 URL 、配置本 node 需要的外部服务 list 。 (2) 负责发送(转发)本 node 上各个 service 的服务注册请求到服务注册中心。 (3) 根据外部服务 list 到服务注册中心动态获取服务详细信息,通过 openresty 内嵌 lua 脚本动态生成本地配置 location 、

consul生产实战

孤人 提交于 2019-12-01 15:58:21
pwd:/home/appadmin wget https://releases.hashicorp.com/consul/1.6.1/consul_1.6.1_linux_amd64.zip unzip consul_1.6.1_linux_amd64.zip mkdir /tmp/consul mkdir /tmp/consul.d ./consul agent -server -ui -bootstrap-expect=3 -config-dir=/tmp/consul.d -data-dir=/tmp/consul -node=v9prod1 -bind=10.13.70.7 -bind=0.0.0.0 -client=0.0.0.0 -datacenter=Vietnam ./consul agent -server -ui -bootstrap-expect=3 -config-dir=/tmp/consul.d -data-dir=/tmp/consul -node=v9prod2 -bind=10.13.70.8 -bind=0.0.0.0 -client=0.0.0.0 -datacenter=Vietnam ./consul agent -server -ui -bootstrap-expect=3 -config-dir=/tmp/consul.d -data

SpringCloud之Gateway实现路由转发

我的未来我决定 提交于 2019-12-01 14:17:36
在访问不同的url时,通过gateway对路径的拦截,按url的区别分配到不同服务器上。 具体实现 首先创建一个父module,eureka-family,同时开启consul 服务提供者 创建子module,eureka-client-hello(其实服务发现工具用的是consul,但命名成eureka了,不过也不重要!) pom.xml如下 <?xml version="1.0" encoding="UTF-8"?> < project xmlns = " http://maven.apache.org/POM/4.0.0 " xmlns: xsi = " http://www.w3.org/2001/XMLSchema-instance " xsi: schemaLocation = " http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd " > < modelVersion > 4.0.0 </ modelVersion > < parent > < groupId > org.springframework.boot </ groupId > < artifactId > spring-boot-starter-parent </ artifactId > <

consul-常用命令

十年热恋 提交于 2019-12-01 12:56:20
1、consul 是B/C架构。服务端和客户端包是一样的。差别在于启动时候的参数。 --客户端 ./consul agent -join=172.29.2.65:8301 -bind=172.29.3.164 -client=172.29.3.164 -data-dir=/app/consul/data -node=client1 -encrypt=eOC89RMstTVHq92WTb8ExQ== --服务端 nohup consul agent -server -bind=0.0.0.0 -client=0.0.0.0 -bootstrap-expect=1 -data-dir=/app/consul/data/server -node=server1 -encrypt=eOC89RMstTVHq92WTb8ExQ== -ui & 2、常用命令 查看成员 [root@LAPP-V576 ~]# consul members Node Address Status Type Build Protocol DC Segment server1 172.29.2.65:8301 alive server 1.0.7 2 dc1 <all> client1 172.29.3.164:8301 alive client 1.0.7 2 dc1 <default> 产生公用的秘钥:

Consul 知识点

时光毁灭记忆、已成空白 提交于 2019-12-01 10:08:23
平时开发时,一般使用consul dev模式,开发模式下kv存储不会持久化存储,全在内存中(重启consul就丢了!),所以一般建议yml配置文件内容,在项目中单独存一个文件,启动调试时,直接把配置文件内容贴到Value框里即可。 以上出处: https://www.cnblogs.com/duanxz/p/9660766.html 来源: https://www.cnblogs.com/cag2050/p/11679144.html