Spring Cloud
文章平均质量分 72
茅坤宝骏氹
语言:Java、C/C++、C#、Python、Linux Shell。
框架:Spring、Spring MVC、Spring Boot、Spring Cloud、Hibernate、Mybatis、Freemarker、Velocity。
前端:HTML5、CSS3、JavaScript、Bootstrap、JQuery、Vue、React。
数据库:oracle、mysql、MongoDB、HBase。
缓存:Memcache、Redis。
消息队列:kafka。
大数据:Hadoop、Hive、Sqoop、Flume、Spark、Strom、OpenTSDB、Druid。
展开
-
SpringCloud Consul自定义服务注册
SpringCloud自定义consul服务注册器,获取特定的本地地址进行注册,注销的时候检查并注销其他无效实例package com.mk.springcloud.config;import com.ecwid.consul.v1.ConsulClient;import com.ecwid.consul.v1.agent.model.NewService;import com.ecwid.consul.v1.health.HealthServicesRequest;import com.e原创 2021-05-22 21:53:04 · 598 阅读 · 0 评论 -
SpringCloud Ribbon(六)之服务实例过滤器ServerListFilter
一、服务实例过滤器ServerListFilter服务实例过滤器(ServerListFilter)为负载均衡器(Loadbalancer)提供从服务实例列表(ServerList)获取的服务实例过滤出符合要求的服务实例。负载均衡器(Loadbalancer)通过服务实例列表(ServerList)从注册中心(register)或者配置文件(yaml或properties)上读取全部服务实例(server),然后以服务实例过滤器(ServerListFilter)的过滤方式进行筛选留下满足条件的服务原创 2021-02-15 18:10:20 · 1052 阅读 · 0 评论 -
SpringCloud Ribbon(五)之服务实例列表ServerList
一、服务实例列表ServerList服务实例列表(ServerList)为负载均衡器(Loadbalancer)提供服务的可用实例列表。负载均衡器(Loadbalancer)通过服务实例列表(ServerList)从注册中心(register)或者配置文件(yaml或properties)上读取全部服务实例(server),然后以服务实例过滤器(ServerListFilter)的过滤方式进行筛选留下满足条件的服务实例,进而借助负载均衡策略(IRule)选择出一个合适的服务实例。二、Ser.原创 2021-02-15 17:52:10 · 1981 阅读 · 0 评论 -
SpringCloud Ribbon(四)之全局配置与服务配置
一、Ribbon全局配置public class GlobalRibbonConfig { //负载均衡策略 @Bean public IRule rule() { return new MicroServiceLoadBalanceRule(); } //负载均衡器 @Bean public <E extends Server> ILoadBalancer loadBalancer(IClientConfig c原创 2021-02-14 13:42:55 · 635 阅读 · 0 评论 -
SpringCloud Ribbon(三)之IPing机制
一、IPing机制IPing是一个主动探测服务节点存活的机制,通过判断服务节点的当前状态,设置节点的可用状态。只有当节点为可用时候才会作为负载均衡器的选取节点。IPing有以下几种模式:DummyPing:默认返回true,即认为所有节点都可用,这也是单独使用Ribbon时的默认模式 NIWSDiscoveryPing:借助Eureka服务发现机制获取节点状态。节点状态是UP,则认为是可用状态 PingUrl:主动向服务节点发起一次http调用,对方有响应则认为节点是可用状态 NoOpPi原创 2021-02-14 12:56:40 · 1581 阅读 · 2 评论 -
SpringCloud Ribbon(一)之自定义负载均衡器ILoadBalancer
一、Ribbon负载均衡一个服务对应一个LoadBalancer,一个LoadBalancer只有一个Rule,LoadBalancer记录服务的注册地址,提供更新服务的注册地址,Rule提供从服务的注册地址中找出一个地址的规则。二、 自定义负载均衡本文自定义负载均衡规则提供根据指定URI优先转发到特定的机器的功能。三、实现代码(1)负载均衡实现类public class MicroServiceLoadBalancer<T extends Server> ..原创 2021-02-13 13:17:16 · 874 阅读 · 2 评论 -
SpringCloud Ribbon(二)之自定义负载均衡策略IRule
一、Ribbon负载均衡一个服务对应一个LoadBalancer,一个LoadBalancer只有一个Rule,LoadBalancer记录服务的注册地址,Rule提供从服务的注册地址中找出一个地址的规则。二、 自定义负载均衡规则本文自定义负载均衡规则提供根据指定URI优先转发到特定的机器的功能。三、实现代码(1)负载均衡规则实现类public class MicroServiceLoadBalanceRule extends AbstractLoadBalancerR..原创 2021-02-13 12:59:12 · 1297 阅读 · 0 评论 -
SpringCloud Zuul(八)之ERROR Filter
一、ERROR Filter错误过滤器用来处理zuul异常,一般使作为打印异常堆栈、跳转异常页面、转换异常信息格式返回等操作。Zuul已定义的错误过滤器SendErrorFilter,如果RequestContext.getThrowable()不为null,则转发到/error(默认情况下)。您可以通过设置error.path属性来更改默认转发路径(/error)。二、自定义错误过滤器本文自定义错误过滤器用来将json格式请求的异常信息转换成json格式返回。三、实现代码..原创 2021-02-13 12:22:09 · 1320 阅读 · 1 评论 -
SpringCloud Zuul(七)之POST Filter
一、POST Filter后置过滤器一般使用来转换响应数据的个数,截取响应数据快照等等操作。Zuul已定义的后置过滤器SendResponseFilter,将代理请求的响应写入当前响应。二、截取响应的文本信息上报kafka本文过滤器用来截取响应体的快照文本发送到kafka存储。三、实现代码@Component@Slf4jpublic class PostFilter extends ZuulFilter { //按类型对过滤器进行分类。Zuul中的标准类型..原创 2021-02-13 11:31:49 · 954 阅读 · 0 评论 -
SpringCloud Zuul(六)之PRE Filter
一、pre filter二、原创 2021-02-12 23:38:00 · 1665 阅读 · 0 评论 -
SpringCloud Zuul(五)之编程指导
一、Zuul ServletZuul被实现为Servlet。对于一般情况,Zuul已嵌入到Spring Dispatch机制中。这使Spring MVC可以控制路由。在这种情况下,Zuul缓冲请求。如果需要在不缓冲请求的情况下进行Zuul操作(例如,对于大文件上传),则Servlet也会安装在Spring Dispatcher的外部。默认情况下,该servlet的地址为/zuul。可以使用zuul.servlet-path属性更改此路径。(1)Zuul RequestContext要原创 2021-02-12 13:58:02 · 418 阅读 · 0 评论 -
SpringCloud Zuul(四)之工作原理
一、筛选器概述Zuul的中心是一系列过滤器,这些过滤器能够在HTTP请求和响应的路由期间执行一系列操作。以下是Zuul过滤器的主要特征:类型:通常定义路由流程中应用过滤器的阶段(尽管它可以是任何自定义字符串) 执行顺序:在类型中应用,定义多个过滤器的执行顺序 条件:执行过滤器所需的条件 动作:如果符合条件,将执行的动作Zuul提供了一个框架来动态读取,编译和运行这些过滤器。过滤器不直接相互通信-而是通过每个请求唯一的RequestContext共享状态。过滤器当前以Groovy编写,原创 2021-02-12 13:45:09 · 219 阅读 · 0 评论 -
SpringCloud Zuul(三)之常见用法
一、route配置(1)Zuul Http客户端Zuul使用的默认HTTP客户端现在由Apache HTTP客户端而不是不推荐使用的Ribbon支持RestClient。要使用RestClient或okhttp3.OkHttpClient设置ribbon.restclient.enabled=true或ribbon.okhttp.enabled=true。如果要自定义Apache HTTP客户端或OK HTTP客户端,请提供类型为CloseableHttpClient或的BeanOkHttpCli.原创 2021-02-12 12:21:57 · 484 阅读 · 0 评论 -
SpringCloud Zuul(二)之简单用法
一、引用Zuul要将Zuul引用在项目中,请使用组ID为org.springframework.cloud和工件ID为的启动器spring-cloud-starter-netflix-zuul。 <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netfl.原创 2021-02-12 11:21:50 · 379 阅读 · 0 评论 -
SpringCloud Zuul(一)之介绍
一、zuul官方简介(1)什么是zuulZuul是从设备和网站到Netflix流媒体应用程序后端的所有请求的前门。作为边缘服务应用程序,Zuul旨在实现动态路由,监视,弹性和安全性。它还可以根据需要将请求路由到多个Amazon Auto Scaling组。(2)为什么要用ZuulNetflix API流量的数量和多样性有时会导致生产问题迅速出现而没有警告。我们需要一个允许我们快速改变行为以对这些情况做出反应的系统。Zuul使用各种不同类型的过滤器,这使我们能够快速灵活地将功能应用于边缘服原创 2021-02-12 10:42:21 · 268 阅读 · 0 评论 -
SpringCloud Greenwich(七)集成dubbo先启动消费者(check=false),然后启动提供者无法自动发现注册
SpringCloud 2.1.3集成dubbo注册刷新问题原创 2021-02-09 00:00:02 · 701 阅读 · 1 评论 -
SpringCloud Greenwich(六)集成dubbo与openfeign的feignTargeter报错,cannot access its superinterface Targeter
SpringCloud 2.1.3集成dubbo openfeign坑原创 2021-02-08 23:59:30 · 2834 阅读 · 8 评论 -
SpringCloud Greenwich(五)之nacos、dubbo、Zuul和 gateway集成
一、框架搭建(1)项目结构micro-service服务提供者zuul-gatewayzuul网关springcloud-gatewaygateway网关class-provider duboo提供者user-providerduboo提供者duboo-consumerduboo消费者dubbo-interfaceduboo接口api(2)环境nacos 1.4.1springboot 2.1.9springcloud2.1.3dubb...原创 2021-02-08 23:58:41 · 1175 阅读 · 0 评论 -
SpringCloud Greenwich(四)注册中心之eureka、Zuul和 gateway网关配置
一、框架搭建(1)项目结构eureka-servereureka注册中心micro-service 服务提供者zuul-gateway zuul网关springcloud-gatewaygateway网关(2)环境eureka-server 2.1.3springboot 2.1.9springcloud2.1.3二、项目配置application.yamllocalhost:8180为本地eureka单点注册注册中心地址(1)eureka...原创 2021-02-06 22:36:00 · 517 阅读 · 0 评论 -
SpringCloud Greenwich(三)注册中心之zookeeper、Zuul和 gateway网关配置
一、框架搭建(1)项目结构micro-service 服务提供者zuul-gateway zuul网关springcloud-gatewaygateway网关(2)环境zookeeper3.6.2springboot 2.1.9springcloud2.1.3二、项目配置application.yaml(1)micro-servicespring: application: name: micro-service profile...原创 2021-02-06 16:16:20 · 1731 阅读 · 0 评论 -
consul的安装搭建
一、下载consulconsul官网下载地址:https://www.consul.io/downloads旧版本下载consul 1.9.3直接下载地址:consul_1.9.3_windows_amd64.zipconsul_1.9.3_linux_amd64.zip二、安装将consul_1.9.3_xxx.zip解压的xxx/consul目录(1)单机配置consul agent -dev -ui注:只允许127开头的ip的client访问..原创 2021-02-06 14:31:46 · 419 阅读 · 0 评论 -
SpringCloud Greenwich(二)注册中心之consul、Zuul和 gateway网关配置
一、框架搭建(1)项目结构micro-service 服务提供者zuul-gateway zuul网关springcloud-gatewaygateway网关(2)环境consul1.9.0springboot 2.1.9springcloud2.1.3二、项目配置application.yaml(1)micro-servicespring: application: name: micro-service profiles:...原创 2021-02-06 11:38:47 · 843 阅读 · 0 评论 -
nacos(十三)之naocs 1.4.1单机和集群部署配置
一、下载安装nacosNacos 依赖Java环境来运行。如果您是从代码开始构建并运行Nacos,还需要为此配置Maven环境,请确保是在以下版本环境中安装使用:64 bit OS,支持 Linux/Unix/Mac/Windows,推荐选用 Linux/Unix/Mac。 64 bit JDK 1.8+;下载&配置。 Maven 3.2.x+;下载&配置。二、单机部署找到$nacosPath/bin目录执行命令启动#linux./star...原创 2021-02-05 22:12:34 · 1258 阅读 · 2 评论 -
SpringCloud Greenwich(一)注册中心之nacos、Zuul和 gateway网关配置
一、框架搭建(1)项目结构micro-service 服务提供者zuul-gateway zuul网关springcloud-gatewaygateway网关(2)环境nacos 1.4.1springboot 2.1.9springcloud2.1.3二、项目配置application.yaml(1)micro-servicespring: application: name: micro-service profiles: ...原创 2021-02-05 21:36:11 · 1258 阅读 · 0 评论 -
SpringCloud Zuul(九)之路由自动刷新原理
一、现象发布新服务,然后在数据库配置了路由,使用服务路径访问404。然后重新发布新的服务,就可以继续访问得到(1)配置了路由第一次访问(2)重新发布后访问二、分析(1)查找RefreshableRouteLocator .refresh方法@Componentpublic class NacosRouteLocator extends SimpleRouteLocator implements RefreshableRouteLocator { publ.原创 2021-02-05 00:14:44 · 660 阅读 · 0 评论 -
SpringCloud Zuul(十)之配置路由prefix坑
一、场景复现配置prefix=api访问/api/micro-service/test接口404(1)zuul配置zuul: strip-prefix: true #转发路径截断匹配前缀 prefix: "api" add-proxy-headers: false set-content-length: true semaphore: max-semaphores: 600(2)去掉prefix=api就访问正常二、解决方案认真对比了zuu.原创 2021-02-04 23:59:26 · 670 阅读 · 0 评论 -
SpringCloud Gateway配置自定义路由404坑
一、场景复现微服务自定义路由,返回404页面。如图:(1)springcloud-gateway的路由设置@Configurationpublic class RouteConfig { @Bean public RouteLocator customRouteLocator(RouteLocatorBuilder builder) { return builder.routes() .route("test", r原创 2021-02-04 23:49:01 · 20517 阅读 · 2 评论 -
Dubbo(十)之配置加载流程
转载自Dubbo配置加载流程Dubbo 中的配置加载流程介绍此篇文档主要讲在应用启动阶段,Dubbo框架如何将所需要的配置采集起来(包括应用配置、注册中心配置、服务配置等),以完成服务的暴露和引用流程。根据驱动方式的不同(比如Spring或裸API编程)配置形式上肯定会有所差异,具体请参考XML配置、Annotation配置、API配置三篇文档。除了外围驱动方式上的差异,Dubbo的配置读取总体上遵循了以下几个原则:Dubbo 支持了多层级的配置,并按预定优先级自动实现配置间的覆盖,最终..转载 2021-02-02 00:39:13 · 351 阅读 · 0 评论 -
Dubbo(九)之注解配置
转载自Dubbo注解配置以注解配置的方式来配置你的 Dubbo 应用提示需要2.6.3及以上版本支持。 点此查看完整示例服务提供方Service注解暴露服务@Servicepublic class AnnotationServiceImpl implements AnnotationService { @Override public String sayHello(String name) { return "annotation: h...转载 2021-02-02 00:39:27 · 312 阅读 · 0 评论 -
Dubbo(八)之API 配置
转载自DubboAPI 配置以API 配置的方式来配置你的 Dubbo 应用API 属性与配置项一对一,各属性含义,请参见:配置参考手册,比如:ApplicationConfig.setName("xxx")对应<dubbo:application name="xxx" />1服务提供者import org.apache.dubbo.rpc.config.ApplicationConfig;import org.apache.dubbo.rpc.config.Reg...转载 2021-02-01 00:04:30 · 266 阅读 · 0 评论 -
Dubbo(七)之自动加载环境变量
转载自自动加载环境变量在 Dubbo 中自动加载环境变量从 2.7.3 版本开始,Dubbo 会自动从约定 key 中读取配置,并将配置以 Key-Value 的形式写入到URL中。支持的 key 有以下两个: dubbo.labels,指定一些列配置到 URL 中的键值对,通常通过 JVM -D 或系统环境变量指定。 增加以下配置: # JVM-Ddubbo.labels = "tag1=value1; tag2=value2"# 环境变量DUBBO_LABELS =..转载 2021-02-01 00:04:16 · 598 阅读 · 0 评论 -
Dubbo(六)之属性配置
转载自Dubbo属性配置属性配置以属性配置的方式来配置你的 Dubbo 应用如果你的应用足够简单,例如,不需要多注册中心或多协议,并且需要在spring容器中共享配置,那么,我们可以直接使用dubbo.properties作为默认配置。Dubbo 可以自动加载 classpath 根目录下的 dubbo.properties,但是你同样可以使用 JVM 参数来指定路径:-Ddubbo.properties.file=xxx.properties。映射规则可以将 xml 的 t...转载 2021-02-01 00:04:07 · 289 阅读 · 0 评论 -
Dubbo(五)之动态配置中心
转载自Dubbo动态配置中心Dubbo 2.7 中的动态配置中心配置中心(v2.7.0)在 Dubbo 中承担两个职责:外部化配置。启动配置的集中式存储 (简单理解为 dubbo.properties 的外部化存储)。 服务治理。服务治理规则的存储与通知。启用动态配置,以 Zookeeper 为例,可查看动态配置配置项详解<dubbo:config-center address="zookeeper://127.0.0.1:2181"/>或者dubbo.c...转载 2021-02-01 00:03:59 · 1236 阅读 · 0 评论 -
Dubbo(四)之xml配置方式
转载自Dubbo xml配置方式以 XML 配置的方式来配置你的 Dubbo 应用有关 XML 的详细配置项,请参见:配置参考手册。如果不想使用 Spring 配置,而希望通过 API 的方式进行调用,请参见:API配置。想知道如何使用配置,请参见:快速启动。请在此查看文档描述的完整示例provider.xml 示例<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dubbo="..转载 2021-02-01 00:03:40 · 530 阅读 · 0 评论 -
Dubbo(三)之Spring zookeeper集成
转载自Dubbo快速开始Dubbo 采用全 Spring 配置方式,透明化接入应用,对应用没有任何 API 侵入,只需用 Spring 加载 Dubbo 的配置即可,Dubbo 基于Spring 的 Schema 扩展进行加载。如果不想使用 Spring 配置,可以通过API 的方式进行调用。服务提供者完整安装步骤,请参见:示例提供者安装安装:git clone https://github.com/apache/dubbo.gitcd dubbo/dubbo-dem...转载 2021-02-01 00:03:30 · 207 阅读 · 0 评论 -
Dubbo(二)之SpringBoot nacos集成
一、外部依赖nacos安装二、样例项目(1)maven设置<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId></dependency><dependency> <groupId>org.apache.dubbo</gro..原创 2021-02-01 00:03:18 · 257 阅读 · 1 评论 -
Dubbo(一)之简介
转载自Dubbo 2.7入门一、背景本文介绍了网站应用的演进随着互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,亟需一个治理系统确保架构有条不紊的演进。单一应用架构当网站流量很小时,只需一个应用,将所有功能都部署在一起,以减少部署节点和成本。此时,用于简化增删改查工作量的数据访问框架(ORM)是关键。垂直应用架构当访问量逐渐增大,单一应用增加机器带来的加速度越来越小,提升效率的方法之一是将应用拆成互不相干的...转载 2021-02-01 00:03:02 · 154 阅读 · 0 评论 -
Nacos(十二)之Java SDK
转载自Java SDK概述部分Maven 坐标<dependency><groupId>com.alibaba.nacos</groupId><artifactId>nacos-client</artifactId><version>${version}</version></dependency>配置管理获取配置描述用于服务启动的时候从 Nacos 获取配置。p..转载 2021-02-01 00:02:05 · 724 阅读 · 2 评论 -
Nacos(十一)之NacosSync 介绍
转载自NacosSync 介绍介绍NacosSync是一个支持多种注册中心的同步组件,基于Spring boot开发框架,数据层采用Spring Data JPA,遵循了标准的JPA访问规范,支持多种数据源存储,默认使用Hibernate实现,更加方便的支持表的自动创建更新 使用了高效的事件异步驱动模型, 支持多种自定义事件,使得同步任务处理的延时控制在3s,8C16G的单机能够支持6K的同步任务 NacosSync除了单机部署,也提供了高可用的集群部署模式,NacosSync是无状态设计,..转载 2021-02-01 00:01:38 · 891 阅读 · 0 评论 -
Nacos(十)之Kubernetes Nacos
转载自Kubernetes Nacos本项目包含一个可构建的Nacos Docker Image,旨在利用StatefulSets在Kubernetes上部署Nacos快速开始Clone 项目git clone https://github.com/nacos-group/nacos-k8s.git简单例子如果你使用简单方式快速启动,请注意这是没有使用持久化卷的,可能存在数据丢失风险:cd nacos-k8schmod +x quick-startup.sh./qu..转载 2021-01-31 21:26:41 · 473 阅读 · 0 评论