
编程
文章平均质量分 90
程序员与Python
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
腾讯程序员熬夜码字:网络 IO 演变发展过程和模型介绍,仅此一篇
在互联网中提起网络,我们都会避免不了讨论高并发、百万连接。而此处的百万连接的实现,脱离不了网络 IO 的选择,因此本文作为一篇个人学习的笔记,特此进行记录一下整个网络 IO 的发展演变过程。以及目前广泛使用的网络模型。1.网络 IO 的发展在本节内容中,我们将一步一步介绍网络 IO 的演变发展过程。介绍完发展过程后,再对网络 IO 中几组容易混淆的概念进行对比、分析。1.1 网络 IO 的各个发展阶段通常,我们在此讨论的网络 IO 一般都是针对 linux 操作系统而言。网络 IO 的发展过程是随原创 2021-05-29 17:15:57 · 300 阅读 · 1 评论 -
有Github霸榜半年的Java并发图册+JDK源码剖析笔记在手,我终于不慌内卷了
如何打开并发世界的大门?想也不用想,最简单最快捷的方法当然是一头扎进源码!但是只适用于并发理论已经储备足够的小伙伴。对于基础稍弱的小伙伴肯定需要先通过理论远看轮廓,然后再通过源码近看明细。当然为了能大家更好地入手Java并发,互联网雷锋小编我前段时间特地从阿里的一位朋友手上拿到了他手码的Java并发图册与一份Github上霸榜半年的JDK源码剖析笔记,大家看了之后就知道,差距不止一点点!为什么要看源码我们在做项目的时候一般会遇到下面的问题:(1)不知道如何去设计。比如刚入职场时,来一个需求需做概要设原创 2021-05-28 16:16:31 · 546 阅读 · 16 评论 -
阿里大神万字总结:InnoDB锁类型及其详细分析(仅此一篇,干货建议收藏!!)
0 事务支持首先回顾一下事务相关的基础概念。在默认情况下,InnoDB 开启自动提交,每一个 SQL 语句会形成其独立的事务,在语句执行完毕后自动提交,如果语句执行失败,则自动回滚。用户可以通过 START TRANSACTION 或 BEGIN 命令显式开启事务,通过 COMMIT 或 ROLLBACK 显示提交或回滚事务。用户可以通过 SET AUTO_COMMIT=0 显式关闭自动提交。隔离级别方面,InnoDB 支持标准的: READ UNCOMMITTED , READ COMMITED ,原创 2021-05-28 11:23:52 · 697 阅读 · 6 评论 -
Java并发编程专题系列之深入分析synchronized
** Java对象内存结构**HotSpot虚拟机中,对象在内存中存储的布局可以分为三块区域:对象头(Header)、实例数据(Instance Data)和对齐填充(Padding)。对象头(Object Header)markWord(标记字段)用于存储对象自身的运行时数据, 如哈希码(HashCode)、GC分代年龄、锁状态标志、线程持有的锁、偏向线程ID、偏向时间戳等等,这部分数据的长度在32位和64位的虚拟机(暂 不考虑开启压缩指针的场景)中分别为32个和64个Bits。new一个原创 2021-05-27 18:59:39 · 137 阅读 · 0 评论 -
做了3年Java,靠着这份面试题跟答案,我从15K变成了40K
在博主认为,对于Java面试以及进阶的最佳学习方法莫过于刷题+博客+书籍+总结,前三者博主将淋漓尽致地挥毫于这篇博客文章中,至于总结在于个人,实际上越到后面你会发现面试并不难,其次就是在刷题的过程中有没有去思考,刷题只是次之,这又是一个层次了,这里暂时不提后面再谈。博主总结了一系列大厂面试中常问的面试技术点,深入解析以及答案,将为最近准备面试的各开发者去大厂保驾护航,何谓面试? 博主所理解的面试,它是一个过程,是不断沉淀、不断总结、善于传达自己的专业领域技术以及解决问题能力的过程。以下是博主总结的一些面原创 2021-05-25 16:35:39 · 1438 阅读 · 14 评论 -
面试官:单表数据量大一定要分库分表吗?我用6个字和10张图回答
一、 文章概述在业务发展初期单表完全可以满足业务需求,在阿里巴巴开发手册也建议:单表行数超过500万行或者单表容量超过2GB才推荐进行分库分表,如果预计三年后数据量根本达不到这个级别,请不要在创建表时就分库分表。但是随着业务的发展和深入,单表数据量不断增加,逐渐成为业务系统的瓶颈。这是为什么呢?从宏观层面分析任何物体都必然有其物理极限。1965年英特尔创始人摩尔预测:集成电路上可容纳的元器件的数目,约每隔24个月增加一倍,性能提升一倍,即计算机性能每两年翻一番。但是摩尔定律会有终点吗?有些科学家认为原创 2021-05-17 14:16:53 · 2013 阅读 · 3 评论 -
今日话题:程序员,从培训班出来的都是垃圾?你们是怎么看待的
今天和大家讨论一个比较尖锐敏感的话题,这个问题应该很多人都在讨论,大家有什么看法都可以说出来。一、培训班毕业的就是辣鸡!近几年我在网上,总是看到大家喜欢讨论这样一个问题:比如:1、从培训机构毕业的程序员,都是不行的!2、大厂面试不要培训班毕业的。3、等等…很多一些针对培训班程序员的一些话题小编最近逛论坛,发帖子,看到一个网友的回帖很气愤。他的帖子是这么说的:“培训班出来的程序猿全是垃圾,没有例外。一个优秀的程序员首先是兴趣和热爱这个行业,其次是思维方式和学习能力。短短几个月的培训班只转载 2021-05-16 22:16:30 · 563 阅读 · 0 评论 -
Java进阶之路:看完这篇Kubernetes的深入分析后,我完全掌握了这门技术!
什么是Kubernetes?Kubernetes (通常称为K8s,K8s是将8个字母“ubernete”替换为“8”的缩写) 是用于自动部署、扩展和管理容器化(containerized)应用程序的开源系统。Google设计并捐赠给Cloud Native Computing Foundation(今属Linux基金会)来使用的。它旨在提供“跨主机集群的自动部署、扩展以及运行应用程序容器的平台”。它支持一系列容器工具, 包括Docker等。CNCF于2017年宣布首批Kubernetes认证服务提供商原创 2021-05-14 21:28:02 · 2166 阅读 · 9 评论 -
恐怖!ThreadLocal引起的一次线上事故
前言不知道什么时候年轻的我曾一度认为Java没啥难度,没有我实现不了的需求,没有我解不了的bug直到我遇到至今难忘的一个bug 。 线上用户存储数据后查看提示无权限初次定位明明自己添加的数据,为什么提示自己没有权限呢?我一开始自信地认为是我们的客户操作有问题、或者是我们权限配置有问题但是带我自己亲自验证了一下之后发现这个问题时现时不现,属于一个偶发的问题。这个在开发阶段还真的不容易发现。问题升级经过自己的测试后让我更加怀疑人生了,你要么就有问题要么就没问题。一会有一会没有到底又是几个意思呢?偶转载 2021-05-11 22:29:49 · 386 阅读 · 0 评论 -
爆肝,52条SQL语句,性能优化,干货必收藏 !
SQL语句性能优化1, 对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。2,应尽量避免在 where 子句中对字段进行 null 值判断,创建表时NULL是默认值,但大多数时候应该使用NOT NULL,或者使用一个特殊的值,如0,-1作为默 认值。3,应尽量避免在 where 子句中使用!=或<>操作符, MySQL只有对以下操作符才使用索引:<,<=,=,>,>=,BETWEEN,IN,以及某些时候的LIKE原创 2021-05-09 22:34:24 · 170 阅读 · 0 评论 -
什么!!!程序员频繁被抓,该如何避免面向监狱编程?
最近,有关程序员因为参与某些项目开发导致被起诉,甚至被判刑的事件发生的比较多:某程序员因为接了个外包,帮别人写了个软件,结果这个软件被用于赌博导致被抓。某公司利用爬虫抓取用户信息,最后被发现,导致该公司的程序员被抓。某P2P公司暴雷,老板跑路,程序员被抓。中科大博士卖“外挂”非法牟利300多万,被警方逮捕。那么,作为一个程序员,如何避免这些坑呢?怎样尽可能的保护自己呢?本文就从爬虫、赌博网站、P2P以及外挂等几个方向来介绍下,作为程序员如何避免面向监狱编程!由于作者并非专业转载 2021-05-08 22:22:56 · 634 阅读 · 0 评论 -
Dubbo 一些你不一定知道但是很好用的功能
Dubbo功能非常完善,很多时候我们不需要重复造轮子,下面列举一些你不一定知道,但是很好用的功能;直连Provider在开发及测试环境下,可能需要绕过注册中心,只测试指定服务提供者,这时候可能需要点对点直连,点对点直连模式,将以服务接口为单位,忽略注册中心的提供者列表,A 接口配置点对点,不影响 B 接口从注册中心获取列表(说明:官方只建议开发&测试环境使用该功能),用法如下,url指定的地址就是直连地址:<dubbo:reference id="demoService" interfa转载 2021-04-30 15:52:39 · 189 阅读 · 1 评论 -
全网讲解最透彻:高性能网络应用框架Netty,仅此一篇
Netty 是一个高性能网络应用框架,应用非常普遍,目前在 Java 领域里,Netty 基本上成为网络程序的标配了。Netty 框架功能丰富,也非常复杂,今天我们主要分析 Netty 框架中的线程模型,而线程模型直接影响着网络程序的性能。在介绍 Netty 的线程模型之前,我们首先需要把问题搞清楚,了解网络编程性能的瓶颈在哪里,然后再看 Netty 的线程模型是如何解决这个问题的。网络编程性能的瓶颈之前,我们写过一个简单的网络程序echo,采用的是阻塞式 I/O(BIO)。BIO 模型里,所有 re转载 2021-04-28 17:57:14 · 231 阅读 · 0 评论 -
和程序员谈恋爱的7种体验
最近被Wephone创始人被妻子逼死的事情刷屏,甚至还引起了不少的恐慌,具体细节大家可能都已经知道了,两个人在相亲网站上认识,两个月闪电结婚,还在海南给女方买了房子、买了特斯拉,不了解女方的婚史等情况下,把自己公司的事情都告诉了她,结果反倒被这个女的逼到自杀。为这个天才程序员感到惋惜,也希望程序员可以都被温柔相待。我今天发了条状态问有谁的男朋友是程序员?没想到,一下子涌现了一大批程序员的女朋友...转载 2019-07-16 15:14:05 · 1257 阅读 · 0 评论 -
Springboot+MybatisPlus高效实现增删改查
前言Mybatis-Plus基于mybatis做了增强,大大简化了单表CRUD操作,而且Mybatis-Plus是无侵入性的,不会影响现有项目,Mybatis-Plus提供了代码生成器,可以根据数据库表一键生成对应的service、mapper、xml文件,service和mapper提供了丰富的CRUD操作方法,xml文件也是非常简洁。目前最新版本是3.4.1版本。看一下框架结构图:接下去我们就以该版本来讲解下Mybati-Plus的各种用法。本文分为以下几个部分讲解:引入Mybatis原创 2021-04-26 16:15:39 · 3276 阅读 · 0 评论 -
Spring Boot一键换肤,so easy!
点赞再看,养成习惯。Theme,就是主题,点一下就给网站更换一个主题,相信大家都用过类似功能,这个其实和前面所说的国际化功能很像,代码其实也很像,今天我们就来捋一捋。1.一键换肤来做一个简单的需求,假设我的页面上有三个按钮,点击之后就能一键换肤,像下面这样:我们来看下这个需求怎么实现。首先三个按钮分别对应了三个不同的样式,我们先把这三个不同的样式定义出来,分别如下:blue.css:body{ background-color: #05e1ff; } green.css:b原创 2021-04-25 17:13:42 · 293 阅读 · 0 评论 -
使用 Mybatis 真心不要偷懒!
前言这篇文章非常简单,没有什么高深技术。这些细节用过Mybatis的童鞋都知道。写这篇文章的缘由是:在最近的工作中,接手了一个外包项目,发现项目中 mapper 文件全部是自动生成的,代码十分冗余且不易维护,用知乎上的回答,这算得上是名副其实的”屎山”代码了。现在用 Mybatis做持久层算是Java系的主流,其中有一个主要的原因就是灵活性,但通过代码生成工具恰恰打破它的灵活性,生成一堆冗余且无...原创 2019-05-08 20:02:28 · 789 阅读 · 0 评论 -
Spring Cloud微服务如何设计异常处理机制?
导读今天和大家聊一下在采用Spring Cloud进行微服务架构设计时,微服务之间调用时异常处理机制应该如何设计的问题。我们知道在进行微服务架构设计时,一个微服务一般来说不可避免地会同时面向内部和外部提供相应的功能服务接口。面向外部提供的服务接口,会通过服务网关(如使用Zuul提供的apiGateway)面向公网提供服务,如给App客户端提供的用户登陆、注册等服务接口。而面向内部的服务接口,则...转载 2019-05-19 17:29:14 · 578 阅读 · 0 评论 -
排除MySQL中常见错误的实用招术
MySQL是Oracle拥有的一种广泛使用的开源关系数据库管理系统(RDMS)。多年来,它是基于Web的应用软件的默认选择,与其他数据库引擎相比仍然大受欢迎。MySQL是为Web应用软件设计和优化的,它构成了基于Web的各大应用(比如Facebook、Twitter、Wikipedia和YouTube等)的必要部分。你的网站或Web应用软件是否基于MySQL?我们在本文中将解释如何排除MyS...原创 2019-05-20 15:09:04 · 258 阅读 · 0 评论 -
Zookeeper用作注册中心的原理
RPC框架中有3个重要的角色:注册中心 :保存所有服务的名字,服务提供者的IP列表,服务消费者的IP列表服务提供者: 提供跨进程服务服务消费者: 寻找到指定命名的服务并消费。Zookeeper用作注册中心简单来讲,zookeeper可以充当一个服务注册表(Service Registry),让多个服务提供者形成一个集群,让服务消费者通过服务注册表获取具体的服务访问地址(IP+端口)去访...原创 2019-05-25 19:29:08 · 30139 阅读 · 6 评论 -
一文透析 Spring Boot、微服务架构和大数据治理三者之间的故事
微服务架构微服务的诞生并非偶然,它是在互联网高速发展,技术日新月异的变化以及传统架构无法适应快速变化等多重因素的推动下诞生的产物。互联网时代的产品通常有两类特点:需求变化快和用户群体庞大,在这种情况下,如何从系统架构的角度出发,构建灵活、易扩展的系统,快速应对需求的变化;同时,随着用户的增加,如何保证系统的可伸缩性、高可用性,成为系统架构面临的挑战。如果还按照以前传统开发模式,开发一个大型而...原创 2019-05-17 14:47:57 · 282 阅读 · 0 评论 -
使用Nginx反向代理到go-fastdfs
背景go-fastdfs是支持http协议的一款分布式文件系统,在一般的项目中,很少是直接将文件系统的地址暴露出来的,大多数都会通过nginx等软件进行反代过去,由于我司的业务和网络环境场景相对特殊,由公网部分(公有云)和内网部分(私有云)组成的混合云网络体系,公有云主要就是作为一个出口和入口以及运行一些审计认证等应用,对上游请求进行处理,从而减少私有云的处理次数,提升性能。那么也正是因为这样,...原创 2019-05-22 19:44:37 · 1698 阅读 · 2 评论 -
在Docker中部署Confluence和jira-software
version: centos==7.2 jdk==1.8 confluence==6.15.4 jira-software==8.2.1 docker==18.09安装前提示:需要准备2个数据库,因为confluence和jira-software的mysql配置要求不一样confluence需要配置jdk,jira-software自带jdk选择使用docker部署...转载 2019-06-06 19:25:05 · 3057 阅读 · 0 评论 -
Nginx多台服务器实现负载均衡
Nginx负载均衡服务器: IP:192.168.0.4(Nginx-Server)Web服务器列表:Web1: 192.168.0.5(Nginx-Node1/Nginx-Web1)Web2:192.168.0.7(Nginx-Node2/Nginx-Web2)实现目的:用户访问Nginx-Server时,通过Nginx负载均衡到Web1和Web2服务器。Nginx负载均衡服务器的ng...原创 2019-06-04 19:15:52 · 8533 阅读 · 1 评论 -
Spring Boot Security 整合 JWT 实现 无状态的分布式API接口
简介JSON Web Token(缩写 JWT)是目前最流行的跨域认证解决方案。这篇文章可以帮你了解JWT的概念。本文重点讲解Spring Boot 结合 jwt ,来实现前后端分离中,接口的安全调用。建表DROP TABLE IF EXISTS `user`;DROP TABLE IF EXISTS `role`;DROP TABLE IF EXISTS `user_role`;DR...原创 2019-04-02 15:40:33 · 482 阅读 · 0 评论