Kong安装简介
评价:其实是一个整合型的方案,从它的安装页面看:http://getkong.org/download/#other
该方案基于OpenResty,和lua
提供的功能是统一的Oauth认证、rest封装好了之后的流控、API添加能力,在此基础上其实也可以对整个集群做流量切、日志等功能,总得来说是对nginx一个更优秀的封装,使得其更便于操作。
缺点是,方案还是较新,没有webadmin的界面
===================================================================
1、下载
http://getkong.org/download/#centos
===================================================================
2、安装kong
$ sudo yum install epel-release
$ sudo yum install kong-0.2.0_2.*.noarch.rpm --nogpgcheck
===================================================================
3、手动安装
wget https://github.com/Mashape/kong/releases/download/0.2.0-2/kong-0.2.0_2.el7.noarch.rpm
yum install nc
yum install openssl098e
rpm -i kong-0.2.0_2.el7.noarch.rpm
===================================================================
4、安装卡桑德拉
1、下载
wget http://apache.fayea.com/cassandra/2.1.5/apache-cassandra-2.1.5-bin.tar.gz
tar zxvf apache-cassandra-2.1.5-bin.tar.gz
mv apache-cassandra-2.1.5 /opt/cassandra
vim /etc/profile
export CASSANDRA_HOME=/opt/cassandra
export PATH=$PATH:$CASSANDRA_HOME/bin
===================================================================
2、安装JAVA
2.1 安装JDK
wget http://119.254.108.84:8080/jdk.tar.gz
tar zxvf jdk.tar.gz
sudo update-alternatives --install /usr/bin/java java /opt/jdk/bin/java 300
sudo update-alternatives --install /usr/bin/javac javac /opt/jdk/bin/javac 300
sudo update-alternatives --install /usr/bin/jar jar /opt/jdk/bin/jar 300
sudo update-alternatives --config java
vim /etc/profile
export JAVA_HOME=/opt/jdk
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
-----------------------------------------------
2.2 安装maven
wget http://mirrors.cnnic.cn/apache/maven/maven-3/3.2.3/binaries/apache-maven-3.2.3-bin.tar.gz
tar zxvf apache-maven-3.2.3-bin.tar.gz
mv apache-maven-3.2.3-bin /opt/maven
vim /etc/profile
export M2_HOME=/opt/maven
export M2=$M2_HOME/bin
export PATH=$M2:$PATH
===================================================================
3、启动
bin/cassandra -f
前台启动
===================================================================
4、启动shell
./cqlsh
Connected to Test Cluster at 127.0.0.1:9042.
[cqlsh 5.0.1 | Cassandra 2.1.2 | CQL spec 3.2.0 | Native protocol v3]
Use HELP for help.
cqlsh>
监听在9042端口
===================================================================
5、CQL查询语言
http://cassandra.apache.org/doc/cql3/CQL.html
2与3之间貌似不兼容
===================================================================
参考文档:http://wiki.apache.org/cassandra/GettingStarted
6、开始一个简单的例子
建立键空间:
CREATE KEYSPACE mykeyspace
WITH REPLICATION = { 'class' : 'SimpleStrategy', 'replication_factor' : 1 };
-----------------------------------------------
使用键空间:
USE mykeyspace;
-----------------------------------------------
建立users表:
CREATE TABLE users (
user_id int PRIMARY KEY,
fname text,
lname text
);
-----------------------------------------------
插入数据:
INSERT INTO users (user_id, fname, lname)
VALUES (1745, 'john', 'smith');
INSERT INTO users (user_id, fname, lname)
VALUES (1744, 'john', 'doe');
INSERT INTO users (user_id, fname, lname)
VALUES (1746, 'john', 'smith');
-----------------------------------------------
查询数据:
SELECT * FROM users;
-----------------------------------------------
建立索引并查询:
CREATE INDEX ON users (lname);
SELECT * FROM users WHERE lname = 'smith';
user_id | fname | lname
---------+-------+-------
1745 | john | smith
1746 | john | smith
cassandra有二级索引,所以可以这么做,但是因为是基于HASH的索引,所以要做范围查询的时候这么做是否OK?呢?
再说。。。
===================================================================
7、客户端问题
http://wiki.apache.org/cassandra/ClientOptions
node.js这边有且只有一个选择,今天是:2014-12-10号,就是官方驱动
项目地址:https://github.com/datastax/nodejs-driver
示例工程位置:ssh root@119.254.110.72
之后上传到github上去
mkdir node_cassandra
vim package.json
{
"name": "node-cassandra",
"version": "0.0.1",
"description": "sf express",
"dependencies": {
},
"license": "MIT",
"repository": {
"type": "git"
},
"readmeFilename": "Readme.md",
"bugs": {
"url": "https://github.com/visionmedia/co/issues"
},
"homepage": "https://github.com/visionmedia/co"
}
npm install cassandra-driver --save
-----------------------------------------------
客户端提供以下功能:
Node discovery
Configurable load balancing
Transparent failover
Tunability
Paging
Client-to-node SSL support
Row streaming
Prepared statements and query batches
-----------------------------------------------
基础用法:
var cassandra = require('cassandra-driver');
var client = new cassandra.Client({contactPoints: ['host1', 'h2'], keyspace: 'ks1'});
var query = 'SELECT email, last_name FROM user_profiles WHERE key=?';
client.execute(query, ['guy'], function(err, result) {
assert.ifError(err);
console.log('got user profile with email ' + result.rows[0].email);
});
-----------------------------------------------
日志:
client.on('log', function(level, className, message, furtherInfo) {
console.log('log event: %s -- %s', level, message);
});
===================================================================
8、监控预警
服务很强大,但是。。。。。收费,基于云
===================================================================
9、生态环境
参考链接:http://wiki.apache.org/cassandra/IntegrationPoints
===================================================================
10、硬件配置
内存:4G最小,32G也OK
CPU:8核心
硬盘:最好是2块以上,不包括操作系统本身的那部分
===================================================================
11、总体评价
功能上,可以提供原生的二级索引,有CQL可用,用户界面相当友好,无中心节点,可配置的一致性级别,非常强健
但是问题在于国内应用较少,HBase也很好用,但是缺少cassandra的不少功能
===================================================================
12、启动kong
[root@i-v788f9x0 ~]# kong start
[INFO] Using configuration: /etc/kong/kong.yml
[INFO] Proxy port.........8000
Admin API port.....8001
Database...........cassandra keepalive=60000 port=9042 timeout=1000 hosts=127.0.0.1 keyspace=kong
[INFO] Database not initialized. Running migrations...
[OK] Migrated up to: 2015-01-12-175310_init_schema
[OK] Migrated up to: 2015-04-24-154530_plugins
[WARN] ulimit is currently set to "1024". For better performance set it to at least "4096" using "ulimit -n"
[OK] Started
[root@i-v788f9x0 ~]#
===================================================================
13、校验是否启动
[root@i-v788f9x0 ~]# curl 127.0.0.1:8001
{"version":"0.2.0-2","lua_version":"LuaJIT
2.1.0-alpha","tagline":"Welcome to
Kong","hostname":"i-v788f9x0","plugins":{"enabled_in_cluster":{},"available_on_server":["keyauth","basicauth","ratelimiting","tcplog","udplog","filelog","cors","request_transformer"]}}[root@i-v788f9x0
~]#
[root@i-v788f9x0 ~]#
[root@i-v788f9x0 ~]#
[root@i-v788f9x0 ~]#
[root@i-v788f9x0 ~]#
===================================================================
14、简单教程
http://getkong.org/docs/0.2.0-2/getting-started/quickstart/
启动:
kong start
端口:
8000是工作端口
8001是配置端口
停止:
kong stop
重载:
kong reload
===================================================================
15、增加API
http://getkong.org/docs/0.2.0-2/getting-started/adding-your-api/
Kong安装简介的更多相关文章
- API Gateway - KONG 安装与配置
简介 Kong,是由Mashape公司开源的,基于Nginx的API gateway 特点 可扩展,支持分布式 模块化 功能:授权.日志.ip限制.限流.api 统计分析(存在商业插件Galileo等 ...
- API gateway 之 kong 安装
kong安装: https://getkong.org/install/centos/ 下载指定版本rpm: wget https://bintray.com/kong/kong-community- ...
- webmin安装简介
webmin安装简介 Webmin是目前功能最强大的基于Web的Unix系统管理工具.管理员通过浏览器访问Webmin的各种管理功能并完成相应的管理动作.目前Webmin支持绝大多数的Unix系统,这 ...
- API网关之Kong网关简介
1. Kong简介 那么,Kong是一个什么东东呢?它是一个开源的API网关,或者你可以认为它是一个针对API的一个管理工具.你可以在那些上游service之上,额外去实现一些功能.Kong是开源的, ...
- Linux安装简介
一.基本简介 Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户.多任务.支持多线程和多CPU的操作系统. Linux能运行主要的UNIX工具软件.应用程序 ...
- Kong安装教程(v1.0.2)
使用的软件 Unbuntu 虚拟机(有自己的服务器更好) PostgreSQL kong kong-dashboard docker spring boot 安装 PostgreSQL kong 需要 ...
- kong安装
1 哪些企业在用KONG: Mashapoe Marketplace Buzzlogix Gengo IBM Intel OpenDNS 饿了么 Kong可与两种不同的组件协同工作: Nginx:Ko ...
- kong 安装
1. yum 参考信息 https://bintray.com/kong/kong-community-edition-rpm $ sudo yum install epel-release $ su ...
- KONG 安装 (在 CentOS 7 中)
1. 下载安装包: https://bintray.com/kong/kong-community-edition-rpm/download_file?file_path=centos/7/kong ...
随机推荐
- 【Ubuntu】服务器状态命令
序号 命令名称 命令 1 查看Ubuntu版本 cat /etc/issue2 查看物理CPU个数 cat /proc/cpuinfo| grep "physical id"| s ...
- iOS开发:代码通用性以及其规范 第二篇(猜想iOS中实现TableView内部设计思路(附代码),以类似的思想实现一个通用的进度条)
在iOS开发中,经常是要用到UITableView的,我曾经思考过这样一个问题,为什么任何种类的model放到TableView和所需的cell里面,都可以正常显示?而我自己写的很多view却只是能放 ...
- 使用xcode 7 开发cocos2dx问题
使用xcode 7 开发cocos2dx问题 近期在学习cocos2dx使用xcode 7 bate 最为开发工具,由于xcode 7 能够不用增加开发人员就能真机測试啦,哈哈.可是当我创建好coco ...
- selenium.common.exceptions.WebDriverException: Message: "Can't load the profile.
记录一下,Selenium在最新版本中修好了这个问题.运行CMD,然后输入 pip install -U selenium
- Go Revel - Interceptors(拦截器)
`interceptor`拦截器是revel框架在执行一个`action`的前后所调用的函数.他允许以AOP方式进行开发,这种模式非常有用: 1.记录请求日志 2.错误处理 3.状态保持 在revel ...
- CPP_封装_继承_多态
类的三方法:封装,继承,多态.封装:使用一整套方法去创建一个新的类型,这叫类的封装.继承:从一个现有的类型基础上,稍作改动,得到一个新的类型的方法,叫类的继承.多态:当有几个不同的子类对象时,对象调用 ...
- linux 网络安全不完全笔记
一.安装Centos二.Linux网络网络环境设置 a.配置linux与客户机相连通 b.配置linux上网三.Yum详解 yum 的基本操作 a.使用 yum 安装新软件 yum install – ...
- [算法]和为S的两个数字
题目描述 输入一个递增排序的数组和一个数字S,在数组中查找两个数,使得他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的. 对应每个测试案例,输出两个数,小的先输出. 思路 定义两个指 ...
- android开发(34) 自定义 listView的分割线( 使用xml drawable画多条线)
我遇到这样一个场景,我需要自定义 listView的分割线,而这个分割线是由两条线组成的,在使用xml drawable时遇到了困难. 注释:画两条线是为了实现 凹陷的效果,在绘图中一条暗线紧跟着一条 ...
- 宏晶STC单片机使用STC-ISP串口烧录失败的原因与解决方法汇总
官方网址: http://www.stcisp.com/q_and_a_stcisp.html 个人小结 芯片:STC12C5A60S2 封装:LQFP-48 晶振大小:SD22.1184M 最小系统 ...