自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

吴就业

吴就业,《实战Alibaba Sentinel》图书作者,现荔枝集团基础架构高级研发工程师,目前在中间件、云原生领域搬砖。

  • 博客(14)
  • 资源 (1)
  • 收藏
  • 关注

原创 Dubbo源码,详解dubbo协议数据包及解包过程

RPC协议即远程进程调用协议,自己的话理解就是,让两个进程之间的调用像同进程内调用一个函数那么简单。Dubbo框架的传输层默认使用dubbo协议,这也是...

2019-12-30 00:00:00 1327 1

原创 Netty源码,详解Http协议的数据包解码过程

Http全称为超文本传输协议,是一种无状态协议。即不会记录你上一次访问了什么。一应一答,一个请求一个响应,无需保持连接。在不保持长连接的情况下,一次ht...

2019-12-29 09:00:00 2244 1

原创 AWS SQS 消息中间件的好与坏

可见性超时如果设置得短,可能会出现消费者消费未完成,没有将消息删除的情况下,又被其它消费者拉取到,导致重复消费。是需要自己定时去拉取的。一是你不知道该由谁来删除这条消息,另一个则是,同一个消息可能会被同一个消费者消费多次,而也有可能有消费者一次都能不到这条消息。严格要求一条消息只能被消费一次的,除了在消息可见性超时上控制外,还需要在代码中控制消息的幂等性消费,而且是支持分布式集群的幂等性消费。是提供长轮询的,然后我再去看文档才发现文档写了支持长轮询,可能之前还没有,最近更新的,也可能之前我看文档没看仔细?

2019-12-28 11:34:56 1670 1

原创 Alibaba Sentinel是如何统计QPS实现限流的

我们项目中使用了Sentinel作为限流器,Sentinel可配置按最大工作线程数以及按QPS限流,而要实现这两个限流规则,就必须要统计到当前工作线程数...

2019-12-23 09:00:00 5171 2

原创 Spring事务的实现源码分析,以及事务不起作用原因分析

如果配置的PlatformTransactionManager事务管理器,使用的是一个动态数据源,那么TransactionSynchronizationManager会将这个动态数据源作为Key,因为多个数据源都是被动态数据源管理的,所以动态数据源内部怎么切换,一个事务中TransactionSynchronizationManager持有的都是第一次获取到的连接,整个事务中都会使用这个连接,因此在事务中切换数据源无效,应在事务之前完成数据源的切换。这是我的个人观察,看源码就是多吸收一些优秀的编程思想。

2019-12-22 00:01:49 487 1

原创 反向理解ThreadLocal,或许这样更容易理解

比如一个Spring项目,处理事务也是用的ThreadLocal,Dubbo的RpcContext也是用的ThreadLocal,处理一个请求通常都是在一个线程中去完成的,假设处理一个请求即用到Dubbo发起rpc调用,又用到事务注解操作数据库,那么至少就存在两个ThreadLocal 往一个线程Thread实例的threadLocals字段写数据。创建一个线程都是通过new Thread创建的,使用线程池也不例外,但不代表Thread的字段就是线程安全的,它也是一个普通的对象,也是分配在堆中。

2019-12-18 00:00:00 221 1

原创 Dubbo RPC远程调用过程源码分析(服务消费者)

上篇我们分析了服务提供者处理一个请求的全过程,当然,是跳过信息交换层和传输层的。本篇继续分析服务提供者发起一个远程RPC调用的全过程,也是跳过信息交换层...

2019-12-17 00:00:00 1123 1

原创 Dubbo RPC远程调用过程源码分析(服务提供者)

在前面分析Dubbo注册中心层源码的文章中,我们知道,服务的导出与引入由RegistryProtocol调度完成。对于服务提供者,服务是先导出再注册到注...

2019-12-16 00:00:00 2508 1

原创 Dubbo分层架构之服务注册中心层的源码分析(下)

基于Redis实现的注册中心为什么不被推荐使用,你知道原因吗?由于我在实际项目中并未使用Redis作为服务注册中心,所以一直没有关注这个话题。那么,使用...

