摘要:
微信公众号: "内核小王子" 关注可了解更多关于数据库,JVM内核相关的知识; "如果你有任何疑问也可以加我pigpdong" [^1] 前言 为什么需要服务注册中心? 随着服务数量的扩张,我们需要服务调用方能够自动感知到服务提供方的地址,当我们对服务提供方进行横向扩展的时候,服务调用方能够自动感知 阅读全文
摘要:
微信公众号: "内核小王子" 关注可了解更多关于数据库,JVM内核相关的知识; "如果你有任何疑问也可以加我pigpdong" [^1] 前言 日常开发中我们的应用中一般都会有数据库相关的配置,redis相关的配置,log4j相关的配置 等常用配置,这些我们称为静态配置,在应用启动的时候就需要加载, 阅读全文
摘要:
微信公众号: "内核小王子" 关注可了解更多关于数据库,JVM内核相关的知识; "如果你有任何疑问也可以加我pigpdong" [^1] API网关 依据系统的运行情况,自动的进行流量调度,在无需人工干预的情况下,提升整个系统的稳定性,,让系统应对爆品等突发事件的时候,在依赖弹性计算进行扩容的时间窗 阅读全文
摘要:
微信公众号: "内核小王子" 关注可了解更多关于数据库,JVM内核相关的知识; "如果你有任何疑问也可以加我pigpdong" [^1] 前言 我们在应用开发的时候,应该都碰到过这种需求:每天固定时间点跑一个任务;创建一些临时的任务去初始化数据或者做 阅读全文
摘要:
微信公众号: "内核小王子" 关注可了解更多关于数据库,JVM内核相关的知识; "如果你有任何疑问也可以加我pigpdong" [^1] 前言 前面我们了解了,服务调用方和服务提供方,如何能够通过注册中心做到水平扩展,从而满足高可用和高并发,那么服务之间如何才能实现相互调用呢? 综合上一节的内容,服 阅读全文
摘要:
微信公众号: "内核小王子" 关注可了解更多关于数据库,JVM内核相关的知识; "如果你有任何疑问也可以加我pigpdong" [^1] 前言 在分布式系统中最好耗性能的地方就是最后端的数据库,一般情况下数据库上的insert操作很快,而update和delete操作如果带有索引也不会慢,前提要控制 阅读全文
摘要:
微信公众号: "内核小王子" 关注可了解更多关于数据库,JVM内核相关的知识; "如果你有任何疑问也可以加我pigpdong" [^1] 前言 在多线程情况下访问资源,我们需要加锁来保证业务的正常进行,JDK中提供了很多并发控制相关的工具包,来保证多线程下可以高效工作,同样在分布式环境下,有些互斥操 阅读全文
摘要:
微信公众号: "内核小王子" 关注可了解更多关于数据库,JVM内核相关的知识; "如果你有任何疑问也可以加我pigpdong" [^1] docker 我们先来了解下docker的原理,如何才能制造出一个真正隔离的软件运行环境. namespace docker在创建容器进程的时候可以指定一组nam 阅读全文
摘要:
微信公众号: "内核小王子" 关注可了解更多关于数据库,JVM内核相关的知识; "如果你有任何疑问也可以加我pigpdong" [^1] 前言 随着微服务化,以及集群规模化,传统的日志检索,指标监控,调用链分析作为功能单一的系统,已经无法更好的帮我们分析问题,我们需要一个监控平台将他们之间的数据进行 阅读全文
摘要:
微信公众号: "内核小王子" 关注可了解更多关于数据库,JVM内核相关的知识; "如果你有任何疑问也可以加我pigpdong" [^1] 前言 一般来说,影响数据库最大的性能问题有两个,一个是对数据库的操作,一个是数据库中的数据太大,对于前者我们可以借助缓存来减少一部分读操作,针对一些复杂的报表分析 阅读全文
摘要:
微信公众号: "内核小王子" 关注可了解更多关于数据库,JVM内核相关的知识; "如果你有任何疑问也可以加我pigpdong" [^1] 拜占庭将军问题 在存在消息丢失的不可信信道上通过消息传递的方式得到一致性是不可能的 由于当时拜占庭帝国国土辽阔,为了防御目的,每个军队都分隔很远,将军和将军之间只 阅读全文
摘要:
结合 CPU 理解一行 Java 代码是怎么执行的 根据冯·诺依曼思想,计算机采用二进制作为数制基础,必须包含:运算器、控制器、存储设备,以及输入输出设备,如下图所示. (该图来源于百度) 我们先来分析 CPU 的工作原理,现代 CPU 芯片中大都集成了,控制单元,运算单元,存储单元.控制单元是 C 阅读全文
摘要:
TCP Implementation in Linux: A Brief Tutorial 一个简单教程关于 TCP 协议在 linux 内核的实现 翻译:内核小王子 (欢迎订阅微信公众号) 原文:Helali Bhuiyan, Mark McGinley, Tao Li, Malathi Veer 阅读全文
摘要:
先抛出几个问题 1.为什么不建议使用订单号作为主键? 2.为什么要在需要排序的字段上加索引? 3.for update 的记录不存在会导致锁住全表? 4.redolog 和 binlog 有什么区别? 5.MySQL 如何回滚一条 sql ? 6.char(50) 和 varchar(50) 效果是 阅读全文
摘要:
微信公众号: "内核小王子" 关注可了解更多关于数据库,JVM内核相关的知识; "如果你有任何疑问也可以加我pigpdong" [^1] jvm 一行代码是怎么运行的 首先,java代码会被编译成字节码,字节码就是java虚拟机定义的一种编码格式,需要java虚拟机才能够解析,java虚拟机需要将字 阅读全文
摘要:
网络内核之TCP是如何发送和接收消息的 老规矩,带着问题阅读: 三次握手中服务端做了什么? 为什么要将accept()单独一个线程而不是和读写的io线程共用一个线程池?netty分为boss和worker 当调用send()返回后数据就一定到对方或者在网线中传输了呢? 我们先来回顾一下,我们编写一个 阅读全文
摘要:
微信公众号: "内核小王子" 关注可了解更多关于数据库,JVM内核相关的知识; "如果你有任何疑问也可以加我pigpdong" [^1] 微服务 好处:实现跨团队的解藕,实现更高的并发(目前单机只能实现c10k)不用在拷贝代码,基础服务可以公用,更好的支持服务治理,能够更好的兼容云计算平台。 RPC 阅读全文
摘要:
微信公众号: "内核小王子" "觉得可以的话欢迎关注" 场景:公司对外网关对很多外部商户开放,运行多年一直正常,昨天某一个客户调用我们接口的时候频繁报connectiontimeout,异常如下: 该异常来自于httpclient,原因是创建连接超时,也就是tcp进行三次握手的时候失败,或者握手报文 阅读全文