一、kong

1、使用kong来做服务网关,目前kong使用的是0.13版本现在地址:https://docs.konghq.com/install,kong的社区版没有dashboard,可以使用kong-dashboard,项目地址:https://github.com/PGBI/kong-dashboard。方便使用和管理。目前kong还不支持直接代理grpc,nginx-1.13.10以后版本开始支持代理grpc。kong0.13使用的是1.13.6,以后会支持grpc代理。

2、简单安装使用

使用yum安装,设置repo:

# cat kong.repo
[kong]
name=kong
baseurl=https://kong.bintray.com/kong-community-edition-rpm/centos/7
gpgcheck=0
enabled=1

#yum -y install  kong

@配置kong:

Kong supports both PostgreSQL 9.5+ and Cassandra 3.x.x as its datastore.

本次使用的是postgresql9.5.需要提前安装,使用yum安装,配置repo:

#cat pgdg-95-redhat.repo
[pgdg95]
name=PostgreSQL 9.5 $releasever - $basearch
baseurl=https://download.postgresql.org/pub/repos/yum/9.5/redhat/rhel-$releasever-$basearch
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-PGDG-95

[pgdg95-source]
name=PostgreSQL 9.5 $releasever - $basearch - Source
failovermethod=priority
baseurl=https://download.postgresql.org/pub/repos/yum/srpms/9.5/redhat/rhel-$releasever-$basearch
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-PGDG-95

#yum install postgresql95-server postgresql95-contrib

@初始化数据库
# /usr/pgsql-9.5/bin/postgresql95-setup initdb 
# systemctl enable postgresql-9.5.service
# systemctl start postgresql-9.5.service
 
@PostgreSQL数据库默认会创建一个linux系统用户postgres,通过passwd命令可设置系统用户的密码:
# echo "postgres" | passwd --stdin postgres
 
@修改PostgresSQL数据库配置实现远程访问:
修改postgresql.conf文件:
# vi /var/lib/pgsql/9.5/data/postgresql.conf

将listen_addresses='localhost'修改为listen_addresses='*'

@修改客户端认证配置文件pg_hba.conf:
将需要远程访问数据库的IP地址或地址段加入该文件。

将ipv4区下的127.0.0.1/32修改为0.0.0.0/0,将ident修改为md5。

#ipv4 local connections

host all all 0.0.0.0/0 md5
 
@创建账号和数据库
# su – postgres
    #bash发生变化,变成了-bash-4.2$
-bash-4.2$ createdb kong
-bash-4.2$ createser kong
-bash-4.2$ psql 
postgres=# \password kong
输入新的密码:
再次输入:
postgres=# alter database kong owner to kong;
postgres=# \q
@连接posqtsql
-bash-4.2$ psql -d kong -U kong -h 127.0.0.1 –W     
 
3、配置kong

proxy_access_log = /data/kong/logs/access.log
proxy_error_log = /data/kong/logs/error.log
admin_access_log = /data/kong/logs/admin_access.log
admin_error_log = /data/kong/logs/admin_error.log
proxy_listen = 10.10.29.43:8000, 10.10.29.43:8443 ssl
admin_listen = 10.10.29.43:8001, 10.10.29.43:8444 ssl
database = postgres
pg_host = 10.10.29.43
pg_port = 5432
pg_user = kong
pg_password = kong
pg_database = kong
dns_resolver = 10.42.11.101,10.42.12.247,10.42.5.28,10.42.3.96
dns_order = SRV,A,CNAME

 
dns_resolver的地址是consul的地址。consul启动的时候指定dns的port为53.
 
 
4、启动kong
#kong migrations up     ##执行一次
#kong start
 
代理访问地址: http://10.10.29.43:8000
如果使用https的,需要访问地址:http://10.10.29.43:8443
 
5、kong dashboard

cat /usr/sbin/kong-dashboard
#!/bin/bash

nohup docker run -p 8081:8080 pgbi/kong-dashboard start --kong-url http://10.10.29.43:8001 --basic-auth huoqiu=hqkong &

二、consul

http://www.cnblogs.com/cuishuai/p/8194345.html

