springcloud
沐雨金鳞
大行不顾细谨
展开
-
RPC原理
服务提供者在容器启动的时候,将自己所有的服务信息注册到注册中心,然后不断监听是否有服务调用信息,当有服务调用到来时,利用netty的编解码器进行数据解析后,对请求信息(包含了反射使用的信息)通过反射调用本地方法进行处理,处理后返回响应。 服务消费者不断监听服务注册中心的服务信息,将所有被注解标注的接口赋值为代理类,该代理类将接口信息和请求信息封装成Request对象,从注册中心拿到可以执行服务的服务地址端口等信息,通过netty连接到服务提供者,将Request信息发送至服务提供者端,接受...原创 2020-12-22 11:11:31 · 180 阅读 · 2 评论 -
微服务网关简述
1、什么是微服务网关微服务网关是整个微服务API请求的入口,可以实现:日志拦截 权限控制 解决跨域问题 限流 熔断 负载均衡 黑名单与白名单拦截 授权 ......2、过滤器与网关的区别过滤器用于拦截单个服务 网关拦截整个的微服务3、Zuul与Gateway有那些区别Zuul 网关属于 netfix 公司开源的产品属于第一代微服务网关 Gateway 属于SpringCloud自研发的第二代微服务网关 相比来说SpringCloud Gat...原创 2020-12-11 15:49:02 · 2339 阅读 · 0 评论 -
计算机科学领域的任何问题的解决方法
“Any problem in computer science can be solved by another layer of indirection.”“计算机科学领域的任何问题都可以通过增加一个间接的中间层来解决”原创 2020-12-09 09:29:48 · 602 阅读 · 0 评论 -
六、Alibaba sentinel之限流原理分析
1、找到该文件,打开2、代码如下:有一个TimeTicker线程在做统计,每1秒钟做一次。有N个RunTask线程在模拟请求,被访问的business code被资源key保护着,根据规则,每秒只允许20个请求通过。package com.sentinel.sentinel.test;import com.alibaba.csp.sentinel.Entry;import com.alibaba.csp.sentinel.SphU;import com.alibaba.cs..原创 2020-11-22 14:13:00 · 1003 阅读 · 1 评论 -
五、Alibaba sentinel项目结构
sentinel-core 核心模块,限流、降级、系统保护等都在这里实现 sentinel-dashboard 控制台模块,可以对连接上的sentinel客户端实现可视化的管理 sentinel-transport 传输模块,提供了基本的监控服务端和客户端的API接口,以及一些基于不同库的实现 sentinel-extension 扩展模块,主要对DataSource进行了部分扩展实现 sentinel-adapter 适配器模块,主要实现了对一些常见框架的适配 sentinel-demo 样例模转载 2020-11-22 13:18:29 · 322 阅读 · 0 评论 -
三、Alibaba sentinel dashboard控制台下载安装
1、去https://github.com/alibaba/Sentinel/releases下载版本的jar包2、启动jar包java -Dserver.port=8080 \-Dcsp.sentinel.dashboard.server=localhost:8080 \-jar target/sentinel-dashboard.jar3、打开网址:http://localhost:8080/#/login,默认账号密码都是:sentinel...原创 2020-11-22 13:05:31 · 869 阅读 · 0 评论 -
二、Alibaba sentinel资源和规则
资源资源是 Sentinel 的关键概念。它可以是 Java 应用程序中的任何内容,例如,由应用程序提供的服务,或由应用程序调用的其它应用提供的服务,甚至可以是一段代码。 只要通过 Sentinel API 定义的代码,就是资源,能够被 Sentinel 保护起来。 大部分情况下,可以使用方法签名,URL,甚至服务名称作为资源名来标示资源。规则围绕资源的实时状态设定的规则,可以包括流量控制规则、熔断降级规则以及系统保护规则。 所有规则可以动态实时调整。...转载 2020-11-22 13:03:05 · 604 阅读 · 0 评论 -
一、Alibaba sentinel简介
随着微服务的流行,服务和服务之间的稳定性变得越来越重要。Sentinel 以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。Sentinel 具有以下特征:丰富的应用场景:Sentinel 承接了阿里巴巴近 10 年的双十一大促流量的核心场景,例如秒杀(即突发流量控制在系统容量可以承受的范围)、消息削峰填谷、集群流量控制、实时熔断下游不可用应用等。 完备的实时监控:Sentinel 同时提供实时的监控功能。您可以在控制台中看到接入应用的单台机器秒级数据,甚至 500 台转载 2020-11-22 12:57:43 · 1700 阅读 · 0 评论 -
Gateway新一代网关
1、Spring Cloud Gateway 使用的Webflux中的reactor-netty响应式编程组件,底层使用了Netty通讯框架2、能干嘛?反向代理 鉴权 流量控制 熔断 日志监控3、三大核心概念1、pom文件 <!--新增gateway--> <dependency> <groupId>org.springframework.cloud</groupId>原创 2020-07-22 22:24:00 · 359 阅读 · 0 评论 -
Hystrix服务熔断
1、service层 //服务熔断 @HystrixCommand(fallbackMethod = "paymentCircuitBreaker_fallback",commandProperties = { @HystrixProperty(name = "circuitBreaker.enabled",value = "true"), //是否开启断路器 @HystrixProperty(name = "circuitBreaker原创 2020-07-22 21:13:32 · 520 阅读 · 0 评论 -
Hystrix断路器(方法固定fallback、灵活分配方法fallback、Feign+Hystrix定制fallback)
服务降级:1、pom <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-hystrix</artifactId> </dependency>2、ymlserver: port: 800...原创 2020-07-22 21:00:34 · 1426 阅读 · 0 评论 -
OpenFeign服务接口调用
我们写过之前采用RestTempalte类进行远程服务调用,我们说它比直接HTTP方法的调用更加优美,这次我们推荐一个更方面的服务调用方法:FeignFeign是一个声明式的web服务客户端,让编写web服务客户端变得非常容易,只需创建一个接口并在接口上添加注解即可。既然是服务接口调用,按下面的东西必然是在服务调用方写的:1、POM <dependency> <groupId>org.springframework.cloud&原创 2020-07-22 11:46:50 · 1610 阅读 · 1 评论 -
Ribbon负载均衡服务调用(自带的和自定义的)
Ribbon其实就是一个软负载均衡的客户端组件,它可以和其他所需请求的客户端结合使用,如eureka、zookeeper、Consul等。我们要明确,服务消费端在使用服务提供方服务时,服务提供方如果是集群的方式,我们要使用某种负载均衡算法进行服务提供方的调度,所以以下内容均在服务消费方:使用自带的负载均衡算法1、配置类MySelfRule,里面可以定义自己想要实现的负载均衡方式@Configurationpublic class MySelfRule { @Bean p原创 2020-07-22 11:23:34 · 463 阅读 · 0 评论 -
Zookeeper(崩)和Consul替代Eureka
Eureka停止更新 zookeeper是一个分布式协调工具,可以实现注册中心功能 关闭Linux服务器防火墙后启动zookeeper服务器 zookeeper服务器取代Eureka服务器,zk作为服务注册中心1、进入Zookeeper的bin目录,启动Zookeeper...原创 2020-07-22 10:59:54 · 394 阅读 · 0 评论 -
服务发现Discovery
对于注册进eureka里面的微服务,可以通过服务发现来获得该服务的信息1、在能够实现服务发现的服务的主启动类上添加如下注解:@EnableDiscoveryClient2、在服务方增加如下代码进行测试:@RestController@Slf4jpublic class PaymentController { @Resource private DiscoveryClient discoveryClient; @GetMapping(value = "/pa原创 2020-07-22 10:26:20 · 759 阅读 · 2 评论 -
RestTemplate更优雅调用RESTful服务的方式
1、服务提供者将服务注册到Eureka上,服务名为:CLOUD-PAYMENT-SERVICE2、服务提供者CLOUD-PAYMENT-SERVICE提供如下方法:@RestController@Slf4jpublic class PaymentController { @Autowired private PaymentServiceImpl paymentService; @Value("${server.port}") private Str.原创 2020-07-22 10:11:52 · 775 阅读 · 0 评论 -
搭建Eureka注册中心集群
1、搭建Eureka注册中心集群7001和7002,实现负载均衡+故障容错关键在于互相注册,互相发现server: port: 7001eureka: instance: hostname: eureka7001.com client: register-with-eureka: false fetch-registry: false service-url: defaultZone: http://eureka7002.com:700.原创 2020-07-22 09:33:44 · 173 阅读 · 0 评论