弯_弯
码龄14年
关注
提问 私信
  • 博客:752,167
    社区:55
    问答:5,922
    758,144
    总访问量
  • 305
    原创
  • 1,550,283
    排名
  • 4,565
    粉丝
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:北京市
  • 加入CSDN时间: 2011-08-03
博客简介:

唐欢

博客描述:
要做就做到最好
查看详细资料
个人成就
  • 《Java高并发核心编程卷二》书籍作者
  • 博客专家认证
  • 获得265次点赞
  • 内容获得2,465次评论
  • 获得459次收藏
  • 代码片获得456次分享
创作历程
  • 1篇
    2024年
  • 43篇
    2023年
  • 45篇
    2022年
  • 6篇
    2017年
  • 50篇
    2015年
  • 50篇
    2014年
  • 54篇
    2013年
  • 56篇
    2012年
  • 2篇
    2011年
成就勋章
TA的专栏
  • uml
    8篇
  • JVM
    18篇
  • 开源框架
    24篇
  • UML
    12篇
  • 软件工程
    5篇
  • C#
    5篇
  • java
    48篇
兴趣领域 设置
  • 大数据
    redis
  • 后端
    spring架构
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

在高并发、高性能、高可用 三高项目中如何设计适合实际业务场景的分布式id(一)

在现代分布式系统中,分布式ID组件无疑扮演着至关重要的角色。作为整个系统的黄金链路上的关键组件,它的稳定性和可靠性直接关乎到整个系统的正常运作。一旦分布式ID组件出现问题,黄金链路上的关键动作将无法顺利执行,这将会引发一场严重的系统灾难。分布式ID组件的主要职责是为系统中的每个数据实体生成全局唯一标识符(Globally Unique Identifier, GUID)。这些标识符在分布式环境中必须保证唯一性,以确保数据的一致性和准确性。
原创
发布博客 2024.03.07 ·
1385 阅读 ·
11 点赞 ·
0 评论 ·
28 收藏

springboot 集成Dubbo2.7.8 ,连接zookeeper 提示错误 zookeeper not connected

springboot 集成Dubbo2.7.8 ,连接zookeeper 提示错误 zookeeper not connected
原创
发布博客 2023.12.05 ·
1186 阅读 ·
6 点赞 ·
0 评论 ·
8 收藏

为了深入理解优秀的RPC框架Dubbo,从基于Netty手写一个RPC框架开始

在分布式服务框架中,在java领域中有很多实现远程通讯的技术,例如RMI、Hessian、SOAP、ESB 和JMS。要实现网路机器间的通讯,首先需要看看计算机网络通信的基本原来,在底层层面看,网络通信需要做得就是将流从一台计算机传输到另一台计算机,基于传输协议和网络IO来实现,其中传输协议比较出名的有TCP、UDP ,而TCP 和UDP 都是基于Socket概念上为某类应用场景而扩展出的传输协议,网络IO主要有BIO、NIO、AIO三种方式,所有的分布式应用通讯都基于这个原理而实现。
原创
发布博客 2023.11.27 ·
1172 阅读 ·
21 点赞 ·
0 评论 ·
13 收藏

常用服务注册中心与发现(Eurake、zookeeper、Nacos)笔记(一)基础概念

在服务治理框架中,通常都会构建一个注册中心,每个服务单元向注册中心登记自己提供的服务,将主机与端口号、版本号、通信协议等一些附加信息告知注册中心,注册中心按照服务名分类组织服务清单,服务注册中心还需要以心跳的方式去监控清单中的服务是否可用,若不可用需要从服务清单中剔除,达到排除故障服务的效果。服务注册中心的作用就是服务注册与服务发现。注册中心解决的是服务管理和服务的依赖关系管理,为了解耦服务提供者和服务消费者。
原创
发布博客 2023.11.23 ·
823 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Netty 高性能原因之一 采用了高性能的NIO 模式

I/O 全称Input/Output,即输入/输出,通常指数据在内部存储器和外部存储器或其他周边设备之间的输入/输出。涉及 I/O 的操作,不仅仅局限于硬件设备的读写,还要网络数据的传输。无论是从磁盘中读写文件,还是在网络中传输数据,可以说 I/O 主要为处理人机交互、机与机交互中获取和交换信息提供的一套解决方案。前两组主要从传输数据的数据格式不同,进行分组;后两组主要从传输数据的方式不同,进行分组。
原创
发布博客 2023.11.07 ·
203 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

