步尔斯特
码龄1年
  • 447,679
    被访问
  • 182
    原创
  • 825
    排名
  • 73,788
    粉丝
关注
提问 私信

个人简介:仙人之下我无敌,仙人之上一换一。

IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:辽宁省
  • 加入CSDN时间: 2022-01-05
博客简介:

救世主

博客描述:
曾经那个上山的人,如今也成为了人们口中的神。
查看详细资料
  • 8
    领奖
    总分 5,319 当月 288
个人成就
  • 云计算领域优质创作者
  • 获得4,163次点赞
  • 内容获得4,704次评论
  • 获得7,459次收藏
创作历程
  • 182篇
    2022年
成就勋章
  • 入选《本周创作者榜》第71名
TA的专栏
  • Java系核心技术
    付费
    41篇
  • 中间件核心技术
    付费
    20篇
  • 微服务核心技术
    付费
    78篇
  • 云原生核心技术
    付费
    23篇
  • 通用业务实现集
    付费
    15篇
  • 一起去大厂系列
TA的推广
兴趣领域 设置
  • Java
    spring
  • 云原生
    云原生
  • 云平台
    云计算
TA的社区
  • 阿里云计算开源社区
    93 成员 184 内容
    创建者
  • 人生苦短,我用Python!
    24620 成员 1297 内容
    管理者
  • 哈士奇(全栈自研社)
    18254 成员 1937 内容
    管理者
  • 最近
  • 文章
  • 收藏
  • 关注/订阅/互动
搜TA的内容
搜索 取消

Ribbon的随机算法,为什么能难倒这么多的微服务专家?

在BaseLoadBalancer#setServersList中会设置服务的存活状态,同时也会同步可达服务列表和所有服务列表,并且此任务是30s执行一次,同步Nacos的服务缓存数据。问了很多人,上到各大厂相关领域的专家,下到一些所谓的高端人员,再到国内外网站,没有人注意到这个问题。看完类和方法的介绍,其实就能知道整体的设计了,为了提高我们的认知,我们来看看设计的细节。前人栽树,后人乘凉。对于整体的设计思想,我们不难理解,根据服务名获取所有的服务列表,根据负载均衡器规则再选出一个服务。
原创
发布博客 1 小时前 ·
46 阅读 ·
1 点赞 ·
0 评论

Supplier的作用及其使用

Supplier创建对象是Spring实例化的一种,Spring创建对象时会先判断BeanDefinition中是否设置了Supplier,如果设置了则调用Supplier的get()得到对象。new是构造器引用,lamda表达式一种,不是说Supplier是用来创建对象的,这接口仅仅是一种规范,lamda表达式在传递时根本不会被执行,而是在调用方执行。Supplier用来表示结果的提供者,但并不要求每次调用供应商时都返回一个新的或不同的结果,这是一个函数式接口,其函数方法是get()。...
原创
发布博客 前天 20:26 ·
58 阅读 ·
3 点赞 ·
2 评论

Ribbon源码解析

Ribbon会为被@LoadBalanced注解标注的RestTemplate实例添加一个拦截器LoadBalancerInterceptor,在restTemplate调用时拦截器会拦截请求,根据负载均衡策略,通过服务名选择一个server,将url中的服务名替换为对应的ip:host再调用,达到负载均衡。可以看到是RibbonLoadBalancerClient,通过查看构造方法的调用,发现是在RibbonAutoConfiguration中创建的,看到ribbon,看来是跟ribbon相关的了。...
原创
发布博客 2022.08.13 ·
105 阅读 ·
5 点赞 ·
3 评论

RestTemplate源码解析

一句话概括RestTemplate,RestTemplate封装了原生的HttpURLConnection,采用Restful的理念,更优雅地来完成对HTTP服务的调用。
原创
发布博客 2022.08.11 ·
116 阅读 ·
3 点赞 ·
3 评论

Socket作用及其使用

Socket套接字是通信的基石,是支持TCP/IP协议的网络通信的基本操作单元。它是网络通信过程中端点的抽象表示,包含进行网络通信必须的五种信息:连接使用的协议,本地主机的IP地址,本地进程的协议端口,远地主机的IP地址,远地进程的协议端口。Socket本质是编程接口(API),对TCP/IP的封装,TCP/IP也要提供可供程序员做网络开发所用的接口,这就是Socket编程接口;HTTP是轿车,提供了封装或者显示数据的具体形式;Socket是发动机,提供了网络通信的能力。...
原创
发布博客 2022.08.11 ·
128 阅读 ·
3 点赞 ·
1 评论

ThreadLocalRandom的作用及其使用

这里设计为了延迟初始化,另外变量 instance 是个 ThreadLocalRandom 的一个实例,该变量是 static 的,当多线程通过 ThreadLocalRandom 的 current 方法获取 ThreadLocalRandom 的实例时候其实获取的是同一个,但是由于具体的种子是存放到线程里面的,如果每个线程维护自己的一个种子变量,每个线程生成随机数时候根据自己老的种子计算新的种子,并使用新种子更新老的种子,然后根据新种子计算随机数,就不会存在竞争问题,这会大大提高并发性能。...
原创
发布博客 2022.08.11 ·
43 阅读 ·
2 点赞 ·
0 评论

OkHttp的作用及其使用

