consul

nginx-consul-template

懵懂的女人 提交于 2019-12-27 16:45:59
概述 Consul-template 是 HashiCorp 基于 Consul 所提供的可扩展的工具,通过监听 Consul中的数据变化,动态地修改一些配置文件中地模板。常用于在 Nginx、HAProxy上动态 配置健康状态下的客户端反向代理信息。 Consul-template 和 nginx 必须安装在同一台机器上,因为 Consul-template 需要动态修改 nginx 的配置文件 nginx.conf,然后执行 nginx -s reload命令进行路由更新,达到动态负载均衡的目的。 nginx-ingress是我自己命名的(实现原理跟k8s的ingress一样),因为此nginx主要是负责访问calico网络内的负载均衡,且calico不支持http协议的穿透,所以外部需要跟inress,通讯的话必须在中间再创建一个nginx-host作为转发,后面会介绍。 原理 通过 Nginx 自身实现负载均衡和请求转发; 通过 Consul-template 的 config 功能实时监控 Consul 集群节点的服务和数据的变化; 实时的用 Consul 节点的信息替换 Nginx 配置文件的模板,并重新加载配置文件; 下载nginx镜像 docker pull docker.io/nginx:latest    创建nginx脚本 官方及网上大部分的启动nginx

Surging学习笔记(一)

你说的曾经没有我的故事 提交于 2019-12-27 05:36:52
一、Surging框架简介 surging 是一个分布式微服务引擎,提供高性能RPC远程服务调用,服务引擎支持http、TCP、WS、Mqtt协议,采用Zookeeper、Consul作为surging服务的注册中心,集成了哈希一致性,随机,轮询、压力最小优先作为负载均衡的算法,底层协议集成采用的组件是dotnetty、 websocket-sharp 、 Kestrel 。支持通过docker hub 部署服务引擎,也可以通过nuget 引用组件的方式自定义服务引擎。 二、 Surging 本地部署测试 1、首先使用vs2017拉取 surging 最新代码 红框标记的有微服务框架代码、作者提供的服务DEMO代码、还有网关代码。代码详情可以去 作者博客 了解,这里就不一一阐述了。 2、安装启动Redis、RabbitMQ、Consul等相关依赖 相关需要安装的都已经成功安装,然后 配置Surging.ApiGateway、Surging.Services.Server这两个项目中redis rabbitmq consul的相关配置,因为是本地部署所以配置一般是不需要动的。 3.部署前,我们要 配置启动项,我们这里右击解决方案-》属性然后按我图中的顺序设置启动项 直接点击启动就可以了。 这样我们的网关和服务就已经正常启动了。下面我们测试一下接口是否可以用。

最简单环境让Surging先跑起来

白昼怎懂夜的黑 提交于 2019-12-27 05:36:42
一、准备环境 1.consul 2.Redis 下载地址: https://pan.baidu.com/s/1n7OsG0lmyQz_PlsOl77-jg 系统win7+ 、dotnet core SDK 2.2 二、编译代码 git克隆代码,从github克隆代码太慢可以考虑使用码云加速。 我这里有建一个镜像库, https://gitee.com/imiyu/surging 如果项目Surging.Services.Server引用了项目Surging.Core.Stage 要删除这个项目引用。 编译各项目 如果有项目编译失败,报以下提示,修改项目的语言版本为7.3 三、修改配置 启动 修改配置surgingSettings.json 去掉Packages中的SkywalkingModule;EventBusRabbitMQModule,如果默认配置使用的zookeeper 则修改为ConsulModule。 启动Consul (开发模式) consul agent -dev 在服务启动后查看服务是否已经注册成功: http://127.0.0.1:8500/ui/#/dc1/kv/services/ 启动 redis redis-server redis.windows.conf 启动项目Surging.Services.Server 启动成功,打开浏览器试一下: http:

搭建 Spring Cloud Consul

℡╲_俬逩灬. 提交于 2019-12-27 04:05:10
搭建 Spring Cloud Consul Consul vs. Eureka Consul vs Eureka vs Zookeeper Why was Eureka 2.0 discontinued? #1129 关于Eureka 2.x,别再人云亦云了! Eureka 2.0 is discontinued. What service discovery platform is Netflix using now? Consul 是一个分布式服务注册与发现,用于跨任何运行时平台和公共或私有云连接、保护和配置服务。它内置了服务注册与发现框 架、分布一致性协议实现、健康检查、Key/Value 存储、多数据中心方案。 它是 go 语言写。 Spring Cloud Consul 是 Spring Cloud 家族的一个项目,致力于提供简洁的整合 Consul。 搭建的时候出现问题,可以在下面留言。 1. 问题列表 IllegalStateException: No instances available 引入依赖 < dependency > < groupId > org.springframework.boot </ groupId > < artifactId > spring-boot-starter-actuator </ artifactId > </

consul与跨主机Docker通信

