java后端
文章平均质量分 69
java后端
WWWDDD92
in amoy 搬砖ing...
展开
-
php的base64、chr、ord对应的java代码
php中的base64、chr、ord对应的java代码原创 2023-02-01 11:11:03 · 283 阅读 · 0 评论 -
服务代理调试大法
服务代理调试大法背景本地无法连接到测试环境的内网数据库(不同网段)运维提供了登陆跳板机供同学们登陆到内网服务器由于服务依赖了mysql数据库,现在想用test环境的数据来进行本地联调,因此陷入了窘境流程下载SSH Proxy软件App Store下载SSH Proxy配置跳板机server、port、username、key确保能连上跳板机查看SSH Proxy的Listening on port:7070配置服务代理在服务启动的VM Options中添加代理参数-D原创 2022-03-10 17:00:52 · 1163 阅读 · 0 评论 -
java应用诊断神器-arthas
java应用诊断神器-arthas介绍Arthas 是Alibaba开源的Java诊断工具,深受开发者喜爱。当你遇到以下类似问题而束手无策时,Arthas可以帮助你解决:这个类从哪个 jar 包加载的?为什么会报各种类相关的 Exception?我改的代码为什么没有执行到?难道是我没commit?分支搞错了?遇到问题无法在线上debug,难道只能通过加日志再重新发布吗?线上遇到某个用户的数据处理有问题,但线上同样无法 debug,线下无法重现!是否有一个全局视角来查看系统的运行状况?有什原创 2022-03-10 16:56:32 · 110 阅读 · 0 评论 -
限流-RateLimiter
限流-RateLimiter工作中对外提供的API 接口设计都要考虑限流,如果不考虑限流,会成系统的连锁反应,轻者响应缓慢,重者系统宕机,整个业务线崩溃,如何应对这种情况呢,我们可以对请求进行引流或者直接拒绝等操作,保持系统的可用性和稳定性,防止因流量暴增而导致的系统运行缓慢或宕机。在开发高并发系统时有三把利器用来保护系统:缓存的目的是提升系统访问速度和增大系统处理容量降级是当服务出现问题或者影响到核心流程时,需要暂时屏蔽掉,待高峰或者问题解决后再打开限流的目的是通过对并发访问/请求进行限速,或原创 2022-02-25 17:11:02 · 741 阅读 · 0 评论 -
SnowFlake brief introduction
SnowFlake brief introduction简介Snowflake算法是Twitter设计的一个可以在分布式系统中生成唯一的ID的算法。特点性能(Performance)minimum 10k ids per second per process;response rate 2ms (plus network latency)每个进程每秒10K;响应速度2ms协调性(Uncoordinated)For high availability within and a原创 2022-02-25 17:09:20 · 70 阅读 · 0 评论 -
Bootstrap源码分析
开篇今天,给大家分享一下netty中的bootstrap与unsafe。unsafeunsafe接口是内部接口,是netty为了方便操作channel而设计的一个辅助接口,它一般不允许被用户直接调用。主要用于实际的IO操作,例如:bind端口、处理accept、read事件、把channel注册到NioEventLoop上…。下面的图是unsafe的继承类图,我们主要关注下nio相关的类:NioByteUnsafe以及NioMessageUnsafe。NioByteUnsafe以及NioMessa原创 2021-10-13 21:27:01 · 840 阅读 · 0 评论 -
LongAdder与高并发场景下的qps计算
高并发场景下的qps计算qps通常可以定义为:对一秒内该进程中的各个线程对某一个切入点的次数进行累加计数。业务场景公司层面已经有一套针对服务的SLA监控。但我负责的这个服务是一套地理位置服务,属于公共支撑类服务,因此该服务要对接多个业务方。为了知道上线后,各个业务方的qps以及天级流量,我们就需要孵化出一个工具对这两个metric行统计。术语定义bucket:桶,描述单位时间内的请求数量bucketWindow:时间窗口,描述需要统计时间窗口的数据,一个时间窗口包含多个桶。例如:需要统计qps原创 2021-02-01 15:20:38 · 313 阅读 · 0 评论 -
hive orc write引发oom
起因使用datax从mongo导出到格式为orc的hdfs文件过程中,报了oom:2021-01-09 00:05:02.038 [5358205-0-0-writer] ERROR WriterRunner - Writer Runner Received Exceptions:java.lang.OutOfMemoryError: Java heap space at org.apache.orc.impl.DynamicByteArray.grow(DynamicByteArray.java:原创 2021-01-15 21:36:03 · 1437 阅读 · 0 评论 -
浅谈加解密算法
浅谈加解密算法背景早之前,公司有很多套lbs服务,散落在各个部门。大数据部门也拥有自己的一套lbs。这套lbs应用范围较广,功能较齐全。所以,现阶段,出于成本节约、易用性、统一管理的考虑,我们把其他部门的lbs也整合过来了。整合过来后,面临一个问题:无法规范地管理业务方,并保证系统的安全性。因此,我们需要一套加密算法来解决这个问题。加密和解密加密数据加密的基本过程,就是对原来为明文的文件或数据按某种算法进行处理,使其成为 不可读的一段代码,通常称为“密文”。通过这样的途径,来达到保护数据不被原创 2020-12-30 14:32:28 · 488 阅读 · 0 评论 -
NIO零拷贝
NIO零拷贝waht is 零拷贝?零拷贝(Zero-Copy)是指计算机在执行操作时,CPU不需要先将数据从某处内存复制到一个特定区域,从而节省CPU时钟周期和内存带宽。 —维基百科概念DMA直接内存访问(Direct Memory Access,DMA)是计算机科学中的一种内存访问技术。它允许某些电脑内部的硬件子系统(电脑外设),可以独立地直接读写系统内存,而不需中央处理器(CPU)介入处理 。在同等程度的处理器负担下,DMA是一种快速的数据传送方式。很多硬件的系统会使用DMA,包含硬盘原创 2020-12-01 19:57:01 · 223 阅读 · 0 评论 -
java中的IO流
java中的I/O流为什么需要I/O流试想一下,当我们的服务需要从本地磁盘、网络…中读取或者写入大量数据的时候。但是我们的内存和带宽都是很有限的,无法一次性地读取大量地数据。而流可以实现一点一点地逐步传输数据。当我们下载大文件地过程中,服务并不会占用很大地内存空间,而只是从内存中划分出一个缓冲区,当缓冲区满地时候再把数据flush到磁盘。流是什么通过流的形式允许java程序使用相同的方式来访问不同的输入/输出源;stream是从起源(source)到接收的(sink)的有序数据;我们这里把输入/原创 2020-11-28 16:02:04 · 88 阅读 · 0 评论 -
线程间的协作-wait/notify与condition
线程间的协作有些时候,线程之间需要相互配合,完成某项工作。例如:A线程修改了一个对象的值,而B线程想要感知这个变化,然后进行相应的操作。整个过程中,A线程可以看成是“生产者”,B线程可以看成是消费者。在这个场景中,简单的方式是让消费者线程不断地循环检查变量是否符合预期。但这种方式会存在以下弊端:难以保证及时性资源开销大,自旋会浪费cpu资源因此,我们需要寻找新的方式来解决线程之间的协作问题。显然,jdk已经为我们考虑在内了。解决此问题的方法在java中有以下两种方式:基于内置锁sync原创 2020-11-25 16:54:27 · 262 阅读 · 0 评论 -
基准测试-JMH
基准测试-JMHif 快还是 switch 快?HashMap 的初始化 size要不要指定,指定之后性能可以提高多少?各种序列化方法哪个耗时更短?无论出自何种原因需要进行性能评估,量化指标总是必要的。在大部分场合,简单地回答谁快谁慢是远远不够的,如何将程序性能量化呢?这就需要我们的主角 JMH 登场了!简介JMH(Java Microbenchmark Harness)是用于代码微基准测试的工具套件,主要是基于方法层面的基准测试,精度可以达到纳秒级。该工具是由 Oracle 内部实现 JIT原创 2020-11-24 10:29:47 · 236 阅读 · 0 评论 -
阿里云开源离线同步工具DataX3.0
DataX3.0概览DataX 是一个异构数据源离线同步工具,致力于实现包括关系型数据库(MySQL、Oracle等)、HDFS、Hive、ODPS、HBase、FTP等各种异构数据源之间稳定高效的数据同步功能。设计理念为了解决异构数据源同步问题,DataX将复杂的网状的同步链路变成了星型数据链路,DataX作为中间传输载体负责连接各种数据源。当需要接入一个新的数据源的时候,只需要将此数据源对接到DataX,便能跟已有的数据源做到无缝数据同步。开源地址https://github.com/al原创 2020-11-19 14:55:09 · 517 阅读 · 0 评论 -
SnowFlake brief introduction
SnowFlake brief introduction简介Snowflake算法是Twitter设计的一个可以在分布式系统中生成唯一的ID的算法。特点性能(Performance)minimum 10k ids per second per process;response rate 2ms (plus network latency)每个进程每秒10K;响应速度2ms协调性(Uncoordinated)For high availability within and a原创 2020-11-19 14:49:34 · 123 阅读 · 0 评论 -
线程及线程池初探
线程及线程池文章目录线程及线程池线程是什么上下文切换状态sleep与waitnotify与notifyAll锁池等待池yieldinterruptjoin线程池是什么解决了什么问题核心设计与实现总体设计生命周期管理shutdownshutdownNowawaitTermination任务执行机制任务调度任务缓冲任务申请任务拒绝线程池配置CPU密集型任务IO密集型任务参考文档线程是什么是操作系统能够进行运算调度的最小单位。大部分情况下,它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进原创 2020-11-19 14:37:24 · 121 阅读 · 0 评论