用十万字讲明白linux和java的零复制技术

零拷贝(zero-copy)技术指在计算机执行操作时,CPU 不需要先将数据从一个内存区域复制到另一个内存区域,从而可以减少上下文切换以及 CPU 的拷贝时间。它的作用是在数据报从网络设备到用户程序空间传递的过程中,减少数据拷贝次数,减少系统调用,实现 CPU 的零参与,彻底消除 CPU 在这方面的负载。实现零拷贝用到的最主要技术是 DMA 数据传输技术和内存区域映射技术。
原创
发布博客 2023.10.31 ·
234 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

面试中被问到:Netty中的零拷贝机制是怎么样的?

零拷贝(Zero-copy), CPU不需要为数据在内存之间的拷贝消耗资源。而它通常是指计算机在网络上发送文件时,不需要将文件内容拷贝到用户空间(User Space)而直接在内核空间(Kernel Space)中传输到网络的方式。Zero Copy的模式中,避免了数据在用户空间和内存空间之间的拷贝,从而提高了系统的整体性能。
原创
发布博客 2023.10.23 ·
802 阅读 ·
0 点赞 ·
0 评论 ·
4 收藏

为什么说Decoder与Encoder 是Netty 的核心组件,Netty 是如何使用模板方法模式高效完成解码和编码的,用1万字进行一个彻底剖析

Netty 发送和读取数据的地方是ByteBuf缓冲区,对于发送端,每次发送就是向通道写入一个ByteBuf,发送数据时先填好ByteBuf,然后通过通道发送出去。对于接收端,每一次读取就是通过Handler业务业务处理器的入站方法,从通道读到一个ByteBuf。粘包,指 Receiver (接收端)收到一个 ByteBuf ,包含了 Sender (发送端)的多个 ByteBuf ,发送端的多个 ByteBuf 在接收端“粘”在了一起。
原创
发布博客 2023.10.16 ·
379 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

docker 安装mysql8

it:-i->以交互模式运行容器,-t->为容器重新分配一个伪输入终端,一般这2个都是一块用的。-p 3333:3306 没用默认的3306,改成了宿主机的3333映射容器的mysql3306。然后输入MYSQL_ROOT_PASSWORD 参数设置的密码;MYSQL_ROOT_PASSWORD设置root用户的密码。–name 位容器起一个名字 就要mysql01。使用navicat premium 测试远程连接。-e 配置容器内的应用,这里设置了一个密码。可以查看下mysql的版本号。
原创
发布博客 2023.10.10 ·
268 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

序列化和反序列化:将数据变得更加通用化

序列化和反序列化是计算机领域中常用的概念,用于将对象或数据结构转换为字节序列(序列化)和将字节序列转换回对象或数据结构(反序列化)。序列化是指将对象或数据结构转换为字节序列的过程。通过序列化,可以将对象保存到文件、数据库或进行网络传输。在序列化过程中,对象的状态和数据会被转换为一系列的字节,以便能够在不同的环境中进行传输或持久存储。反序列化则是将字节序列转换回对象或数据结构的过程。通过反序列化,可以重新构造出原始的对象或数据结构,使其可以被程序使用。序列化和反序列化可以实现跨平台的数据交换。
原创
发布博客 2023.09.18 ·
366 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

docker 容器编排工具 docker-compose从0到精通

Docker-Compose 项目是Docker官方的开源项目,负责实现对Docker容器集群的快速编排。Docker-Compose 项目由 Python 编写,调用 Docker 服务提供的API来对容器进行管理。因此,只要所操作的平台支持 Docker API,就可以在其上利用Compose 来进行编排管理。
原创
发布博客 2023.09.11 ·
310 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

centos7 下使用docker安装常见的软件:Redis

关于docker的基础知识,请见《在自己学习的过程中经常会需要动手安装一下常见的工具,本篇就手把手带你用docker安装一遍。
原创
发布博客 2023.09.06 ·
452 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

别在说自己不知道docker了,全文通俗易懂的给你说明白docker的基础与底层原理