2019-12-15 10:00:00 383 1

原创 Dubbo分层架构之服务注册中心层的源码分析(上)

服务注册与发现是Dubbo核心的一个模块,假如没有注册中心,我们要调用远程服务,就必须要预先配置,就像调用第三方http接口一样,需要知道接口的域名或者...

2019-12-14 13:28:04 446 1

原创 缓存雪崩、穿透如何解决,如何确保Redis只缓存热点数据?

缓存雪崩如何解决?缓存穿透如何解决?如何确保Redis缓存的都是热点数据?如何更新缓存数据?如何处理请求倾斜?实际业务场景下,如何选择缓存数据结构1缓存...

2019-12-12 10:00:10 238 1

原创 线上RPC远程调用频繁超时问题排查,大功臣Arthas

对外服务(下文统称服务A)处理终端一次请求的平均耗时在25ms左右,正常情况下并发量突增到服务所能承受的最高点时,最大耗时也在200ms以内,而一次请求中调用某个服务(下文统称服务B)的耗时必然会小于一次请求的处理耗时,所以我把服务A调用服务B的rpc调用超时设置为500ms,避免因调用阻塞等待导致请求堆积问题,所以本次服务崩溃并未看到文件句柄数达上限的异常,也因如此,只会有部分请求处理失败,不止于整个服务完全不可用。优化后,服务B的QPS有了显著的提升,像极了牙膏,挤挤又省几台机器。

2019-12-07 17:00:10 3142 1

原创 如何让JedisCluster支持Pipeline

hmset等批量操作命令与pipeline最大的区别是,前者是原子性命令,比如hmset,如果一次插入的field过多,会导致命令耗时增加;后者非原子性...

2019-12-02 09:00:00 1738 2

原创 Redis性能监控问题

并发数上升,到底是哪个服务处理能力到了瓶颈,还是Redis性能到了瓶颈,只有找出是哪里的性能问题,才能对症下药。所以,了解redis的一些运维知识能够帮...

2019-12-02 09:00:00 1298 1

IPv4-国家-区域-城市-运营商csv格式数据库-附使用java写的使用demo

此ip库数据为2018年的,不是最新的,所以不保证准确率。 此IP-COUNTRY-REGION-CITY-LATITUDE-LONGITUDE-ISP-DOMAIN-MOBILE.CSV库可用于根据ip查询ip的归属地,可以获取到国家、区域(省)、城市,以及运营商,11000000+数据。 附可运行的使用demo。(demo未做性能优化,很慢也很耗内存,运行请准备好几个g的内存) 此demo不会考虑性能问题,只是用于指导怎么解析ip地址库文件,实现根据ip查询ip的地理位置信息。 运行此demo,请执行DemoMain类的main方法,此demo由于不考虑性能问题,执行时间会比较久,请耐心等待(大概6分钟)。 如果发现卡住(超过10分钟都没执行完成),请调整堆内存重新执行,通过-Xmx6G -Xmx6G调大内存。

2023-10-14

2019年毕业设计-一款情侣APP 附论文、作品视频演示、代码

关键技术 1、Spring Boot是目前主流的以java为开发语言的后端框架,以“约定优于配置”为约定,简化Spring项目的配置。Spring Boot并非一种新的框架,而是为方便整合Spring、Spring MVC以及各种持久化框架所编写。Spring能经久不衰,与其IOC和AOP两大特性密不可分。 2、为解决直接使用jdbc实现数据增删改查所带来的,编码复杂且重复率大、sql注入问题。选择Mybatis框架作为数据持久化层框架,不仅易于上手,更有着由于其它持久层框架的易于扩展性,同时提供插件支持,可以实现sql查询监控以及动态替换公共字段等。 3、要保证用户的数据安全,系统需要对用户可访问的资源进行管理,用户所发表的时光、相册等只能情侣之间可访问,对其它用户不可见,系统引人Shiro框架对用户权限进行管理,系统分普通用户角色于情侣角色。 4、为提供后端接口服务机器之间共享Session,为增强系统并发访问,降低请求延时,对热点数据进行缓存,本系统引入Redis提供数据缓存层。 5、即时在线聊天选择Netty框架。