微服务之kong+consul(二)的更多相关文章

  1. .NET Core微服务一:Consul服务中心

    本文的项目代码,在文章结尾处可以下载. 防爬虫,本文的网址是:https://www.cnblogs.com/shousiji/p/12253295.html 本文使用的环境:Windows10 64 ...

  2. 通过Dapr实现一个简单的基于.net的微服务电商系统(二)——通讯框架讲解

    首先感谢张队@geffzhang公众号转发了上一篇文章,希望广大.neter多多推广dapr,让云原生更快更好的在.net这片土地上落地生根. 目录:一.通过Dapr实现一个简单的基于.net的微服务 ...

  3. 通过Dapr实现一个简单的基于.net的微服务电商系统(二十)——Saga框架实现思路分享

    今天这篇博文的主要目的是分享一下我设计Saga的实现思路来抛砖引玉,其实Saga本身非常的类似于一个简单的工作流体系,相比工作流不一样的部分在于它没有工作流的复杂逻辑处理机制(比如会签),没有条件分支 ...

  4. .NET Core微服务之基于Consul实现服务治理

    Tip: 此篇已加入.NET Core微服务基础系列文章索引 一.Consul基础介绍 Consul是HashiCorp公司推出的开源工具,用于实现分布式系统的服务发现与配置.与其他分布式服务注册与发 ...

  5. .NET Core微服务之基于Consul实现服务治理(续)

    Tip: 此篇已加入.NET Core微服务基础系列文章索引 上一篇发布之后,很多人点赞和评论,不胜惶恐,这一篇把上一篇没有弄到的东西补一下,也算是给各位前来询问的朋友的一些回复吧. 一.Consul ...

  6. 1、微服务--为什么有consul,consul注册,心跳检测,服务发现

    一.为什么有consul? 在微服务,每1个服务都是集群式的,订单服务在10台服务器上都有,那么用户的请求到达,获取哪台服务器的订单服务呢?如果10台中的有的订单服务挂了怎么办?10台服务器扛不住了, ...

  7. 从壹开始微服务 [ DDD ] 之十二 ║ 核心篇【下】:事件驱动EDA 详解

    缘起 哈喽大家好,又是周二了,时间很快,我的第二个系列DDD领域驱动设计讲解已经接近尾声了,除了今天的时间驱动EDA(也有可能是两篇),然后就是下一篇的事件回溯,就剩下最后的权限验证了,然后就完结了, ...

  8. Spring Cloud 微服务一:Consul注册中心

    Consul介绍 Consul is a service mesh solution providing a full featured control plane with service disc ...

  9. Python微服务实践-集成Consul配置中心

    A litmus test for whether an app has all config correctly factored out of the code is whether the co ...

随机推荐

  1. Java 理论与实践: 用弱引用堵住内存泄漏

    弱引用使得表达对象生命周期关系变得容易了 虽然用 Java™ 语言编写的程序在理论上是不会出现“内存泄漏”的,但是有时对象在不再作为程序的逻辑状态的一部分之后仍然不被垃圾收集.本月,负责保障应用程序健 ...

  2. hdu 5084 前缀和预处理

    http://acm.hdu.edu.cn/showproblem.php?pid=5084 给出矩阵M,求M*M矩阵的r行c列的数,每个查询跟前一个查询的结果有关. 观察该矩阵得知,令ans = M ...

  3. python编写producer、consumer

    自主producer.consumer 首先在不同的终端,分别开启两个consumer,保证groupid一致 ]# python consumer_kafka.py 执行一次producer ]# ...

  4. cocos 2dx 通过循环实现界面图形的摆放

    首先创建一个一维数组 this.starSprites = new Array(); 然后知道星星的间距和坐标后通过如下代码实现位置的摆放 for(var i = 0; i < 6; i++){ ...

  5. delphi IsIPAdress 非正则表达式验证IP的方法

    function IsIPAdress(const Value:String):Boolean; var n,x,i: Integer; Posi:Array[..]of Integer; Oktet ...

  6. Apache中 RewriteCond 规则参数介绍

    RewriteCond指令定义了规则生效的条件,即在一个RewriteRule指令之前可以有一个或多个RewriteCond指令.条件之后的重写规则仅在当前URI与Pattern匹配并且满足此处的条件 ...

  7. Windows核心编程:第7章 线程调度、优先级和关联性

    Github https://github.com/gongluck/Windows-Core-Program.git //第7章 线程调度.优先级和关联性.cpp: 定义应用程序的入口点. // # ...

  8. ASP.NET Core ef启用数据迁移

    创建一个项目 通过Nuget获取EF Core相关的扩展包 appsettings.json 建立数据库连接串 创建数据库上下文EntityDbContext类,用于实体类映射数据库表 使用包管理器控 ...

  9. ASP.NET MVC基础知识

    1.MVC项目文件夹说明 App_Data:用来保存数据文件,比如XML文件等: App_Start:包含mvc系统启动的相关类: Controller:存放整个项目“控制器”的代码文件: Model ...

  10. 二进制转化为十进制Java实现

    二进制转化为十进制 ①按权展开方法Java实现 /* * 按权展开法 */ public static double BinToTen1(String binary) { //查找该二进制是否存在小数 ...