喜欢而已 提交于 2019-12-26 23:12:59
#Consul 介绍 Consul包含多个组件,但是作为一个整体,为你的基础设施提供服务发现和服务配置的工具.他提供以下关键特性: 服务发现。Consul的客户端可用提供一个服务,比如 api 或者mysql ,另外一些客户端可用使用Consul去发现一个指定服务的提供者。通过DNS或者HTTP应用程序可用很容易的找到他所依赖的服务。 健康检查。Consul客户端可用提供任意数量的健康检查,指定一个服务(比如:webserver是否返回了200 OK 状态码)或者使用本地节点(比如:内存使用是否大于90%).。这个信息可由operator用来监视集群的健康。被服务发现组件用来避免将流量发送到不健康的主机。 Key/Value存储。应用程序可用根据自己的需要使用Consul的层级的Key/Value存储。比如动态配置,功能标记,协调,领袖选举等等,简单的HTTP API让他更易于使用。 多数据中心。Consul支持开箱即用的多数据中心。这意味着用户不需要担心需要建立额外的抽象层让业务扩展到多个区域。 基础架构 Consul是一个分布式高可用的系统,这节将包含一些基础,我们忽略掉一些细节这样你可以快速了解Consul是如何工作的,如果要了解更多细节,请参考深入的架构描述。 每个提供服务给Consul的阶段都运行了一个Consul agent 。发现服务或者设置和获取 key

consul集群部署

浪子不回头ぞ 提交于 2019-12-26 07:51:45
一、环境准备 服务器01:192.168.1.160 服务器02:192.168.1.230 服务器03:192.168.1.177 二、consul安装 1、下载:https://www.consul.io/downloads.html 2、解压 3、配置环境变量 export PATH = $PATH :/opt/consul/consul1.6.2/bin 4、创建consul配置文件(三台均需配置,根据不同服务器调整IP地址) vi /opt/consul/consul1.6.2/conf/consul.json { "datacenter" : "BMS" , "data_dir" : "/opt/consul/consul1.6.2/data/consul" , "log_level" : "INFO" , "node_name" : "BMS201" , "server" : true, "ui" : true, "bootstrap_expect" : 2, "bind_addr" : "192.168.1.160" , "client_addr" : "192.168.1.160" , "retry_join" : [ "192.168.1.230" , "192.168.1.177" ] , "retry_interval" : "10s" ,

docker(3)容器管理命令

别等时光非礼了梦想. 提交于 2019-12-25 23:08:49
接着上一篇,今天说一下Docker 有关容器的常用命令。算是比较详细了吧。 docker run 命令: 注:此命令作用是使用一个镜像运行启动一个容器。 在启动运行的时候 会检查docker 中是否包含了该镜像 如果没有包含 ,docker 会自动的在 docker 的仓库中下载你想使用的镜像。也就是说有时候咱们可以省略:Doker pull 命令。 Docker run 命令常用的参数   1:--name 【镜像名】 :   --name 给启动的容器 起一个名字,如果不使用 –name docker的守护进程会自动给你的容器命名,这里建议使用此参数,docker进程起的名太难记了   2:-d 如果想启动一个在后台运行的容器的时候执行以下命令:可以启动一个容器并且后台运行 可以创建一个守护式容器。      可以对比一下名字   3:-t docker 会 分配一个伪终端并绑定到容器的标准输入上,   4:-i则让容器的标准输入保持打开,使用的时候可以两个结合为   5:– it 上面两个的结合   演示一下使用不使用 – it 作用:   Docker run – name centos centos /bin/bash   Docker run – name centos -it centos /bin/bash      注:一个运行后直接闪退了,并且不会保持与运行

8-Kong和Consul如何结合

隐身守侯 提交于 2019-12-25 18:47:42
如下配置文件中 # cat /etc/kong/kong.conf | sed 's#\s*##' | grep -v '^#' | grep -v '^$' anonymous_reports = off # Send anonymous usage data such as error upstream_keepalive = 1 # Sets the maximum number of idle keepalive database = postgres # Determines which of PostgreSQL or Cassandra pg_host = rm-xxxxxxxxxxx.pg.rds.aliyuncs.com pg_port = 3433 # The port to connect to. pg_user = kong # The username to authenticate if required. pg_password = xxxxxxxx # The password to authenticate if required. pg_database = kong # The database name to connect to. dns_resolver = 127.0.0.1:8600 # the local `resolv.conf`

Read values from consul while bootstrap spring boot

有些话、适合烂在心里 提交于 2019-12-25 01:09:59
问题 I have question is there any way to retrieve certain values and inject them to bootstrap.yml while application is coming up. I have configuration file like this: spring: application: name: myApp cloud: consul: enabled: true host: localhost port: 8500 config: enabled: true datasource: url: jdbc:oracle:thin:@localhost:1111:XXXX username: ${nameOfVariable1} password: ${nameOfVariable1} driver-class-name: oracle.jdbc.OracleDriver For example, I need to configure embedded tomcat port, or DB

Unable to locate consul service with wildfly-swarm instance from wildfly-swarm-examples/ribbon-consul

瘦欲@ 提交于 2019-12-24 17:27:46
问题 Following instructions in ribbon-consul example I started consul with consul agent -dev then in parent folder of this example mvn verify -Pconsul -Dswarm.consul.url=http://localhost:8500 From what I gather this is the default location of consul, so I also ran it without, only to have the same result. Task eventually starts all services, however fails to register with consul, with output: 2017-08-25 16:54:00,324 INFO [org.wildfly.swarm.runtime.deployer] (main) deploying time.war 2017-08-25 16