• 极客专栏正式上线!欢迎访问 https://www.jikewenku.com/topic.html
  • 极客专栏正式上线!欢迎访问 https://www.jikewenku.com/topic.html

2019年01月3日的内容

Kafka冷门知识:主题删除背后的秘密

作者:朱小厮来源:朱小厮的博客今天笔者抛开惯有的陈述思路,在本文开篇中先让大家来思考一个问题,这个问题也是来源于一次真实的应用案例,案例内容的具体步骤如下:step 1. 创建一个主题,假设主题名为topic-offset;step 2. 创建生产者往这个主题中写入若干消息,然后关闭生产者;step 3. 创建消费者消费……

Kafka如何做到1秒处理1500万条消息?

一位软件工程师将通过本文向您呈现 Apache Kafka 在大型应用中的 20 项最佳实践。Apache Kafka是一款流行的分布式数据流平台,它已经广泛地被诸如New Relic(数据智能平台)、Uber、Square(移动支付公司)等大型公司用来构建可扩展的、高吞吐量的、高可靠的实时数据流系统。例如,在New ……

kafka入门教程(九)kafka shell脚本用法详解

9. kafka shell脚本用法详解 kafka安装目录下的bin目录包含了很多运维可操作的shell脚本,列举如下:脚 本名称用途描述connect-distributed.sh连接kafka集群模式connect-standalone.sh连接kafka单机模式kafka-acls.shtodo……

kafka入门教程(十)kafka消费者如何分配分区

10. kafka消费者如何分配分区 消费者如何分配分区就是指某个topic,其N个分区和消费该topic的若干消费者群组下M个消费者的关系。如下图所示,C0和C1两个消费者如何分配N个分区:消费者&分区.png核心接口:org.apache.kafka.clients.consumer.internals.Parti……

程序员老鸟写sql语句的经验之谈

1. 不论一个sql中涉及到多少表,每次都用两个表(结果集)操作,得到新的结果后,再和下一个表(结果集)操作。2. 避免在select f1,(select f2 from tableB )…. from tableA 这样得到字段列。直接用tableA和tableB关联得到A.f1,B.f2就可以了。3.避免隐含的类型转换……

分库分表的事务处理机制

