
JAVA
文章平均质量分 90
卢囧囧
金融狗转行IT狗
展开
-
记一次feign接口耗时调优过程
背景 说一下我们的技术架构,我们目前是使用 SpringCloud Alibaba 版本,注册\配置中心nacos,接口间调用OpenFeign,网关用的gateway。起因 事情是这样的,我们这个项目之前是一个大的单体项目,最近一直在进行微服务拆分,拆出去的模块在单体项目中就用feign调用,这天业务人员在群里抱怨有一个页面很慢,之前也出现过这种情况,是公司网络的问题,因为在网关里看返回时间很短,100ms内,但是从服务器到公司之间很慢,打开网关的日志,准备甩锅给运维,但是这次..原创 2021-08-15 15:55:44 · 8875 阅读 · 4 评论 -
JAVA程序员:直击心灵的几个问题
自己转行做JAVA已经有几个年头了,感觉自己应该脱离新手这个概念了吧。。然鹅突然在网上看到了一个帖子,上面有这么几个问题,啪啪打脸,看来还有很多不足~要继续保持学习,这篇博客也是要把这些问题记录下来,铭记一生。。。如果你也是一个JAVA程序员,准备好来直击心灵了吗,建议先自己回答了之后再看答案~当然如果你有更好的答案也可以评论~1.基于接口的继承和基于实现的继承各有什么优缺点?答:接口...原创 2019-08-16 16:06:41 · 296 阅读 · 0 评论 -
Synchronized三部曲:What、How、Why
首先声明,这个是转贴,转自:https://juejin.im/post/5d5374076fb9a06ac76da894?utm_source=gold_browser_extension,下面是我看过之后自己的总结。一、WhatSynchronized是什么?Synchronized是JAVA语言中的关键字,他可以用在方法上例如:也可以用在代码块上,例如:他的作用是...转载 2019-08-19 14:57:41 · 191 阅读 · 0 评论 -
Hadoop—MapReduce
Hadoop分为两个部分,一个部分是HDFS文件管理系统,另一个就是MapReduce,该部分是负责计算的部分,他可以提取出每一行的数据,并且再此基础上求和/排序等等业务逻辑,并且会归并数据,这一切只需要实现2个方法即可。原创 2017-11-20 22:39:09 · 314 阅读 · 0 评论 -
Hadoop—HDFS
Hadoop是干什么的?Hadoop是一个处理大数据任务的框架,处理大量的数据进行业务逻辑。其中包括2个部分,第一个部分是hdfs海量数据存储,第二个部分是处理相应的业务逻辑的。例如:100TB的销售数据,根据相应的业务逻辑来统计,排名等等。原创 2017-11-19 20:12:33 · 494 阅读 · 0 评论 -
ZooKeeper-能干什么?
Nc首先集群管理的话,想看每一台的状态必须要连接到那台机器之后才能看。 有一个小工具,可以再一台集群内的服务器,查看任意一个Zookeeper的状态,那就是NetCat。原创 2017-11-14 19:21:51 · 1423 阅读 · 0 评论 -
AVRO—跨语言数据序列化框架
这种跨语言的数据序列化框架有很多,AVRO并不是最知名,最好用的,为什么会选择他呢?因为他是Hadoop的一个子项目,就犹如Spring mvc和Spring一样。原创 2017-11-14 19:53:24 · 1491 阅读 · 0 评论 -
Zookeeper集群搭建和配置
首先要将搭载Zookeeper的电脑装好jdk。和Zookeeper。配置zoo.cfg 配置说明: 1-ickTime=2000 心跳间隔周期 毫秒。 2-initLimit=10初始连接超时阈值=10*tickTime。指的是follower初始连接leader的超时时间。 如果网络环境不好,适当调大。 3-syncLimit=5连接超时阈值=syncLimit*tickTime。指原创 2017-11-13 20:20:09 · 282 阅读 · 0 评论 -
Zookeeper_神奇的动物在哪里?
这几天学了zooKeeper。最初接触它的时候,是在学dubbo的时候,那时候需要搭建他和dubbo一起用。 第一次见它的时候,真的是不起眼,不知道dubbo为什么非要这么个玩意来配合,就是再内存里面存了一颗树嘛~ 当然在我第二次见它,开始好好的学习它的时候,才发现, 它是那么多美妙,加上它之后,一切都显得那么的如丝般顺滑,一切都那么的理所当然。 简直的大爱~!简介Zookeeper是分布式应原创 2017-11-13 19:50:11 · 1271 阅读 · 0 评论 -
线程相关—锁
1.闭锁CountDownLatch 闭锁:想实现它管理的线程都执行完后,在执行其它线程。 在调用构造方法创建CountDownLatch对象时需要指定管理线程的个数(计数器的值)。 await():会产生阻塞,直到计数器减为0的时候才会释放。 countDown():每调用一次,会将计数器–。例子:锅和菜买回来之后,才可以输出开始做饭//两个线程类class BuyGuo原创 2017-11-10 20:36:39 · 165 阅读 · 0 评论 -
线程池
使用线程池的目的:避免频繁创建和销毁线程红色的是核心线程。蓝色的是临时线程,下面的蓝色粗条,是队列。当用户进来时,服务器会分配核心线程给用户使用。该线程一直存在,不会关闭,并且,没人使用的时候也会创建。当核心线程分配满了之后,再进来的用户会进入队列等待。当队列满了之后,再来的用户,服务器会创建临时线程使用,临时线程有数量由设置决定。并且当临时线程使用完毕后,可以设置原创 2017-11-10 20:43:30 · 245 阅读 · 0 评论 -
并发Map映射ConcurrentMap
HashMap非线程并发安全,Hashtable线程并发安全的。 查看Hashtable源码,发现它的读取、添加等方法都添加了同步锁,效率太低。 Hashtable中,会锁住整个表,查询的时候也锁住整个表,效率很低。 那么如何提高效率? 如果只锁操作的一个元素,并发效率会特别高,但是实现太难。 解决思想:引入分段锁(分段桶)ConcurrentMap是通过其内部的算法,将这个表划分为16个原创 2017-11-10 20:20:41 · 3224 阅读 · 0 评论 -
并发工具包—阻塞队列BlockingQueue
阻塞队列,顾名思义:如果队列满了,那么会进入阻塞状态,当有消费者从队列中取出数据后,再解除阻塞状态。如果队列为空,从队列中取数据就会进入阻塞状态。直至队列中有数据为止。阻塞队列BlockingQueueBlockingQueue是接口,目前已知的实现类如下:ArrayBlockingQueue:底层底层通过数组来保存队列中的元素,所以创建时需要指定容量。LinkedBlockingQueue:底原创 2017-11-10 20:13:01 · 192 阅读 · 0 评论 -
Nio-FileChannel与粘包问题
昨天我们说了Nio中的套接字通道SocketChannel,及相关的缓冲区类ByteBuffer。 今天我们来说一下文件的通道类FileChannel。粘包问题在缓冲区类ByteBuffer中存入数据的时候,由于都是直接写入的。前一个数据包的尾,紧挨着后一个数据的头,没法做到区分。 如果是传输文件,那么只要保证连贯性和完整性即可。不需要分包。 如果是结构性数据的话,就需要分包了,那么怎么办呢?原创 2017-11-10 19:43:12 · 298 阅读 · 0 评论 -
NIO及Selector多路复用选择器
Nio 多路复用选择器原创 2017-11-08 20:30:01 · 1740 阅读 · 0 评论