当前位置: 首页 > news >正文

免费空间申请2018/官网seo优化

免费空间申请2018,官网seo优化,wordpress空白页面,农林网站建设一、监控 Actuator是Spring Boot提供的用来对应用系统进行监控的功能模块,借助于Actuator开发者可以很方便地对应用系统某些监控指标进行查看、统计等。 Actuator的核心是端点Endpoint。 Endpoint可以让我们监视应用程序并与其交互。Spring Boot包含许多内置端点…

一、监控

ActuatorSpring Boot提供的用来对应用系统进行监控的功能模块,借助于Actuator开发者可以很方便地对应用系统某些监控指标进行查看、统计等。

Actuator的核心是端点Endpoint

Endpoint可以让我们监视应用程序并与其交互。Spring Boot包含许多内置端点,并允许您添加自己的端点。

我们可以启用或禁用每个端点,启用或禁用端点控制是否创建端点并且其bean存在于应用程序上下文中。 要进行远程访问,还必须通过JMXHTTP公开端点。大多数端点HTTP访问默认是关闭的。

二、开启Gateway的Actuator

2.1 引入Actuator依赖

gateway/pom.xml 新增以下内容:

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId>
</dependency

2.2 启动监控端点

gateway/src/main/resources/bootstrap.yml中新增以下内容:

management.endpoint.gateway.enabled: true # default value
management.endpoints.web.exposure.include: gateway