2023-10-13

2019毕业设计作品-一款支持来电拦截的通讯录APP 附论文核心部分、项目代码

集通话记录、联系人管理、来电秀、骚扰电话拦截功能于一身的通讯录APP。本应用可以根据正则匹配过滤来电,精确的拦截骚扰来电, 而过滤规则可由用户自行定义。如拦截以“0777”开头的号码的来电。当有来电时,应用会先获取用户配置的号码黑名单列表,匹配如果号码不在黑名单列表才会继续匹配过滤规则。 您可以基于此做二次开发作为你的毕业设计,例如拦截功能扩展为支持用户通过编写脚本自定义自己的拦截规则,这样可能满足用户的需求,也能带动用户学习了解一门脚本编程语言,这是件有意义的事情。 注:关于代码,由于本项目开发时间比较早,当时android才出到android 8,所以可能用现在的高android版本的手机可能无法运行。但如果用android8以下版本是可以运行的。

2023-10-12

Java堆外内存使用分析详细

这个视频指导我们java开发遇到堆内存使用正常、gc正常,但实际使用的物理内存缺非常高,特别是容器化部署很容易因内存使用超limit限制导致pod重启,怀疑堆外内存泄露?如何排查堆外内存的使用情况,这个视频详细讲解了。英文无字幕,介意忽下载哈!原来线程数大多也会占用非常大的内存,原来gc也会占用非常大的内存...

2023-10-12

ArchSummit 2023 全球架构师峰会 北京站 PPT(公开)

01-从NewSQL到全新的HTAP分布式架构演进-张潇 01-从互联网到 ToB 服务 - 私有化部署对架构师的挑战-张铎 01-金融级系统海量流量下的高可用架构实践-康杨 01-美团优选智能质量方案探索-王昭 01-中国移动智慧中台赋能企业数智化转型实践-兰建明 01-字节跳动云原生大数据发展之路-余炜强 01-在线优化技术在快手联盟上的实践和产品化-谢淼 博士 01Hudi_Presto 在 News Break 数据平台的尝试--关立胜 01OceanBase的OLAP能力提升实践--杨志丰 01京东到家核心系统微服务演进落地实践--孙岩 01拒绝孤岛-可观测数据融合分析--张城(元乙 02-斗鱼高并发架构实践-李奇 02-华为机器翻译模型训练推理加速实践-魏代猛 02-基于风险驱动的交付模式转型探索与实践-黄佳鑫 02-基于云原生Serverless和消息服务技术采集全球分布业务数据实践-马腾 02-网易严选B端业务数字化之路-郑令飞 02-小红书云原生实时数仓的建设与实践-王成 02畅捷通多租户多数据中心的架构演进--郑芸 03-陌陌云原生微服务架构落地实践-袁世超 ...

2023-10-12

用c#实现的读取rtf格式文件的工具类

一个简单的读取RTF文件的类。 实现简单的翻译如下的RTF文件的代码 {\rtf1\ansi\ansicpg936\deff0\deflang1033\deflangfe2052{\fonttbl{\f0\fnil\fcharset134 \'cb\'ce\'cc\'e5;}{\f1\fswiss\fcharset0 Arial;}} {\colortbl ;\red255\green0\blue0;\red0\green0\blue255;} \viewkind4\uc1\pard\lang2052\f0\fs18\\ \cf1\f1 fgsdgfdghfdsgsd\cf0 fgfdsfdg\par ffffffffffffff\b\f0 fffffffffff\ul\b0\f1 fffffffffff\highlight2\ulnone ffff\par ffff\highlight0\\8888\\8888 \cf1\highlight2 \cf2\highlight0 \i\f0 fff\i0\fs53 fffff\i\fs18 f\par }

2016-01-21

空空如也

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

TA关注的人

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