IP限流平台的源码托管在码云上面,可以在百度或者码云上搜索“ip-limiter”或者“ip限流平台”,即可以找到对应的资源。
1. 下载源码并安排
git clone https://gitee.com/laofeng/ip-limiter.gitcd ip-limiter
2. 修改必要的核心配置文件
首先需要启动IP限流控制台,IP限流控制台默认使用Redis做为存储,因而需要先对Redis进行配置,否则应用运行时会报错,修改IP控制台的核心配置文件ip-limiter-dashboard/src/main/resources/application.properties,只需要修改其中的redis配置,其它的都可以使用默认值,如下所示:
spring.redis.host = 192.168.12.111
spring.redis.port = 6379
spring.redis.password = 123456
spring.redis.database = 12
spring.redis.timeout = 5000
spring.redis.jedis.pool.max-idle = 8
spring.redis.jedis.pool.min-idle = 0
spring.redis.jedis.pool.max-wait = 8
spring.redis.jedis.pool.max-active = 20
3. 启动IP限流平台控制台
cd ip-limiter-dashboard
./start.sh
注:启动会报一些与Apollo相关的警告,可以不用理会,这个是方便配置后续接入Apollo的,如果实在是不喜欢,可以在pom中删除Apollo的引入,并且删除Apollo相关的代码即可。
控制台访问地址:
- 单个应用管理控制台地址:http://localhost:127.0.0.1:8080/limiter
- 全局应用管理控制台地址:http://127.0.0.1:8080/global-limiter
4. 启动演示应用
演示应用的目录ip-limiter-samples,里面包括了三个演示应用,分别为:
- ip-limiter-spring-boot-sample: 用于演示spring boot集用IP限流平台
- ip-limiter-spring-mvc-sample: 用于演示普通的spring mvc应用集用IP限流平台
- ip-limiter-spring-gateway-sample: 用于演示spring gateway集用IP限流平台
这三种应用类型应该包含了大部分的应用类型,每种应用都有自己的一些不同的集成方式及特点。
1)启动ip-limiter-spring-boot-sample
首先进入ip-limiter-spring-boot-sample目录,通过以下命令启动:
./install.sh
./start.sh
其默认的端口为10000,启动成功后,可以通过http://localhost:10000/hello访问验证,待控制台打印出往IP限流平台注册成功字样后,就可以在控制台的左上角的下拉框中看到该应用了。
2)启动ip-limiter-spring-mvc-sample
该演示应用为了启动上的方便,需要先在/etc/maven/setting.xml的pluginGroup中增加jetty的插件:
<pluginGroups>
<pluginGroup>org.mortbay.jetty</pluginGroup>
</pluginGroups>
直接保存退出即可。
然后进入ip-limiter-spring-mvc-sample目录,通过以下命令启动:
./runJetty.sh
启动的过程中可能会报一些Jetty的错误,这个不需要理会,待启动完成后其默认的端口为10001,启动成功后可以通过http://localhost:10001/app/health访问验证,待控制台打印出往IP限流平台注册成功字样后,就可以在控制台的左上角的下拉框中看到该应用了。
3)启动ip-limiter-spring-boot-sample
首先进入ip-limiter-spring-boot-sample目录,通过以下命令启动:
./install.sh
./start.sh
其默认的端口为10002,启动成功后,可以通过http://localhost:10002/api_hello/hello访问验证,该请求是通过网关访问http://localhost:10000/hello,因而ip-limiter-spring-boot-sample需要先启动才可以验证该应用,待控制台打印出往IP限流平台注册成功字样后,就可以在控制台的左上角的下拉框中看到该应用了。
本文暂时没有评论,来添加一个吧(●'◡'●)