OkHttp 是一套处理 HTTP 网络请求的依赖库,由 Square 公司设计研发并开源,目前可以在 Java 和 Kotlin 中使用。依赖。
原创
发布博客 2022.08.11 ·
23 阅读 ·
0 点赞 ·
0 评论

httpclient作用及其使用

前几篇文章我们讲述了URLConnection,HttpClient相比传统JDK自带的URLConnection,增加了易用性和灵活性,它不仅使客户端发送Http请求变得容易,而且也方便开发人员测试接口(基于Http协议的),提高了开发的效率,也方便提高代码的健壮性。因此熟练掌握HttpClient是很重要的必修内容,掌握HttpClient后,相信对于Http协议的了解会更加深入。...
原创
发布博客 2022.08.11 ·
46 阅读 ·
0 点赞 ·
0 评论

HttpURLConnection作用及其使用

HTTPURLConnection是URLConnection的抽象子类。它包含的方法可以获得和设置请求方法,确定是否重定向,获得响应码和消息,确定是否使用了代理服务器。常用API接口。
原创
发布博客 2022.08.11 ·
23 阅读 ·
0 点赞 ·
0 评论

URLConnection的作用及其使用

URLConnection是一个抽象类,表示指向URL指定资源的活动连接。URLConnection可以检查服务器发送的首部,并相应地做出响应。它可以设置客户端请求中使用的首部字段。最后URLConnection可以用POST、PUT和其他HTTP请求方法向服务器发回数据;URLConnection类是Java的协议处理器机制的一部分;...
原创
发布博客 2022.08.11 ·
63 阅读 ·
0 点赞 ·
1 评论

RestTemplate作用及其使用

在返回的 ResponseEntity 中,可以获取响应头中的信息,其中 getStatusCode 方法用来获取响应状态码, getBody 方法用来获取响应数据, getHeaders 方法用来获取响应头,在浏览器中访问该接口。去表示,第二个参数是接口返回的数据类型,最后是一个可变长度的参数,用来给占位符填值。getForObject 和 getForEntity 的差异主要体现在返回值上, getForObject 的返回值就是服务提供者返回的数据,使用 getForObject 无法获取到响应头。.
原创
发布博客 2022.08.10 ·
108 阅读 ·
4 点赞 ·
2 评论

Java合并word文档的两种方式

Java合并word文档的两种方式。
原创
发布博客 2022.08.10 ·
42 阅读 ·
2 点赞 ·
1 评论

@RequestParam的作用及使用

RequestParam可以加在方法参数前}不加@RequestParam前端的参数名需要和后端控制器的变量名保持一致才能生效不加@RequestParam参数为非必传,加@RequestParam写法参数为必传。但@RequestParam可以通过@RequestParam(required = false)设置为非必传。@RequestParam可以通过@RequestParam(“param”)或者@RequestParam(value = “param”)指定传入的参数名。...
原创
发布博客 2022.08.10 ·
83 阅读 ·
2 点赞 ·
0 评论

【报表实战篇】格间计算性能提升方案

一般情况下,如果报表中存在很多格间计算(即单元格之间的关联计算),那么通常会影响报表性能。这是因为:1、格间计算很难分步骤编写,导致运算过程很难优化。2、格间计算可能需要多次遍历单元格集才能完成运算。3、格间计算往往要利用较多隐藏格作为中间变量。而隐藏格除格值外,还记录了很多与显示相关的属性值,比如:字体、颜色、显示方式等。即便设置了单元格隐藏,但这些属性还在,依然会占用内存,影响计算速度。不过在润乾报表的集算脚本支持下,这个问题能够得到很好的解决。...
原创
发布博客 2022.08.10 ·
1123 阅读 ·
48 点赞 ·
42 评论

Nacos是如何实现心跳机制和服务续约以及超时剔除服务机制的?

上一篇文章,我们全面解析了Nacos是如何实现服务注册的,那么这篇文章,就来看看Nacos是如何实现心跳机制和健康检查机制的。
原创
发布博客 2022.08.07 ·
121 阅读 ·
6 点赞 ·
2 评论

【七夕快乐篇】Nacos是如何实现服务注册功能的?

那么接下的几天里,我们就来逐步分析一下Nacos的源码以及Nacos的核心功能与机制,并着手写一个注册中心,来帮助大家更好的了解分布式中间件。
原创
发布博客 2022.08.04 ·
2152 阅读 ·
73 点赞 ·
67 评论

Spring源码之finishRefresh()

最后,我们会来到WebServerManager#start,在这里发布了Nacos服务注册的事件。我们重点跟进这个方法refreshContext(context);还记得我们的启动类么?
原创
发布博客 2022.08.04 ·
126 阅读 ·
7 点赞 ·
4 评论

注解@EnableAutoConfiguration的作用以及如何使用

@EnableAutoConfiguration
原创
发布博客 2022.08.04 ·
131 阅读 ·
4 点赞 ·
1 评论

Java监听器的作用以及如何使用

Java监听器
原创
发布博客 2022.08.04 ·
112 阅读 ·
2 点赞 ·
0 评论

@Async注解的作用以及如何实现异步监听机制

使用@Async标注在方法上,可以使该方法异步的调用执行。而所有异步方法的实际执行是交给TaskExecutor的。在需要异步执行的类上标注@Async,比如,我们现在有一个需要监听的事件。如下方式会使@Async失效。......
原创
发布博客 2022.08.04 ·
40 阅读 ·
5 点赞 ·
1 评论
加载更多