开启监控端点,访问/actuator/gateway/*Spring Cloud Gateway 应用程序进行交互。

2.3 详细访问格式

Spring Cloud Gateway监控端点(注意每个端点都有/actuator/gateway基本路径):

ID方法描述
globalfiltersGET获取网关中定义(应用于所有路由)的全局过滤器列表。
routefiltersGET获取网关中定义(应用于路由)的GatewayFilterFactory列表。
refreshPOST清除路由缓存。
routesGET获取网关中定义的路由列表。
routes/{id}GET获取指定路由的信息。
routes/{id}POST向网关添加新的路由。
routes/{id}DELETE从网关中删除指定路由。

2.3.1 获取路由明细

通过/actuator/gateway/routes获取网关中定义的路由列表:

[{"predicate": "Paths: [/provider/**], match trailing slash: true","route_id": "54c58c6b-de67-4381-a9de-5f39690a35c3","filters": ["[[StripPrefix parts = 1], order = 0]"],"uri": "http://localhost:4000","order": 0
}, {"predicate": "Paths: [/lb/**], match trailing slash: true","route_id": "36e46476-f309-473c-87c3-5f6a41f9b9a0","filters": ["[[StripPrefix parts = 1], order = 0]"],"uri": "lb://nacos-discovery-http-provider","order": 0
}, {"predicate": "Paths: [/csdn/**], match trailing slash: true","route_id": "ce24523b-50e8-468d-b581-cfbb063ab64b","filters": ["[[RewritePath /csdn/(?<remaining>.*) = '/${remaining}'], order = 0]"],"uri": "https://blog.csdn.net:443","order": 0
}, {"predicate": "Paths: [/provider/**], match trailing slash: true","route_id": "http-provider-route","filters": ["[[StripPrefix parts = 1], order = 1]"],"uri": "http://localhost:4000","order": 0
}, {"predicate": "(Paths: [/lb/**], match trailing slash: true && com.gm.demo.gateway.component.CustomRoutePredicateFactory$1@41a0a5ba)","route_id": "nacos-discovery-http-provider-route","filters": ["[[StripPrefix parts = 1], order = 1]"],"uri": "lb://nacos-discovery-http-provider","order": 0
}, {"predicate": "(XForwardedRemoteAddrRoutePredicateFactory$$Lambda$1155/0x000000080141f938 && Paths: [/proxy/**], match trailing slash: true)","route_id": "xforwarded_remoteaddr_route","filters": ["[[StripPrefix parts = 1], order = 1]", "[[RedirectTo 302 = http://baidu.com], order = 2]"],"uri": "http://127.0.0.1:9999/","order": 0
}, {"predicate": "Paths: [/rate/**], match trailing slash: true","route_id": "requestratelimiter_route","filters": ["[[StripPrefix parts = 1], order = 1]", "[com.gm.demo.gateway.filter.CustomRequestRateLimiterGatewayFilterFactory$$Lambda$1181/0x0000000801432860@6ee76969, order = 2]"],"uri": "lb://nacos-discovery-http-provider","order": 0
}, {"predicate": "Paths: [/day/**], match trailing slash: true","route_id": "day_requestratelimiter_route","filters": ["[[StripPrefix parts = 1], order = 1]", "[com.gm.demo.gateway.filter.DayRequestRateLimitGatewayFilterFactory$$Lambda$1182/0x0000000801432ac0@5c25c28d, order = 2]"],"uri": "lb://nacos-discovery-http-provider","order": 0
}, {"predicate": "Paths: [/delay/**], match trailing slash: true","metadata": {"connect-timeout": 200,"response-timeout": 200},"route_id": "per_route_timeouts","filters": ["[[StripPrefix parts = 1], order = 1]"],"uri": "https://example.org:443","order": 0
}]

响应包含网关中定义的所有路由的详细信息。下表描述了响应的每个元素(每个都是一个路由)的结构:

名称类型描述
route_idString路由标识
predicateObject路由断言
filtersArray应用于路由的GatewayFilterFactory集合
orderNumber路由顺序

默认情况下启用此功能。要禁用它,请设置以下属性:

spring.cloud.gateway.actuator.verbose.enabled: false

2.3.2 检索全局过滤器

通过/actuator/gateway/globalfilters获取网关中定义(应用于所有路由)的全局过滤器列表:

{"org.springframework.cloud.gateway.filter.NettyWriteResponseFilter@684a802a": -1,"org.springframework.cloud.gateway.filter.AdaptCachedBodyGlobalFilter@3a589eed": -2147482648,"org.springframework.cloud.gateway.filter.RouteToRequestUrlFilter@69d902f9": 10000,"org.springframework.cloud.gateway.filter.ReactiveLoadBalancerClientFilter@10a064bd": 10150,"org.springframework.cloud.gateway.filter.ForwardPathFilter@3ca3eba2": 0,"org.springframework.cloud.gateway.filter.NettyRoutingFilter@2ff8d39b": 2147483647,"org.springframework.cloud.gateway.filter.RemoveCachedBodyFilter@7b5c9412": -2147483648,"org.springframework.cloud.gateway.filter.ForwardRoutingFilter@547052": 2147483647,"org.springframework.cloud.gateway.filter.LoadBalancerServiceInstanceCookieFilter@2de7fe0e": 10151,"org.springframework.cloud.gateway.filter.WebsocketRoutingFilter@23c00420": 2147483646,"com.gm.demo.gateway.filter.ApiLoggingFilter@352e4b6d": 2147483647,"org.springframework.cloud.gateway.filter.GatewayMetricsFilter@22f046b": 0
}

响应包含现有全局过滤器的详细信息。对于每个全局过滤器,都有过滤器对象的字符串表示和过滤器链中的相应顺序。

2.3.4 路由过滤器

通过/actuator/gateway/routefilters获取网关中定义(应用于路由)的GatewayFilterFactory列表:

{"[DedupeResponseHeaderGatewayFilterFactory@336070ab configClass = DedupeResponseHeaderGatewayFilterFactory.Config]": null,"[RequestRateLimiterGatewayFilterFactory@433b546f configClass = RequestRateLimiterGatewayFilterFactory.Config]": null,"[RedirectToGatewayFilterFactory@3dec769 configClass = RedirectToGatewayFilterFactory.Config]": null,"[RetryGatewayFilterFactory@3d405fe5 configClass = RetryGatewayFilterFactory.RetryConfig]": null,"[PrefixPathGatewayFilterFactory@20a4cba7 configClass = PrefixPathGatewayFilterFactory.Config]": null,"[RewriteResponseHeaderGatewayFilterFactory@19d9ba89 configClass = RewriteResponseHeaderGatewayFilterFactory.Config]": null,"[AddRequestHeaderGatewayFilterFactory@2419a5db configClass = AbstractNameValueGatewayFilterFactory.NameValueConfig]": null,"[RewritePathGatewayFilterFactory@9de1b85 configClass = RewritePathGatewayFilterFactory.Config]": null,"[StripPrefixGatewayFilterFactory@3436d3d7 configClass = StripPrefixGatewayFilterFactory.Config]": null,"[SetRequestHostHeaderGatewayFilterFactory@dbca149 configClass = SetRequestHostHeaderGatewayFilterFactory.Config]": null,"[DayRequestRateLimitGatewayFilterFactory@7dc92a06 configClass = DayRequestRateLimitGatewayFilterFactory.Config]": null,"[RewriteLocationResponseHeaderGatewayFilterFactory@484876a1 configClass = RewriteLocationResponseHeaderGatewayFilterFactory.Config]": null,"[RequestSizeGatewayFilterFactory@2e47a71e configClass = RequestSizeGatewayFilterFactory.RequestSizeConfig]": null,"[CacheRequestBodyGatewayFilterFactory@6be80629 configClass = CacheRequestBodyGatewayFilterFactory.Config]": null,"[ModifyRequestBodyGatewayFilterFactory@383e6734 configClass = ModifyRequestBodyGatewayFilterFactory.Config]": null,"[CustomRequestRateLimiterGatewayFilterFactory@2a73a64f configClass = RequestRateLimiterGatewayFilterFactory.Config]": null,"[AddResponseHeaderGatewayFilterFactory@516037be configClass = AbstractNameValueGatewayFilterFactory.NameValueConfig]": null,"[SetRequestHeaderGatewayFilterFactory@323c6f9c configClass = AbstractNameValueGatewayFilterFactory.NameValueConfig]": null,"[SaveSessionGatewayFilterFactory@60ef30b1 configClass = Object]": null,"[RemoveRequestHeaderGatewayFilterFactory@282c5075 configClass = AbstractGatewayFilterFactory.NameConfig]": null,"[RemoveRequestParameterGatewayFilterFactory@2ed35f24 configClass = AbstractGatewayFilterFactory.NameConfig]": null,"[ModifyResponseBodyGatewayFilterFactory@3be50b2c configClass = ModifyResponseBodyGatewayFilterFactory.Config]": null,"[SecureHeadersGatewayFilterFactory@4b475742 configClass = SecureHeadersGatewayFilterFactory.Config]": null,"[RequestHeaderToRequestUriGatewayFilterFactory@3f40568e configClass = AbstractGatewayFilterFactory.NameConfig]": null,"[PreserveHostHeaderGatewayFilterFactory@10f10230 configClass = Object]": null,"[SetStatusGatewayFilterFactory@20163008 configClass = SetStatusGatewayFilterFactory.Config]": null,"[RemoveResponseHeaderGatewayFilterFactory@362b384c configClass = AbstractGatewayFilterFactory.NameConfig]": null,"[SetResponseHeaderGatewayFilterFactory@68550d86 configClass = AbstractNameValueGatewayFilterFactory.NameValueConfig]": null,"[MapRequestHeaderGatewayFilterFactory@52bb3dcd configClass = MapRequestHeaderGatewayFilterFactory.Config]": null,"[SetPathGatewayFilterFactory@52c6e959 configClass = SetPathGatewayFilterFactory.Config]": null,"[RequestHeaderSizeGatewayFilterFactory@37b470df configClass = RequestHeaderSizeGatewayFilterFactory.Config]": null,"[AddRequestParameterGatewayFilterFactory@654db80b configClass = AbstractNameValueGatewayFilterFactory.NameValueConfig]": null
}

2.3.5 刷新路由缓存

要清除路由缓存,发出请求/actuator/gateway/refresh。该请求返回 200,但没有响应正文。

2.3.6 获取网关中定义的路由

通过/actuator/gateway/routes获取网关中定义的路由列表:

[{"predicate": "Paths: [/provider/**], match trailing slash: true","route_id": "54c58c6b-de67-4381-a9de-5f39690a35c3","filters": ["[[StripPrefix parts = 1], order = 0]"],"uri": "http://localhost:4000","order": 0
}, {"predicate": "Paths: [/lb/**], match trailing slash: true","route_id": "36e46476-f309-473c-87c3-5f6a41f9b9a0","filters": ["[[StripPrefix parts = 1], order = 0]"],"uri": "lb://nacos-discovery-http-provider","order": 0
}, {"predicate": "Paths: [/csdn/**], match trailing slash: true","route_id": "ce24523b-50e8-468d-b581-cfbb063ab64b","filters": ["[[RewritePath /csdn/(?<remaining>.*) = '/${remaining}'], order = 0]"],"uri": "https://blog.csdn.net:443","order": 0
}, {"predicate": "Paths: [/provider/**], match trailing slash: true","route_id": "http-provider-route","filters": ["[[StripPrefix parts = 1], order = 1]"],"uri": "http://localhost:4000","order": 0
}, {"predicate": "(Paths: [/lb/**], match trailing slash: true && com.gm.demo.gateway.component.CustomRoutePredicateFactory$1@3715ba94)","route_id": "nacos-discovery-http-provider-route","filters": ["[[StripPrefix parts = 1], order = 1]"],"uri": "lb://nacos-discovery-http-provider","order": 0
}, {"predicate": "(XForwardedRemoteAddrRoutePredicateFactory$$Lambda$1155/0x000000080141f938 && Paths: [/proxy/**], match trailing slash: true)","route_id": "xforwarded_remoteaddr_route","filters": ["[[StripPrefix parts = 1], order = 1]", "[[RedirectTo 302 = http://baidu.com], order = 2]"],"uri": "http://127.0.0.1:9999/","order": 0
}, {"predicate": "Paths: [/rate/**], match trailing slash: true","route_id": "requestratelimiter_route","filters": ["[[StripPrefix parts = 1], order = 1]", "[com.gm.demo.gateway.filter.CustomRequestRateLimiterGatewayFilterFactory$$Lambda$1181/0x0000000801432860@711c23ed, order = 2]"],"uri": "lb://nacos-discovery-http-provider","order": 0
}, {"predicate": "Paths: [/day/**], match trailing slash: true","route_id": "day_requestratelimiter_route","filters": ["[[StripPrefix parts = 1], order = 1]", "[com.gm.demo.gateway.filter.DayRequestRateLimitGatewayFilterFactory$$Lambda$1182/0x0000000801432ac0@58145bb, order = 2]"],"uri": "lb://nacos-discovery-http-provider","order": 0
}, {"predicate": "Paths: [/delay/**], match trailing slash: true","metadata": {"connect-timeout": 200,"response-timeout": 200},"route_id": "per_route_timeouts","filters": ["[[StripPrefix parts = 1], order = 1]"],"uri": "https://example.org:443","order": 0
}]

2.3.6 获取指定路由信息

通过/gateway/routes/{id}获取指定路由的信息:

{"predicate": "Paths: [/provider/**], match trailing slash: true","route_id": "54c58c6b-de67-4381-a9de-5f39690a35c3","filters": ["[[StripPrefix parts = 1], order = 0]"],"uri": "http://localhost:4000","order": 0
}

下表描述了响应结构:

名称类型描述
route_idString路由标识
predicateObject路由断言
filtersArray应用于路由的GatewayFilterFactory集合
orderNumber路由顺序

2.3.7 创建路由

要创建路由需指定路由字段的 JSON 正文发出POST请求,/gateway/routes/{id_route_to_create}

其中 JSON 正文内容请见2.3.6获取指定路由信息

2.3.8 删除路由

通过/gateway/routes/{id_route_to_delete}DELETE请求删除路由。

三、多网关实例路由共享

Spring Cloud Gateway 提供了两种RouteDefinitionRepository实现。

第一个是 InMemoryRouteDefinitionRepository仅存在于一个网关实例的内存中的。这种类型的存储库不适合跨多个网关实例路由共享。

为了在 Spring Cloud Gateway 实例集群之间共享路由,需要启动RedisRouteDefinitionRepository存储库。

3.1 引入redis-reactive依赖

gateway/pom.xml 新增以下内容:

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis-reactive</artifactId>
</dependency>

3.2 启用存储库

gateway/src/main/resources/bootstrap.yml中新增以下内容启用Redis存储库:

spring.cloud.gateway.redis-route-definition-repository.enabled: true

通过配置文件配置的静态路由和 redis 动态路由同时存在时取并集。

需与监控端点配置使用。在下文具体描述。

3.3 测试步骤及效果

3.3.1 移除静态路由

删除配置文件中的静态路由配置

此步骤可省略

3.3.2 添加路由

通过监控端点添加路由,通过Postman进行:
在这里插入图片描述
示例JSON请求体:

{"id": "baidu_route","predicates": [{"name": "Path","args": {"_genkey_0": "/baidu/**"}}],"filters": [{"name": "StripPrefix","args": {"path": 1}}],"uri": "https://www.baidu.com","order": 0
}

JSON请求体格式最好是参照PredicateFactoryConfig属性和GatewayFilterFactoryConfig属性进行配置

请求成功后,新添加的路由并没有马上生效,需要等待路由刷新后才正式生效

3.3.3 查看redis

发现新添加的路由在存储在Redis中,key的命名规则是routedefinition_*
在这里插入图片描述

3.3.4 重启网关服务

重新进行访问,原持久化至Redis被再次生效:

在这里插入图片描述

http://www.lbrq.cn/news/739189.html

相关文章:

  • wordpress源码系统下载地址/南京百度网站快速优化
  • 新手卖家做来赞达网站如何/引流推广平台
  • flash做的小动画视频网站/怎么做手工
  • php不用框架怎么做网站/制作网站要多少费用
  • 东莞网站建设有什么网络公司/厦门百度推广排名优化
  • 公司网站制作内容/制作一个网站的费用是多少
  • 深圳国税局网站怎么做票种核定/大庆建站公司
  • 企业官网门户网站管理系统/保定百度seo公司
  • 设计类专业介绍/seo推广优化培训
  • 蒙阴建设局网站/网络推广引流有哪些渠道
  • 上海门户网站制/合肥seo整站优化
  • 不懂英文怎么做英文的seo网站/鄞州seo服务
  • 电脑网页打不开怎么解决/关键词快速优化排名软件
  • dw做旅游网站毕业设计模板下载/网站快速建站
  • 怎么看网站开发语言/免费python在线网站
  • 加强县政府网站建设的几点建议/软件排名优化
  • 淘宝店招免费做的网站有/网站做优化好还是推广好
  • 网页的响应式布局/免费关键词优化工具
  • 网站宽屏背景/seo网络营销外包
  • 制作图片的软件叫什么/徐州seo招聘
  • 广州外贸网站设计/传媒网站
  • 央企 网站建设 公司/推广网络营销外包公司
  • 有什么做服装的网站/暴风seo论坛
  • wordpress windows伪静态/杭州seo靠谱
  • 外国优秀网站设计/二次感染即将大爆发
  • 欧美做爰视频网站/海南百度推广总代理
  • 网站及微信建设是否涉及知识产权/品牌推广方案
  • 网站推广常用方法/广告策划公司
  • 网站建设需要做的事情/谷歌广告代理公司
  • 网站营销公司哪家好/企业如何进行搜索引擎优化
  • Flink双流join
  • CAT1+mqtt
  • 计算机视觉 图片处理 在骨架化过程中,每次迭代都会从图像的边缘移除一层像素,直到只剩下单像素宽度的骨架
  • Qt——文件操作
  • LCC-LCC谐振式无线充电系统控制技术研究的复现
  • MySQL练习题50题(附带详细教程)