Docker 是一个开源的应用容器引擎,基于Go语言进行开发实现并遵从Apache2.0 协议开源,基于 Linux 内核的 cgroup,namespace,以及 OverlayFS 类的 Union FS 等技术,对进程进行封装隔离,属于 操作系统层面的虚拟化技术。由于隔离的进程独立于宿主和其它的隔离的进程,因此也称其为容器。Docker 在容器的基础上,进行了进一步的封装,从文件系统、网络互联到进程隔离等等,极大的简化了容器的创建和维护。使得 Docker 技术比虚拟机技术更为轻便、快捷。
原创
发布博客 2023.08.28 ·
743 阅读 ·
2 点赞 ·
0 评论 ·
2 收藏

mysql 笔记(三)-InnoDB存储引擎 锁定机制

数据库锁机制是数据库为了保证数据的一致性,而使各种共享资源在被并发访问变得有序锁设计的一种规则.Mysql 由于其自身架构的特点,存在多种数据存储引擎,每种存储引擎的锁定机制都是为各自所面对的特定场景而优化设计,所以各存储引擎的锁定机制也有比较大的区别.
原创
发布博客 2023.08.21 ·
415 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

mysql 笔记(二)-mysql存储引擎

InnoDB是从5.5版本开始的mysql默认事务型存储引擎, 它被设计用来处理大量的短期(short-lived)事务. 可以确保事务的完整提交(Commit)和回滚(Rollback).InnoDB 不仅缓存索引还要缓存真实数据,对内存要求比较高,而且内存大小对性能有决定性的影响.其数据文件结构:(1)表名.frm 存储表结构(mysql8 开始,合并在表名.ibd中);(2)表名.ibd 存储数据和索引InnoDB 存储引擎的特点是行锁设计、支持外键,默认读取操作不会产生锁。
原创
发布博客 2023.08.14 ·
357 阅读 ·
1 点赞 ·
0 评论 ·
2 收藏

mysql 笔记(一)-mysql的架构原理

查询缓存(Cache&Buffer),这是MySQL的一个可优化查询的地方,如果开启了查询缓存且在查询缓存过程中查询到完全相同的SQL语句,则将查询结果直接返回给客户端;存储引擎负责MySQL中数据的存储与提取,与底层系统文件进行交互.MySQL 存储引擎是插件式的,服务器中的查询执行引擎通过接口与存储引擎进行通信,接口屏蔽了不同存储引擎之间的差异.最常见的存储引擎是MYISAM和InnoDB.1.查询缓存的效果取决于缓存的命中率,只有命中缓存的查询效果才能有改善,因此无法预测其性能。
原创
发布博客 2023.08.07 ·
119 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

全网最全讲的最详细的多线程原理

在我们开始讲多线程之前,我们先来了解一下什么是进程,什么是线程。进程和线程是操作系统中两个容易混淆的概念。
原创
发布博客 2023.07.31 ·
459 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

你知道 netty的ChannelInBoundHandler生命周期以及Pipeline入站处理流程吗?

当对端数据入站到Netty通道时,Netty将触发流水线Pipeline上开启入站操作处理,触发入站处理器ChannelInboundHandler多对应的入站API。入站处理器有两个接口,一个是超级接口ChannelHander,另一个是ChannelInboundHandler,ChannelInboundHandler接口继承了超级接口ChannelHandler,如下图所示:ChannelInboundHandler的常用方法如下图所示:/**
原创
发布博客 2023.07.24 ·
482 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

带你手写一个hashMap,通过手写hashMap带你剖析hashMap的源码

手写一个hashMap 是为了更好的理解hashMap的源码,一起来剖析一下hashMap的源码
原创
发布博客 2023.07.17 ·
282 阅读 ·
1 点赞 ·
0 评论 ·
1 收藏

30张图带你弄懂 二叉树、AVL、红黑树,他们之间有什么联系,AVL树和红黑树如何平衡

树(Tree)是若干个结点组成的有限集合,其中必须有一个结点是根结点,其余结点划分为若干个互不相交的集合,每一个集合还是一棵树,但被称为根的子树。注意,当树的结点个数为0时,我们称这棵树为空树,记为Φ。二叉树是树的其中一种。二叉树(Binary Tree)是一种每结点最多拥有2个子树的树结构,其中第1个子树被称为左子树,第2个子树被称为右子树。注意,当二叉树的结点个数为0时,我们称这个二叉树为空二叉树,记为Φ。二叉树是有序的,即若将其左、右子树颠倒,就成为另一棵不同的二叉树。
原创
发布博客 2023.07.10 ·
947 阅读 ·
1 点赞 ·
0 评论 ·
1 收藏
加载更多