05 2019 档案

摘要:1.@Autowired 标注在方法,Spring容器创建当前对象,就会调用方法,完成赋值;方法使用的参数,自定义类型的值从ioc容器中获取自动装配; Spring利用依赖注入(DI),完成对IOC容器中中各个组件的依赖关系赋值;1)、@Autowired:自动注入: A、默认优先按照类型去容器中找 阅读全文
posted @ 2019-05-29 11:05 小李Coding 阅读(1322) 评论(0) 推荐(0)
摘要:在 Spring 中,那些组成应用程序的主体及由 Spring IOC 容器所管理的对象,被称之为 bean。简单地讲,bean 就是由 IOC 容器初始化、装配及管理的对象,除此之外,bean 就与应用程序中的其他对象没有什么区别了。而 bean 的定义以及 bean 相互间的依赖关系将通过配置元 阅读全文
posted @ 2019-05-29 10:27 小李Coding 阅读(1231) 评论(0) 推荐(0)
摘要: 阅读全文
posted @ 2019-05-29 10:04 小李Coding 阅读(175) 评论(0) 推荐(0)
摘要:1. 拦截器原理 Producer拦截器(interceptor)是在Kafka 0.10版本被引入的,主要用于实现clients端的定制化控制逻辑。 对于producer而言,interceptor使得用户在消息发送前以及producer回调逻辑前有机会对消息做一些定制化需求,比如修改消息等。同时 阅读全文
posted @ 2019-05-29 01:20 小李Coding 阅读(653) 评论(0) 推荐(0)
摘要:索引 稀疏存储,每隔一定字节的数据建立一条索引(这样的目的是为了减少索引文件的大小)。 下图为一个partition的索引示意图: 注: 通过调用kafka自带的工具,可以看到日志下的数据信息 > bin/kafka-run-class.sh kafka.tools.DumpLogSegments 阅读全文
posted @ 2019-05-29 01:13 小李Coding 阅读(527) 评论(0) 推荐(0)
摘要:Kafka持久化 1. 概述 Kafka大量依赖文件系统去存储和缓存消息。对于硬盘有个传统的观念是硬盘总是很慢,这使很多人怀疑基于文件系统的架构能否提供优异的性能。实际上硬盘的快慢完全取决于使用它的方式。设计良好的硬盘架构可以和内存一样快。 在6块7200转的SATA RAID-5磁盘阵列的线性写速 阅读全文
posted @ 2019-05-29 01:10 小李Coding 阅读(288) 评论(0) 推荐(0)
摘要:Kafka消息分发和消费者push、pull机制 1. 消息分发 Producer客户端负责消息的分发 kafka集群中的任何一个broker都可以向producer提供metadata信息,这些metadata中包含”集群中存活的servers列表”/”partitions leader列表”等信 阅读全文
posted @ 2019-05-29 01:04 小李Coding 阅读(647) 评论(0) 推荐(0)
摘要:Kafka分片存储机制 几个kafka重要概念: 下面示意图形象说明了partition中文件存储方式: 每个partion(目录)相当于一个巨型文件被平均分配到多个大小相等segment(段)数据文件中。但每个段segment file消息数量不一定相等,这种特性方便old segment fil 阅读全文
posted @ 2019-05-29 01:01 小李Coding 阅读(291) 评论(0) 推荐(0)
摘要:Kafka Stream Kafka Streams是一个客户端库,用于构建任务关键型实时应用程序和微服务,其中输入和输出数据存储在Kafka集群中。Kafka Streams结合了在客户端编写和部署标准Java和Scala应用程序的简单性以及Kafka服务器端集群技术的优势,使这些应用程序具有高度 阅读全文
posted @ 2019-05-29 00:58 小李Coding 阅读(353) 评论(0) 推荐(0)
摘要:1. Kafka概述 1.1. 消息队列 1)点对点模式(一对一,消费者主动拉取数据,消息收到后消息清除) 点对点模型通常是一个基于拉取或者轮询的消息传送模型,这种模型从队列中请求信息,而不是将消息推送到客户端。这个模型的特点是发送到队列的消息被一个且只有一个接收者接收处理,即使有多个消息监听者也是 阅读全文
posted @ 2019-05-29 00:54 小李Coding 阅读(2450) 评论(0) 推荐(0)
摘要:1. Zookeeper简介 ZooKeeper是一个开源的分布式框架,提供了协调分布式应用的基本服务。它向外部应用暴露一组通用服务——分布式同步(Distributed Synchronization)、命名服务(Naming Service)、集群维护(Group Maintenance)等,简 阅读全文
posted @ 2019-05-28 20:39 小李Coding 阅读(796) 评论(0) 推荐(0)
摘要:1.CyclibcBarrier的线程运行到某个位置后即停止运行,直到所有的线程都到达这个点,所有线程才开始运行;CountDownLatch是线程运行到某个点后,计数器-1,程序继续运行即CyclibcBarrier是run方法不运行,CountDownLatch是run方法不运行2.CyclibcBarrier只能唤起一个任务,CountDownLatch可以唤起多个任务3.CyclibcBa... 阅读全文
posted @ 2019-05-28 11:03 小李Coding 阅读(696) 评论(0) 推荐(0)
摘要:问题一:在多线程环境中使用HashMap会有什么问题?在什么情况下使用get()方法会产生无限循环? HashMap本身没有什么问题,有没有问题取决于你是如何使用它的。比如,你在一个线程里初始化了一个HashMap然后在多个其他线程里对其进行读取,这肯定没有任何问题。有个例子就是使用HashMap来 阅读全文
posted @ 2019-05-27 20:20 小李Coding 阅读(259) 评论(0) 推荐(0)
摘要:glances -b 以字节为单位显示网络流量 glances 是一个命令行工具包括如下命令选项:-b:显示网络连接速度 Byte/ 秒-B @IP|host :绑定服务器端 IP 地址或者主机名称-c @IP|host:连接 glances 服务器端-C file:设置配置文件默认是 /etc/g 阅读全文
posted @ 2019-05-27 20:11 小李Coding 阅读(508) 评论(0) 推荐(0)
摘要:1.Fabric简介 Fabric是超级账本中的一个项目,用以推进区块链技术。和其他区块链类似,它也有一个账本,使用智能合约,且是一个参与者可以分别管理自身交易的系统。它是一个联盟链。Fabric与其他区块链系统最大的不同在于它是隐私的、许可的网络。相对于像其他区块链那样通过“工作量证明”来验证身份 阅读全文
posted @ 2019-05-27 20:06 小李Coding 阅读(4644) 评论(0) 推荐(0)
摘要:【ChannelPromise作用:可以设置success或failure 是为了通知ChannelFutureListener】Netty的数据处理API通过两个组件暴露——abstract class ByteBuf和interface ByteBufHolder。 下面是一些ByteBuf A 阅读全文
posted @ 2019-05-27 19:41 小李Coding 阅读(15460) 评论(0) 推荐(1)
摘要://this引用逃逸 // 1.构造器还未完成前,将自身this引用向外抛,使其他线程访问这个引用,进而访问到其未初始化的变量,造成问题 // 2.内部类访问外部类未初始化的成员变量 //3.多态继承中,父类访问子类未初始化的成员变量 public class TestThisEscape { final int a; int b = 3; static TestThis... 阅读全文
posted @ 2019-05-27 19:37 小李Coding 阅读(489) 评论(0) 推荐(0)
摘要:Channel的生命周期状态【状态转换将变为相应的事件,转发给ChannelPipeline中的ChannelHandler进行处理】 ChannelUnregistered:Channel已经被创建,但还未注册到EventLoop ChannelRegistered:Channel已经被注册到了E 阅读全文
posted @ 2019-05-27 19:35 小李Coding 阅读(747) 评论(0) 推荐(0)
摘要:import io.netty.channel.Channel; import io.netty.channel.ChannelInitializer; import io.netty.handler.ssl.SslContext; import io.netty.handler.ssl.SslHandler; import javax.net.ssl.SSLEngine; public c... 阅读全文
posted @ 2019-05-27 19:26 小李Coding 阅读(2384) 评论(0) 推荐(0)
摘要:首先看下如下代码: 指令重排序和优化后代码如下:if(!stop)while(true){}volatile最适合使用的是一个线程写、其他线程读的场合,如果有多个线程并发写操作,仍然需要使用锁或者线程安全的容器或者原子变量来代替。 当一个变量被volatile修饰后,它将具备以下两种特性。· 线程可 阅读全文
posted @ 2019-05-27 19:24 小李Coding 阅读(1072) 评论(0) 推荐(0)
摘要:Java内存模型1.工作内存和主内存Java内存模型规定所有的变量都存储在主内存中(JVM内存的一部分),每个线程有自己独立的工作内存,它保存了被该线程使用的变量的主内存复制。线程对这些变量的操作都在自己的工作内存中进行,不能直接操作主内存和其他工作内存中存储的变量或者变量副本。线程间的变量访问需通 阅读全文
posted @ 2019-05-27 19:22 小李Coding 阅读(788) 评论(0) 推荐(0)
摘要:问题描述:使用netty做性能测试时,并发过大造成Too Many open files问题 该类错误是因为linux系统对socket连接时需要打开的文件句柄数有限制可以通过ulimit -a 查看 设置句柄数ulimit -n 10000 [临时设置]修改 limit.conf文件 sudo v 阅读全文
posted @ 2019-05-27 19:19 小李Coding 阅读(3469) 评论(0) 推荐(0)
摘要:spring cloud 技术选型 阅读全文
posted @ 2019-05-27 19:14 小李Coding 阅读(260) 评论(0) 推荐(0)
摘要:Java OOM 排查 阅读全文
posted @ 2019-05-27 19:10 小李Coding 阅读(2033) 评论(0) 推荐(1)
摘要:TCP网络 排错 优化 阅读全文
posted @ 2019-05-27 19:08 小李Coding 阅读(685) 评论(0) 推荐(0)
摘要:netty百万连接 网络 优化 日志跟踪 性能调试 阅读全文
posted @ 2019-05-27 19:05 小李Coding 阅读(1120) 评论(0) 推荐(0)
摘要:jvm常用命令及优化 阅读全文
posted @ 2019-05-27 18:59 小李Coding 阅读(321) 评论(0) 推荐(0)
摘要:搭建virtual box 虚拟机 集群 互通 centos 阅读全文
posted @ 2019-05-27 18:47 小李Coding 阅读(274) 评论(0) 推荐(0)