Kong API Gateway Helloworld

Submitted by Lizhe on Fri, 06/01/2018 - 09:09

 

 

[admin@localhost ~]$ curl -i -X POST http://localhost:8001/apis/ -d "name=helloworld" -d "uris=/helloworld" -d "upstream_url=http://www.baidu.com"
HTTP/1.1 201 Created
Date: Fri, 01 Jun 2018 01:59:15 GMT
Content-Type: application/json; charset=utf-8
Transfer-Encoding: chunked
Connection: keep-alive
Access-Control-Allow-Origin: *
Server: kong/0.13.1

Kong API Gateway Install and Start

Submitted by Lizhe on Thu, 05/31/2018 - 09:20

https://bintray.com/kong/kong-community-edition-rpm/download_file?file_path=centos/7/kong-community-edition-0.13.1.el7.noarch.rpm

sudo yum install epel-release

sudo yum install kong-community-edition-0.13.1.el7.noarch.rpm

 

安装数据库

sudo yum install https://download.postgresql.org/pub/repos/yum/9.4/redhat/rhel-7-x86_64/pgdg-centos94-9.4-3.noarch.rpm

 

sudo yum install https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7.6-x86_64/pgdg-centos96-9.6-3.noarch.rpm

sudo yum install postgresql94

mysql seq

Submitted by Lizhe on Fri, 05/11/2018 - 10:58

create table tb_sequence(name varchar(50) not null,current_value int not null,_increment int not null default 1, primary key(name));

insert into tb_sequence values('userid',0,1);

DELIMITER //

create function _nextval(n varchar(50)) returns integer

begin

declare _cur int;

set _cur=(select current_value from tb_sequence where name= n for update);

update tb_sequence set current_value = _cur + _increment where name=n ;

return _cur; end;

//

 

DELIMITER ;

 

 

centos7 chrome install

Submitted by Lizhe on Wed, 04/04/2018 - 10:40

 

https://blog.csdn.net/u010472499/article/details/72327963

1. 配置yum源

在目录 /etc/yum.repos.d/ 下新建文件 google-chrome.repo

cd /ect/yum.repos.d/ vim google-chrome.repo

  • 1
  • 2

写入如下内容:

start node

Submitted by Lizhe on Wed, 04/04/2018 - 10:07

cd /root/.jenkins/workspace/fr-commerce-front-admin/app

npm install

python /root/pyscripts/sedByPy.py ./scripts/start.js "const DEFAULT_PORT = parseInt(process.env.PORT, 10) || 3000;" "const DEFAULT_PORT = parseInt(process.env.PORT, 10) || 3001;"
python /root/pyscripts/sedByPy.py ./scripts/start.js "openBrowser(urls.localUrlForBrowser);" " "

npm install http-server -g
npm start &

python /root/pyscripts/test.py 

 

 

React browserHistory.push 传参

Submitted by Lizhe on Tue, 03/27/2018 - 16:03

传参方式1:

将参数直接写在路径中,前提是router定义时,需要指定参数的名字,这里假定为:value;

browserHistory.push(pathname: '/routerName/123');

如何获取到123呢?

通过this.props.params.value即可获取

传参方式2:

通过state传参,可以在页面跳转时,url中不显示参数;

browserHistory.push(pathname: '/routerName',state: { key: value });

跳转界面如何接收参数呢?

this.props.location.state.key便可以获得state中的key的value;

 

尝试了第二种方式发现不好用, 可能是router版本更新到4之后网上的内容太旧了

经过推敲之后发现可以这样

Maven的父子项目循环依赖问题

Submitted by Lizhe on Fri, 03/23/2018 - 23:37

        方法一:欺骗的办法,先去掉父pom.xml中的modules,然后install或者deploy父pom.xml,然后再install或者deploy所有依赖的子工程,最后再把父pom.xml中的modules都加上。

        方法二:使用参数-N,命令如:mvn install:install-file -DgroupId=test   -DartifactId=test-parent   -Dpackaging=pom  -Dfile=d:\wokspace\pom.xml -Dversion=3.0.4.7-SNAPSHOT -N,注意后边这个标红的-N就是我们要加的参数,这个参数的意思是:放弃递归子工程。

springboot maven 多模块引用不到依赖的类

Submitted by Lizhe on Fri, 03/23/2018 - 10:52

记录一个碰到的古怪问题

现象是, 我在使用springboot作为框架时, 使用了多个maven的子模块, 当开启eclipse的auto build时没有问题

怀疑是eclipse自己对项目进行了build,然后把class放在了正确的位置

当关闭了eclipse的build转为仅仅使用maven install命令时会提示找不到对应的自定义类

就是说A模块先install之后, B模块将A放入自己依赖描述, 然后引用A模块定义的class, 编译失败提示找不到

root cause 在于我使用了

<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>

从springboot1.4 开始, springboot plugin打包的jar会将classes文件放入

一个名为BOOT-INF的文件夹而不是jar包的根路径 例如 C:\ttt\lira-user-0.0.1-SNAPSHOT\BOOT-INF\classes

ECMAScript6 (4) 类

Submitted by Lizhe on Thu, 03/08/2018 - 15:50

类的声明

ECMAScript6中有一种与其他语言中类似的类特性: 类声明

同时它也是ECMAScript6中最简单的类形式

要声明一个类

class Student{
    constructor(name){
        this.name = name;
    }
    sayName(){
        console.log(this.name);
    }
}

new Student('Li').sayName();

然后强调一下构造器中的this

其值会被绑定到调用this的函数的最近的父对象

ECMAScript6 (3) 对象

Submitted by Lizhe on Thu, 03/08/2018 - 15:21

ECMAScript(5) 中如果为对象添加方法, 必需通过指定名称并完整定义函数来实现, 例如下面的例子

var person = {
    name:"Li",
    sayName: function(){
        console.log(this.name);
    }    
}

person.sayName();

在ECMAScript6中等价于