` 分布式事务 由于我们将单表的数据切片后存储在多个数据库甚至多个数据库实例中,所以依靠数据库本身的事务机制不能满足所有场景的需要。但是,我们推荐在一个数据库实例中的操作尽可能使用本地事务来保证一致性,跨数据库实例的一系列更新操作需要根据事务路……

【荐】成为Java高级工程师到底需要掌握什么?

一点小建议:学习本系列知识之前,如果你完全没接触过 MQ、ES、Redis、Dubbo、Hystrix 等,那么我建议你可以先在网上搜一下每一块知识的快速入门,玩一下入门 Demo,然后再开始每一块知识的学习。这样效果更好噢~高并发架构消息队列为什么使用消息队列?消息队列有什么优点和缺点?Kafka、ActiveMQ、RabbitMQ、……

10年老兵忠告,程序员,如果哪一天颓废了受打击了,看下吧

展望未来,总结过去10年的程序员生涯,给程序员小弟弟小妹妹们的一些总结性忠告 走过的路,回忆起来是那么曲折,把自己的一些心得体会分享给程序员兄弟姐妹们,虽然时代在变化,但是很可能你也会走我已经做过的10年的路程,有些心得体会你可以借鉴一下,觉得说得有道理的你就接纳,觉得说得没道理的,你就抛弃,以下是我发自内心的,给大家的忠告,特别是针对那……

来谈下高并发和分布式中的幂等处理

幂等的概念幂等(idempotent、idempotence)是一个数学与计算机学概念,常见于抽象代数中。 复制代码在编程中,一个幂等操作的特点是其任意多次执行所产生的影响均与一次执行的影响相同。幂等函数,或幂等方法,是指可以使用相同参数重复执行,并能获得相同结果的函数。这些函数不会影响系统状态,也不用担心重复执行会对系统造成改变。例如,……

如何使用消息队列解决分布式事物?

引言这篇说说分布式事务的问题。企业现在的架构都由传统的架构转向了微服务架构,如下图所示:那么,都不可避免的会遇到跨数据库调用的,分布式事务问题!目前,业内解决分布式事务问题,都基本不用JTA这种强一致性的解决方案,基本是采用如下两套方案基于TCC的事务框架消息队列OK,你们先记住两点(1)图中的服务A和服务B,如……

面试必问:Java基础之反射

反射是框架设计的灵魂,使用的前提条件:必须先得到代表的字节码的Class,Class类用于表示.class文件,即字节码一、反射的概述JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制……

死磕Synchronized底层实现–偏向锁

本文为synchronized系列第二篇。主要内容为分析偏向锁的实现。偏向锁的诞生背景和基本原理在上文中已经讲过了,强烈建议在有看过上篇文章的基础下阅读本文。更多文章见个人博客:https://github.com/farmerjohngit/myblog本系列文章将对HotSpot的synchronized锁实现进行全面分析,内容……

JAVA高级进阶15本经典书籍

1、大型网站技术架构:核心原理与案例分析 推荐指数:★★★★★本书通过梳理大型网站技术发展历程,剖析大型网站技术架构模式,深入讲述大型互联网架构设计的核心原理,并通过一组典型网站技术架构设计案例,为读者呈现一幅包括技术选型、架构设计、性能优化、Web安全、系统发布、运维监控等在内的大型网站开发全景视图。2、高扩展性网站的50条原……

Redis 为什么这么快?

本文内容思维导图如下: 1 简介和应用Redis是一个由ANSI C语言编写,性能优秀、支持网络、可持久化的K-K内存数据库,并提供多种语言的API。它常用的类型主要是 String、List、Hash、Set、ZSet 这5种。 Redis在互联网公司一般有以下应用:……

Java并发编程75道面试题及答案——稳了

1、在java中守护线程和本地线程区别?java中的线程分为两种:守护线程(Daemon)和用户线程(User)。任何线程都可以设置为守护线程和用户线程,通过方法Thread.setDaemon(bool on);true则把该线程设置为守护线程,反之则为用户线程。Thread.setDaemon()必须在Thread.start()之前……

分库分表技术演进 最佳实践-修订篇

移动互联网时代,海量的用户每天产生海量的数量,比如:用户表订单表交易流水表以支付宝用户为例,8亿;微信用户更是10亿。订单表更夸张,比如美团外卖,每天都是几千万的订单。淘宝的历史订单总量应该百亿,甚至千亿级别,这些海量数据远不是一张表能Hold住的。事实上MySQL单表可以存储10亿级数据,只是这时候性能比较差,业界公认……

分库分表架构实践

2垂直分表垂直分表在日常开发和设计中比较常见,通俗的说法叫做“大表拆小表”,拆分是基于关系型数据库中的“列”(字段)进行的。通常情况,某个表中的字段比较多,可以新建立一张“扩展表”,将不经常使用或者长度较大的字段拆分出去放到“扩展表”中,如下图所示:小结在字段很多的情况下,拆分开确实更便于开发和维护(笔者曾见过某个遗留系统中,……

架构设计之「数据库从主备到主主的高可用方案」

在互联网项目中,当业务规模越来越大,数据越来越多,随之而来的就是数据库压力会越来越大。慢慢就会发现,数据库层可能已经成为了整个系统的关键点和性能瓶颈了,因此实现数据层的高可用就成为了我们项目中经常要解决的问题。本文我们就来聊一聊如何实现数据存储层的高可用方案。在保障数据层的高性能与高稳定方面,最容易想到的方式就是对数据进行分片、多份、冗余等,……

架构设计之「数据库集群方案」

在之前的文章中,我们知道数据库服务可能已经成为了很多系统的性能关键点,甚至是瓶颈了。也给大家介绍了数据库服务器从主备架构、到主从架构、再到主主架构的基础方案。但如果单台机器已经不能满足完整业务数据存储的时候,我们就需要考虑采用多机甚至多中心的部署方案了。今天我们就再来聊一聊,在多机环境下,数据库集群的架构方案。同样,这里先不看细节,不管底层数……

教你如何定位及优化SQL语句的性能问题

在现如今的软件开发中,关系型数据库是做数据存储最重要的工具。无论是Oracale还是Mysql,都是需要通过SQL语句来和数据库进行交互的,这种交互我们通常称之为CRUD。在CRUD操作中,最最常用的也就是Read操作了。而对于不同的表结构,采用不同的SQL语句,性能上可能千差万别。本文,就基于MySql数据库,来介绍一下如何定位SQL语句的性能……

12月GithubTrending榜Java项目总结,多了几个新面孔

1. JavaGuideGithub地址: https://github.com/Snailclimb/JavaGuidestar: 18.2k介绍: 【Java学习+面试指南】 一份涵盖大部分Java程序员所需要掌握的核心知识。概览:2. mallGithub地址: https://github.com/ma……

JVM调优总结(五):参数配置说明

一、堆设置  -Xms:初始堆大小  -Xmx:最大堆大小  -XX:NewSize=n:设置年轻代大小  -XX:NewRatio=n:设置年轻代和年老代的比值。如:为3,表示年轻代与年老代比值为1:3,年轻代占整个年轻代年老代和的1/4  -XX:SurvivorRatio=n:年轻代中Eden区与两个Survivor区的比值。注……

Java人才市场年度盘点:转折与终局

 2019年的第一篇推送,我们来回顾100offer岗位和求职者人数最多的一个技术岗位——Java的一年市场表现。2017 年底,100offer 曾用「风光背后的危机」来形容 Java 工程师们的处境。一年时间很快又过去,在全球红利消退的 2018 年,Java 人才市场蛰伏许久的「危机」,是否浮出了水面?……

理解数据库连接池底层原理之手写实现

前言数据库连接池的基本思想是:为数据库连接建立一个“缓冲池”,预先在池中放入一定数量的数据库连接管道,需要时,从池子中取出管道进行使用,操作完毕后,在将管道放入池子中,从而避免了频繁的向数据库申请资源,释放资源带来的性能损耗。在如今的分布式系统当中,系统的QPS瓶颈往往就在数据库,所以理解数据库连接池底层构造原理与设计思想是很有益处的。我们常用……

  • 精品技术教程
  • 编程资源分享
  • 问答交流社区
  • 极客文库知识库

客服QQ


QQ:2248886839


工作时间:09:00-23:00