- 博客(60)
- 资源 (8)
- 收藏
- 关注
原创 Docker安装Elasticsearch和Elasticsearch-Head以及IK分词器
阿靖哦 2020-04-01 17:13:00 33 已收藏展开ElasticSearch 是一个分布式、高扩展、高实时的搜索引擎。它能很方便的使大量数据具有搜索、分析和探索的能力。充分利用ElasticSearch的水平伸缩性,能使数据在生产环境变得更有价值。ElasticSearch 的实现原理主要分为以下几个步骤,首先用户将数据提交到Elastic Search 数据库中,再通...
2020-04-30 16:27:15 288
原创 分布式ID生成器 | 架构师之路
原创58沈剑架构师之路2017-06-25一、需求缘起几乎所有的业务系统,都有生成一个唯一记录标识的需求,例如: 消息标识:message-id 订单标识:order-id 帖子标识:tiezi-id 这个记录标识往往就是数据库中的主键,数据库上会建立聚集索引(cluster index),即在物理存储上以这个字段排序。这个记录标识...
2020-04-30 10:43:41 249
转载 HTTPS 原理解析
一 前言 在说HTTPS之前先说说什么是HTTP,HTTP就是我们平时浏览网页时候使用的一种协议。HTTP协议传输的数据都是未加密的,也就是明文的,因此使用HTTP协议传输隐私信息非常不安全。为了保证这些隐私数据能加密传输,于是网景公司设计了SSL(Secure Sockets Layer)协议用于对HTTP协议传输的数据进行加密,从而就诞生了HTTPS。SSL目前的版本是3.0,被I...
2020-04-30 10:25:05 246
原创 rediscluster
redis 是我们目前大规模使用的缓存中间件,由于它强大高效而又便捷的功能,得到了广泛的使用。现在的2.x的稳定版本是2.8.19,也是我们项目中普遍用到的版本。redis在年初发布了3.0.0,官方支持了redis cluster,也就是集群。至此结束了redis 没有官方集群的时代,之前我们用redis cluster用的最多的应该是twitter 发布的Twemproxy(https:/...
2020-04-29 11:16:03 538
原创 使用ZooKeeper实现Java跨JVM的分布式锁(读写锁)
一、使用ZooKeeper实现Java跨JVM的分布式锁二、使用ZooKeeper实现Java跨JVM的分布式锁(优化构思)三、使用ZooKeeper实现Java跨JVM的分布式锁(读写锁)读写锁:本文在前面俩片的基础之上介绍如何使用ZooKeeper实现Java跨JVM的分布式锁(读写锁)。简单介绍一下读写锁,在使用读写锁时, 多个客户端(线程)可以同时获...
2020-04-28 12:20:17 193
原创 zookeeper分布式锁原理
一、分布式锁介绍分布式锁主要用于在分布式环境中保护跨进程、跨主机、跨网络的共享资源实现互斥访问,以达到保证数据的一致性。二、架构介绍在介绍使用Zookeeper实现分布式锁之前,首先看当前的系统架构图解释:左边的整个区域表示一个Zookeeper集群,locker是Zookeeper的一个持久节点,node_1、node_2、node_3是locker这个持久节点下面的临时顺序节点...
2020-04-28 09:21:43 162
原创 netstat 输出内容详解,TCP链接握手对应state
1.列出所有 tcp与udp 端口2下面分析每一项的含义2.1 关于Proto,Recv-Q,Send-Q等列的具体含义Proto:协议名(tcp协议还是udp协议)recv-Q:网络接收队列表示收到的数据已经在本地接收缓冲,但是还有多少没有被进程取走,recv()如果接收队列Recv-Q一直处于阻塞状态,可能是遭受了拒绝服务 denial-of-s...
2020-04-27 11:37:03 437
原创 解决CLOSE_WAIT、TIME_WAIT等连接状态过多的问题
先来看下一台生产环境中的各种tcp状态的连接数:netstat -n| awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'LAST_ACK 6SYN_RECV 77CLOSE_WAIT 5793ESTABLISHED 8540FIN_WAIT1 143FIN_WAIT2 378CLOSING 29TIME_WAIT ...
2020-04-27 11:21:28 1867
原创 TCP三次握手四次挥手
我们之前在 传输层协议TCP与UDP 中详细介绍了UDP协议和TCP协议格式以及他们各自的特点,我们知道TCP协议是面向连接的,那面向连接就得需要做建立连接,维护连接,断开连接这些工作,其实大家都听过TCP三次握手建立连接,四次挥手断开连接,那我们今天就来具体看看,TCP到底是如何三次握手和四次挥手的。服务器状态转换[CLOSED->LISTEN] 服务器调用listen后就进入LI...
2020-04-27 09:53:59 127
原创 TCP 三次握手和四次挥手面试题
Python开发者4月8日以下文章来源于小林coding,作者小林coding小林coding用简洁的方式,分享编程小知识。(给Python开发者加星标,提升Python技能)来源:小林coding前言不管面试 Java 、C/C++、Python 等开发岗位, TCP 的知识点可以说是的必问的了。任 TCP 虐我千百遍,我仍待 TCP 如初...
2020-04-27 09:45:56 664
转载 Kafka之数据存储
Zebul博2018-05-03 15:09:002958已收藏1本文主要讲述以下两部分内容:kafka数据的存储方式; kafka如何通过offset查找message。1.前言写介绍kafka的几个重要概念(可以参考之前的博文Kafka的简单介绍):Broker:消息中间件处理结点,一个Kafka节点就是一个broker,多个broker可以组成一个K...
2020-04-26 17:21:55 871
转载 KafKa数据存储与数据一致性保证
tianjinsong2016-10-31 21:03:136141收藏展开http://yonghuiyang.github.io/2015/12/04/kafka_data_store/数据存储Topic一类消息称为一个Topic转存失败重新上传取消Topic逻辑结构Topic可分为多个Parition; Parition内部保证数据的有...
2020-04-26 17:11:28 355
原创 线程的六种状态及其状态的转换
Fuzz_ 2018-10-04 18:15:26 9830 已收藏 13展开1.线程自身信息线程运行的过程会产生很多信息,这些信息都保存在Thread类中的成员变量里面,常见的有:线程的ID是唯一标识getId()线程的名称:getName(),如果不设置线程名称默认为“Thread-xx”线程的优先级:getPriority,线程优先级从1-10,其中数字越大表示优先级...
2020-04-26 16:44:53 597
原创 ps 命令查看进程下的线程及线程状态
查看java所有线程ps –eLf | grep java查看进程下的所有线程cpu利用率top -H -p 25120其中25120为Java进程号。下图红色标注的地方为线程状态。其中总数为28,当前运行的线程为0,28个线程睡眠,没有终止的线程或僵尸线程。树状图显示进程关系pstree –p 1————————————————版权声明:本文为CSDN博主「...
2020-04-26 15:38:24 1189
原创 解决KafKa数据存储与顺序一致性保证
“严格的顺序消费”有多么困难下面就从3个方面来分析一下,对于一个消息中间件来说,”严格的顺序消费”有多么困难,或者说不可能。发送端发送端不能异步发送,异步发送在发送失败的情况下,就没办法保证消息顺序。比如你连续发了1,2,3。 过了一会,返回结果1失败,2, 3成功。你把1再重新发送1遍,这个时候顺序就乱掉了。存储端对于存储端,要保证消息顺序,会有以下几个问题:(...
2020-04-26 11:15:05 1121
原创 KafkaConsumer使用介绍、参数配置
russqiang 2019-04-27 13:43:41 4325 收藏 5展开文章目录前言Consumer概要Consumer程序开发Consumer常用参数说明消息解序列化多线程处理总结前言KafkaProducer作为生产者发送消息到Kafka,那么自然也就需要从kafka读取消息,这就是KafkaConsumer,通过和Producer使用相同的topic...
2020-04-26 10:24:01 2669
转载 Flink| 状态一致性
1. 状态一致性有状态的流处理,内部每个算子任务都可以有自己的状态;对于流处理器内部(没有接入sink)来说,所谓的状态一致性,其实就是我们所说的计算结果要保证准确;一条数据不应该丢失,也不应该重复计算;在遇到故障时可以恢复状态,恢复以后的重新计算,结果应该也是完全正常的;状态一致性分类:AT_MOST_ONCE(最多一次),当任务故障时最简单做法...
2020-04-26 10:12:28 517
原创 KafkaConsumer实现精确一次消费
转自https://blog.csdn.net/qq_18581221/article/details/89766073简介在使用kafka时,大多数场景对于数据少量的不一致(重复或者丢失)并不关注,比如日志,因为不会影响最终的使用或者分析,但是在某些应用场景(比如业务数据),需要对任何一条消息都要做到精确一次的消费,才能保证系统的正确性,kafka并不提供准确一致的消费API,需...
2020-04-26 09:42:14 1399
原创 kafka常见命令操作及底层原理总结
fa124607857 2019-12-11 17:24:29 11 已收藏展开Kafka集群操作创建topicbin/kafka-topics.sh --create --partitions 3 --replication-factor 2 --topic test --zookeeper node01:2181,node02:2181,node03:21811查看to...
2020-04-26 09:40:25 277
原创 inux下的zookeeper启动
zookeeper的安装目录:/usr/local/zookeeper-3.4.6/bin/zkServer.sh;配置文件路径:../conf/zoo.cfg端口 :2181;ZooKeeper服务命令: 在准备好相应的配置之后,可以直接通过zkServer.sh 这个脚本进行服务的相关操作1. 启动ZK服务:sh bin/zkServer....
2020-04-21 19:21:35 113
原创 基于 jacoco 的功能测试代码覆盖率实践
WellDo关注0.2472018.09.18 12:07:44字数 1,878阅读 12,8391. 基于 jacoco 的功能测试代码覆盖率实践1.1 目前主流代码覆盖率统计工具考虑到方案实施的难度很大取决于工具是否仍保持维护更新,所以选择 jacoco 来进行实践。Jacoco 是一个开源的覆盖率工具。Jacoco 可以嵌入到 Ant 、Maven 中,并...
2020-04-21 09:25:54 2334
原创 多partition下无法保障消息的顺序性
由于问题比较宽泛,需要针对不同场景来分析,以下所有的分析都是基于同一个partition下的场景细化,多partition下无法保障消息的顺序性,但是碰到如下场景还是需要调整参数。场景一:设置了retries>0,并且max.in.flight.requests.per.connection>1先说明下这两个参数的含义:retries生产者从服务器收到的错误有可...
2020-04-20 16:55:04 544
原创 解决KafKa数据存储与顺序一致性保证
“严格的顺序消费”有多么困难下面就从3个方面来分析一下,对于一个消息中间件来说,”严格的顺序消费”有多么困难,或者说不可能。发送端发送端不能异步发送,异步发送在发送失败的情况下,就没办法保证消息顺序。比如你连续发了1,2,3。 过了一会,返回结果1失败,2, 3成功。你把1再重新发送1遍,这个时候顺序就乱掉了。存储端对于存储端,要保证消息顺序,会有以下几个问题:(...
2020-04-20 16:25:16 515
原创 Kafka消费顺序保证
Opticalix关注0.0972019.02.19 17:35:07字数 874阅读 7,752在实现事件流流经Kafka时遇到了这个问题,即如何满足消息按produce顺序去consume。概念&问题首先,了解Kafka中broker、partition、topic的概念。Topic:特指Kafka处理的消息源的不同分类。可理解为字面意“主题”。 Pa...
2020-04-20 13:02:13 1681
原创 kafka如何保证数据的顺序消费
一米多的李同学 最后发布于2019-05-22 20:49:58 阅读数 5619 收藏 14展开在对kafka的理解中,常常会被问及到kafka如何保证数据的顺序消费、kafka的数据重复消费怎么处理、如何保证kafka中数据不丢失?今天先说说数据的顺序消费问题。关于顺序消费的几点说明:①、kafka的顺序消息仅仅是通过partitionKey,将某类消息写入同一个partit...
2020-04-20 12:55:42 5650
原创 Idea Intellij多线程调试
weixin_34205826最后发布于2017-11-08 10:57:00阅读数 10收藏展开2019独角兽企业重金招聘Python工程师标准>>>(适用Idea 14 & 15,其他版本未知)几天前遇到一个问题:在多线程调试的时候,一些断点会被跳过。比如像下面的代码: public static void m...
2020-04-20 09:33:36 188
原创 Netty实战:netty 堆外内存泄露排查盛宴
搬运工来架构2018-09-05以下文章来源于闪电侠的博客,作者super flash闪电侠的博客交流intellij idea,netty,java进阶技术栈以及源码阅读方面的心得和体会,一起学习,共同进步!netty 堆外内存泄露,有没有一个通用的排查思路?本篇是闪电侠大神亲身经历的Netty实战问题,对于排查bug的思路有一定的结晶,非常值得一看...
2020-04-20 09:29:59 1531
原创 Kafka Rebalance机制分析
Rebalance 本质上是一种协议,规定了一个 Consumer Group 下的所有 consumer 如何达成一致,来分配订阅 Topic 的每个分区。例如:某 Group 下有 20 个 consumer 实例,它订阅了一个具有 100 个 partition 的 Topic 。正常情况下,kafka 会为每个 Consumer 平均的分配 5 个分区。这个分配的过程就是 Rebala...
2020-04-18 21:24:06 1699
原创 kafka rebalance机制
kafka rebalance机制 Kafka保证同一consumer group中只有一个consumer会消费某条消息,实际上,Kafka保证的是稳定状态下每一个consumer实例只会消费某一个或多个特定的数据,而某个partition的数据只会被某一个特定的consumer实例所消费。这样设计的劣势是无法让同一个consumer group里的consumer均匀消...
2020-04-18 21:19:18 760
原创 Yarn 调度器Scheduler详解
Heaven-Wang 最后发布于2015-10-30 11:32:35 阅读数 17924 收藏 14展开理想情况下,我们应用对Yarn资源的请求应该立刻得到满足,但现实情况资源往往是有限的,特别是在一个很繁忙的集群,一个应用资源的请求经常需要等待一段时间才能的到相应的资源。在Yarn中,负责给应用分配资源的就是Scheduler。其实调度本身就是一个难题,很难找到一个完美的策略可以解...
2020-04-18 21:10:56 199
原创 JVM性能调优
摘自:http://uule.iteye.com/blog/2114697JVM垃圾回收与性能调优总结JVM调优的几种策略一、JVM内存模型及垃圾收集算法1.根据Java虚拟机规范,JVM将内存划分为:New(年轻代) Tenured(年老代) 永久代(Perm) 其中New和Tenured属于堆内存,堆内存会从JVM启动参数(-Xmx:3G...
2020-04-18 11:33:25 989
原创 JVM内存区域的划分(内存结构或者内存模型)
运行时数据区域:根据JVM 规范,JVM 内存共分为虚拟机栈、堆、方法区、程序计数器、本地方法栈五个部分。程序计数器(线程私有): 是当前线程所执行的字节码的行号指示器,每条线程都要有一个独立的程序计数器,这类内存也称为“线程私有”的内存。 正在执行java方法的话,计数器记录的是虚拟机字节码指令的地址(当前指令的地址)。如果还是Native方法,则为空。...
2020-04-18 11:31:42 156
原创 IntelliJ Idea 常用快捷键列表2
快捷键1Ctrl+Shift + Enter,语句完成“!”,否定完成,输入表达式时按 “!”键Ctrl+E,最近的文件Ctrl+Shift+E,最近更改的文件Shift+Click,可以关闭文件Ctrl+[ OR ],可以跑到大括号的开头与结尾Ctrl+F12,可以显示当前文件的结构Ctrl+F7,可以查询当前元素在当前文件中的引用,然后按 F3 可以选择...
2020-04-17 12:56:04 202
原创 设置仅仅是在高压力, 多CPU, 高内存环境下设置
<本文提供的设置仅仅是在高压力, 多CPU, 高内存环境下设置>最近对JVM的参数重新看了下, 把应用的JVM参数调整了下。 几个重要的参数-server -Xmx3g -Xms3g -XX:MaxPermSize=128m-XX:NewRatio=1 eden/old 的比例-XX:SurvivorRatio=8 s/e的比例-XX:+UseParallelGC...
2020-04-17 11:08:30 164
原创 Java 垃圾收集器
原创天涯问路 最后发布于2019-12-05 14:46:21 阅读数 32 已收藏展开面试 GC 相关的问题有:垃圾回收算法有哪些:引用计数、复制、标清、标压垃圾收集器有哪些:Serial、Parallel、CMS、G1、ZGC垃圾回收的方式有哪些:串行、并行、并发标记清理、分区并发------分别对应上方垃圾收集器GC 算法(引用计数、复制、标清、标压)是理论,垃圾收集器是具...
2020-04-17 10:27:14 124
原创 JVM系列三:JVM参数设置、分析
不管是YGC还是Full GC,GC过程中都会对导致程序运行中中断,正确的选择不同的GC策略,调整JVM、GC的参数,可以极大的减少由于GC工作,而导致的程序运行中断方面的问题,进而适当的提高Java程序的工作效率。但是调整GC是以个极为复杂的过程,由于各个程序具备不同的特点,如:web和GUI程序就有很大区别(Web可以适当的停顿,但GUI停顿是客户无法接受的),而且由于跑在...
2020-04-17 10:09:36 169
原创 数据库批量数据插入问题分析
在数据库的相关开发中,经常会遇到数据的批量插入问题。本文主要是通过实验的方式探讨批量数据插入的瓶颈,以及优化建议。以10w条记录的插入作为实验对象,采用下面的几种方法插入:1.普通插入:普通的一条条插入2.普通插入+手动提交:setAutoCommit(false)、commit()3.普通插入+手动提交+prepareStatem...
2020-04-16 11:41:50 1064
原创 设置集群密码
后来者:config set masterauth datahive@2019!config set requirepass datahive@2019!auth "datahive@2019!"config rewrite
2020-04-16 11:41:07 252
原创 Linux查看某个端口的连接数
一、查看哪些IP连接本机netstat -an二、查看TCP连接数1)统计80端口连接数netstat -nat | grep -i "80" | wc -l2)统计httpd协议连接数ps -ef | grep httpd | wc -l3)统计已连接上的,状态为“establishednetstat -anp | grep ESTABLISHED ...
2020-04-16 11:40:11 280
cas +shiro集成
2018-08-01
cas客户端集成单点登录代码3
2018-07-31
cas客户端集成单点登录代码
2018-07-31
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人