api-gateway实践(02)新服务网关 - 运行环境
一、服务网关的运行环境
1、服务配置中心
1.1、服务配置中心前台
前台 http://10.110.17.20/#/login:无源码,德奎部署在10.110.17.20的DockerStatck环境。
访问 http://10.110.17.20/#/login admin/123456a?
目前在dockerstack的前台中,随dockerstack一起启动!

1.2、服务配置中心后台
api-gateway-controller: springboot应用,配置中心前台用来保存服务定义到mysql数据库和发布服务定义到redis缓存。
- 保存和提取配置中心的数据,
- 使用mysql存储配置数据
- 使用redis缓存配置数据,供网关引擎使用。

2、服务网关引擎
服务网关引擎 api-gateway-engine:zuul工程,从redis读取服务定义,处理业务请求。
开源的zuul工程api-gateway-engine,采用gradle管理项目依赖,
- 读取redis中缓存的配置中心数据(api定义),不直接和配置中心打交道,而是通过redis解耦合。
- 拦截服务请求,进行权限检查
- 拦截服务请求,进行请求转发
gradle build
gradle jettyRun
使用 redis:10.110.17.20 : 6379


3、服务提供者应用
服务提供者:提供服务实现业务,任何一个提供http服务的web应用,都可以作为一个服务提供者应用,将其url注册到配置中心。
4、服务调用者应用
服务消费者:使用网关提供的服务,遵循网关服务调用的申请流程,
4.1、申请身份+授权
4.2、携带身份+授权,获取accessToken
4.3、携带access_token,访问服务网关业务
二、服务网关运行环境的启停
准备工作:
先要关掉centos7的防火墙!!!!
systemctl status firewalld
systemctl stop firewalld
1、启动配置中心
1.1、启动配置中心的 mysql 数据库
启动:systemctl start mariadb
查看:systemctl status mariadb
开机启动:systemctl enable mariadb (已设置)
1.2、启动配置中心的 redis 缓存
启动:systemctl start redis
查看:system status redis
开机启动:systemctl enable redis(已设置)
1.3、启动配置中心的服务层(api-gateway-controller)
这是个springBoot应用,api-gateway-controller.jar包在root下
启动:
cd /root
nohup java -jar api-gateway-controller.jar &
1.4、启动配置中心的界面层 - dockerstatck(德奎)
2、启动网关引擎(api-gateway-engine.war)
这是个jetty应用,发布在docker中。
启动:systemctl start dockerstack
查看:systemctl status dockerstack
开机启动: systemctl enable dockerstack
3、启动服务提供者
cd /opt/tomcat8.5.15/bin
./startup.sh
生成mobile的access_token, http://10.110.17.20:7070/spring-oauth-server/m/user_info?access_token=x验证服务提供者可用!!!!!!
4、启动服务消费者
此处使用postman/浏览器代替
api-gateway实践(02)新服务网关 - 运行环境的更多相关文章
- api-gateway实践(04)新服务网关 - 新手入门
一.网关引擎环境 1.下载代码 2.搭建环境 3.打包部署 二.配置中心环境 1.下载代码 2.搭建环境 3.打包部署 三.创建业务实例 1.以租户身份登录配置中心,注册 group.version. ...
- api-gateway实践(08)新服务网关 - 云端发布和日志查看
一.发布应用 1.新建应用空间 1.1.新建应用空间 1.2.新建应用 1.3.上传程序包 2.创建应用引擎服务 3.发布应用 3.1.为应用容器绑定Web运行环境(应用引擎服务) 3.2.发布应用( ...
- Spring Cloud开发实践 - 02 - Eureka服务和接口定义
服务注册 EurekaServer Eureka服务模块只有三个文件, 分别是pom.xml, application.yml 和 EurekaServerApplication.java, 内容如下 ...
- api-gateway实践(10)新服务网关 - OpenID Connect
网关指南: https://help.aliyun.com/document_detail/29487.html?spm=5176.doc48835.6.550.23Oqbl 网关控制台: https ...
- api-gateway实践(06)新服务网关 - 请求监控
一.实时监控 用户点击服务实例,系统显示服务实例-version下的api列表, 用户点击某个api的如下两个图标 1.API请求次数监控 横轴:时间,粒度为分钟 纵轴:请求访问次数 展示:失败数(红 ...
- api-gateway实践(03)新服务网关 - 网关请求拦截检查
参考链接:http://www.cnblogs.com/jivi/archive/2013/03/10/2952829.html 一.为什么要拦截检查请求? 防止重放攻击.篡改重放,进行使用规格检查 ...
- api-gateway实践(13)新服务网关 - 断路保护/熔断机制
参考链接:SpringCloud的Hystrix(五) Hystrix机制 新需求列表 1.在线测试 根据定义,生成输入界面, 点击测试, 验证参数,发起调用,返回执行结果 2.熔断保护 两个实现类: ...
- api-gateway实践(07)新服务网关 - 手动发布
应用地址:http://10.110.20.191:8080/api-gateway-engine/ 一.准备工作 1.xshell登陆云主机 1.1.配置链接 1.2.链接成功 1.3.关闭防火墙 ...
- [转载] 构建微服务:使用API Gateway
原文: http://mp.weixin.qq.com/s?__biz=MzA5OTAyNzQ2OA==&mid=206889381&idx=1&sn=478ccb35294c ...
随机推荐
- serializeArray()获取的表单参数转化成json格式的对象
目标:将serializeArray()这个方法获取的表单对象 转换成json格式 function serializeObject(){ //easyui提交表单 $('#form').form( ...
- Linux中jdk的安装和环境变量的配置
我安装的linux系统版本是RedHat4 64位,jdk版本为jdk-6u10-linux-i586.bin 1.首先找到安装包的位置->进入此文件夹,此bin格式的文件可用./命令直接进行安 ...
- PHP7变量的内部实现
PHP7变量的内部实现 受篇幅限制,这篇文章将分为两个部分.本部分会讲解PHP5和PHP7在zval结构体的差异,同时也会讨论引用的实现.第二部分会深入探究一些数据类型如string和对象的实现. P ...
- nginx location匹配顺序及CI框架的nginx配置
Nginx location匹配顺序如下: 用前缀字符串定义的location规则对URI进行匹配测试. =号定义了精确的前缀字符串匹配,如果发现精确匹配则使用当前规则.否则继续下一步匹配. 匹配其它 ...
- 第一迭代目标——future weather
第一个迭代目标(主要数据) 引导界面.获取天气数据(api接口).天气分享 人员工作分配: 引导界面:周子静,界面的引导,耗时3天 获取天气数据:包舒婷.俞先浩,api接口,耗时5天 天气分享:郭磊蕾 ...
- 【重要】ionic和Angular的安装步骤
首先搭建好npm和node环境的最新版本安装:: 一:开始安装ionic: 1. npm install -g ionic(全局安装ionic) 2. ionic start 新建的项目名称 +模板样 ...
- UWP:可滚动的PivotHeader
UWP开发里,Pivot真是个令人又爱又恨的控件.为了实现某些可滚动Header的效果,有些大佬甚至去掉了原本的Header,使用一个ListView或者ListBox自己画Header,不过这样会让 ...
- Mycat 配置说明(server.xml)
server.xml 几乎保存了所有mycat需要的系统配置信息,包括 mycat 用户管理.DML权限管理等,其在代码内直接的映射类为SystemConfig 类. user 标签 该标签主要用于定 ...
- ELK学习笔记(二)-HelloWorld实例+Kibana介绍
这次我们通过一个最简单的HelloWolrd来了解一下ELK的使用. 进入logstash的config目录,创建stdin.conf 文件. input{ stdin{ } } output{ st ...
- Python第二话 初识复杂数据类型(list、dictionary、tuple)
上一篇我们简单认识了数据类型:数字number和字符串string,这篇我们就来隆重介绍一下重量级的数据类型:列表list.字典dictionary和元组tuple. 一.列表List: ①列表是什么 ...