自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 收藏
  • 关注

原创 源码面前没有秘密,推荐 9 个带你阅读源码的开源项目

我最初是在 GitHub 找到了别人上传的旧版(0.11)注释源码,一通搜索下发现了原作者赵炯老师的网站。第一版发布于 2003 年,最新更新于 2021 年,维护了 18 年。这个阅读 Linux 源码的项目,虽然没有上传到 GitHub 但是内容、注释的源码、配套工具全部开源。C++

2024-09-19 07:31:00 1002

原创 数据结构(12)-- 前缀树(字典树、Trie)

Trie的实现。

2024-09-19 05:53:32 783

原创 微服务架构开发实战日志与监控:微服务日志管理将面临的挑战

另外,由于应用Ⅰ和应用3的两个实例在两台不同的机器上运行,因此很难实现服务级别的日志聚合,最终导致了日志文件的碎片化。对于传统的单个架构而言,日志管理本身并不存在难点,毕竟所有的日志文件都存储在应用所部署的主机上,获取日志文件或搜索日志内容都比较简单。但分布式系统则不同,特别是微服务架构所带来的部署应用方式的重大转变,都使得微服务的日志管理面临很多新的挑战,主要有以下几种。日志来自正在运行的进程的事件流。微服务架构所带来的直观结果,就是微服务实例数量的增长,伴随而来的就是日志文件的递增。

2024-09-19 04:11:51 886

原创 如何利用一个支持元素删除的布隆过滤器,来解决缓存穿透问题?

最简单的做法就是加一个计数器,就是说位数组的每个位如果不存在就是0,存在几个元素就存具体的数字,而不仅仅只是存1,那么这就有一个问题,本来存1就是一位就可以满足了,但是如果要存具体的数字比如说2,那就需要2位了,所以带有计数器的布隆过滤器会占用更大的空间。第二部分的输出的误判率即fpp总是在3%左右,而且随着for循环的次数越大,越接近3%。System.out.println(“-----------------------分割线---------------------------------”);

2024-09-19 02:36:32 948

原创 图解 Kafka 架构与工作原理

1、数据在写入的时候可以指定需要写入的分区,如果有指定,则写入对应的分区2、如果没有指定分区,但是设置了数据的key,则会根据key的值hash出一个分区3、如果既没指定分区,又没有设置key,则会轮询选出一个分区。

2024-09-19 00:13:59 874

原创 什么是Java内存模型?为什么会引发线程安全问题?

如果想开发一款能运行Java程序的虚拟机,就必须遵循这两个规范(当然需要遵循的规范远不止这两种),只有这样,java程序才能在你的虚拟机上开开心心的run,我们最最最最常见的hotspot vm就遵循了这些规范;cpu会事先将需要用到的数据从主内存中复制一份到高速缓存,cpu在执行计算操作时,依次从L1、L2、L3级缓存中查找,如果有需要的数据,直接操作,计算结束后再flush到主内存中;cpu执行 +1 操作耗时很短,假设只需要1ms,而从内存中读取 i ,再写回内存,耗时很长,假设是10ms。

2024-09-18 19:18:24 712

原创 一个项目搞定支付宝,微信支付!

扫码支付电脑支付WAP支付APP支付服务端。

2024-09-18 17:28:31 436

原创 springcloud入门实战:Feign+Ribbon实现客户端负载均衡

这个超时也许是目标Provider宕机所导致的,也许是网络延迟所导致的。如果第一次RPC请求时LoadBalancerStats成员为null,就会使用线性轮询策略来获取符合要求的实例,后续的RPC在选择的时候,才能选择连接数最少的服务。简单来说,AvailabilityFilteringRule将对候选的Provider进行可用性过滤,会先过滤掉因多次访问故障而处于熔断器跳闸状态的Provider服务,还会过滤掉并发的连接数超过阈值的Provider服务,然后对剩余的服务列表进行线性轮询。

2024-09-18 15:42:33 998

原创 Java异常类型及异常处理方式

• 异常的类型 (在哪种情况下出现,结合API定位) • 异常原因 • 异常位置。

2024-09-18 05:31:58 336

原创 Java 提效神器 Stream 的冷门技巧

supplier 这个参数就是提供一个容器,可以看到最后 collect 操作的结果是一个 R 类型变量,而 supplier 接口最后需要返回的也是一个 R 类型的变量,所以说这里返回的是收集元素的容器。这个功能也是遍历,但是他是有返回值的,而上面的 Foreach 是没有返回值的,仅仅是单纯的消费。accumulator 参数,看到这个函数的定义是传入一个 R 容器,后面则是 T 类型的元素,需要将这个 T 放到 R 容器中,即这一步是用来将元素添加到容器中的操作。

2024-09-18 03:30:50 410

原创 excel文件上传保存到数据库前后端

System.out.println(savePath + “目录不存在,需要创建”);//给你确定一下确实进来了。System.out.println(“已存入数据库中”);// final:最终形态,不能被子类重写。msg = “文件上传成功!msg = “文件上传失败!//类不能被其它类继承。

2024-09-18 01:29:45 470

原创 Android 曝光采集,判断RecyclerView中某子view是否可见 view曝光量的统计 view是否显示在屏幕中 view展示次数统计

比如下图的0就是最上面的可见条目,3就是最下面的可见条目。我们次数的曝光view就是0,1,2,3 这个时候这四个条目显示在屏幕中。首先再次明确下,我们要统计的是用户停止滑动时,显示在屏幕的上控件。上面第三步拿到屏幕内可见条目的起始位置以后,我们就用一个for循环,获取当前屏幕内可见的所有子view。1,这这里起始位置的view显示区域如果不超过50%,就不算这个view可见,进而也就不统计曝光。四,获取到起始位置以后,我们就根据位置获取到view及view中的数据。三,获取屏幕内可见条目的起始位置。

2024-09-17 23:19:58 711

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除