腾讯云
开发者社区
文档
建议反馈
控制台
首页
学习
活动
专区
工具
TVP
最新优惠活动
文章/答案/技术大牛
搜索
搜索
关闭
发布
登录/注册
首页
学习
活动
专区
工具
TVP
最新优惠活动
返回腾讯云官网
Java那些事
专栏作者
举报
495
文章
474865
阅读量
61
订阅数
订阅专栏
申请加入专栏
全部文章(495)
编程算法(232)
java(125)
https(88)
网络安全(82)
spring(51)
数据库(49)
sql(49)
开源(39)
github(38)
git(37)
二叉树(28)
ide(26)
缓存(25)
云数据库 SQL Server(24)
云数据库 Redis(24)
jvm(23)
http(22)
linux(21)
数据结构(21)
jdk(20)
网站(19)
hashmap(18)
分布式(15)
spring boot(15)
容器(13)
存储(13)
c++(12)
json(12)
xml(9)
打包(9)
文件存储(9)
mybatis(9)
tcp/ip(9)
node.js(8)
容器镜像服务(8)
微服务(8)
kafka(8)
php(7)
javascript(7)
消息队列 CMQ 版(7)
压力测试(7)
zookeeper(7)
aop(7)
微信(7)
数据分析(7)
html(6)
mvc(6)
负载均衡(5)
自动驾驶(5)
vue.js(5)
api(5)
nginx(5)
面向对象编程(5)
dns(5)
windows(5)
python(4)
servlet(4)
android(4)
maven(4)
负载均衡缓存(4)
apache(4)
grep(4)
spring cloud(4)
socket编程(4)
面试(4)
搜索引擎(3)
全文检索(3)
unix(3)
数据加密服务(3)
游戏(3)
jdbc(3)
markdown(3)
udp(3)
rabbitmq(3)
安全(3)
数据处理(3)
客户端(3)
费用中心(2)
对象存储(2)
其他(2)
官方文档(2)
bash(2)
jsp(2)
单片机(2)
nosql(2)
access(2)
jar(2)
struts(2)
tomcat(2)
bash 指令(2)
腾讯云测试服务(2)
电商(2)
kubernetes(2)
数据迁移(2)
爬虫(2)
npm(2)
kotlin(2)
dubbo(2)
rpc(2)
大数据(2)
小程序(2)
系统架构(2)
hbase(2)
腾讯云开发者社区(2)
sdk(2)
Elasticsearch Service(2)
leetcode(2)
sum(2)
time(2)
连接(2)
ios(1)
c 语言(1)
c#(1)
go(1)
actionscript(1)
bootstrap(1)
jquery ui(1)
ajax(1)
oracle(1)
ruby on rails(1)
eclipse(1)
windows server(1)
mapreduce(1)
访问管理(1)
海外加速(1)
全站加速网络(1)
SSL 证书(1)
图片标签(1)
知识图谱(1)
内容理解(1)
mongodb(1)
人工智能(1)
图像处理(1)
企业(1)
数据安全(1)
serverless(1)
运维(1)
黑客(1)
shell(1)
spark(1)
html5(1)
无人驾驶(1)
ssh(1)
正则表达式(1)
gui(1)
单元测试(1)
uml(1)
机器人(1)
数据可视化(1)
物联网(1)
安全漏洞(1)
企业组织(1)
云计算(1)
任务调度(1)
sdn(1)
虚拟化(1)
es(1)
学习方法(1)
教育(1)
action(1)
applet(1)
code(1)
dp(1)
firefox(1)
google(1)
image(1)
int(1)
jdk8(1)
key(1)
layui(1)
map(1)
mutex(1)
ode(1)
pear(1)
plugin(1)
process(1)
queue(1)
return(1)
select(1)
semaphore(1)
server(1)
set(1)
show(1)
target(1)
thread(1)
tm(1)
watch(1)
编程(1)
产品经理(1)
队列(1)
二进制(1)
基础(1)
计算机(1)
计算机基础(1)
事务(1)
优化(1)
搜索文章
搜索
搜索
关闭
头条终面:写个消息中间件
编程算法
apache
kafka
hashmap
消息队列 CMQ 版
比如如何写一个线程池?如何写一个 HashMap ?如何写一个 RPC 框架等等,当然这里的写不是真的叫你用代码写出来,只是说说设计理念,整体架构。
乔戈里
2020-10-26
376
0
百度一二三面!喜提提起批offer!别问,问就是牛逼!
node.js
文件存储
消息队列 CMQ 版
kafka
缓存
由于每个进程的用户空间都是独立的,不能相互访问,这时就需要借助内核空间来实现进程间通信,原因很简单,每个进程都是共享一个内核空间。 Linux 内核提供了不少进程间通信的方式,其中最简单的方式就是管道,管道分为「匿名管道」和「命名管道」。 匿名管道顾名思义,它没有名字标识,匿名管道是特殊文件只存在于内存,没有存在于文件系统中,shell 命令中的「|」竖线就是匿名管道,通信的数据是无格式的流并且大小受限,通信的方式是单向的,数据只能在一个方向上流动,如果要双向通信,需要创建两个管道,再来匿名管道是只能用于存在父子关系的进程间通信,匿名管道的生命周期随着进程创建而建立,随着进程终止而消失。 命名管道突破了匿名管道只能在亲缘关系进程间的通信限制,因为使用命名管道的前提,需要在文件系统创建一个类型为 p 的设备文件,那么毫无关系的进程就可以通过这个设备文件进行通信。另外,不管是匿名管道还是命名管道,进程写入的数据都是缓存在内核中,另一个进程读取数据时候自然也是从内核中获取,同时通信数据都遵循先进先出原则,不支持 lseek 之类的文件定位操作。 消息队列克服了管道通信的数据是无格式的字节流的问题,消息队列实际上是保存在内核的「消息链表」,消息队列的消息体是可以用户自定义的数据类型,发送数据时,会被分成一个一个独立的消息体,当然接收数据时,也要与发送方发送的消息体的数据类型保持一致,这样才能保证读取的数据是正确的。消息队列通信的速度不是最及时的,毕竟每次数据的写入和读取都需要经过用户态与内核态之间的拷贝过程。 共享内存可以解决消息队列通信中用户态与内核态之间数据拷贝过程带来的开销,它直接分配一个共享空间,每个进程都可以直接访问,就像访问进程自己的空间一样快捷方便,不需要陷入内核态或者系统调用,大大提高了通信的速度,享有最快的进程间通信方式之名。但是便捷高效的共享内存通信,带来新的问题,多进程竞争同个共享资源会造成数据的错乱。 那么,就需要信号量来保护共享资源,以确保任何时刻只能有一个进程访问共享资源,这种方式就是互斥访问。信号量不仅可以实现访问的互斥性,还可以实现进程间的同步,信号量其实是一个计数器,表示的是资源个数,其值可以通过两个原子操作来控制,分别是 P 操作和 V 操作。 与信号量名字很相似的叫信号,它俩名字虽然相似,但功能一点儿都不一样。信号是进程间通信机制中唯一的异步通信机制,信号可以在应用进程和内核之间直接交互,内核也可以利用信号来通知用户空间的进程发生了哪些系统事件,信号事件的来源主要有硬件来源(如键盘 Cltr+C )和软件来源(如 kill 命令),一旦有信号发生,进程有三种方式响应信号 1. 执行默认操作、2. 捕捉信号、3. 忽略信号。有两个信号是应用进程无法捕捉和忽略的,即 SIGKILL 和 SEGSTOP,这是为了方便我们能在任何时候结束或停止某个进程。 前面说到的通信机制,都是工作于同一台主机,如果要与不同主机的进程间通信,那么就需要 Socket 通信了。Socket 实际上不仅用于不同的主机进程间通信,还可以用于本地主机进程间通信,可根据创建 Socket 的类型不同,分为三种常见的通信方式,一个是基于 TCP 协议的通信方式,一个是基于 UDP 协议的通信方式,一个是本地进程间通信方式。
乔戈里
2020-09-24
795
0
全网最通俗易懂的Kafka入门
sql
数据库
分布式
zookeeper
消息队列 CMQ 版
众所周知,消息队列的产品有好几种,这里我选择学习Kafka的原因,无他,公司在用。
乔戈里
2019-12-10
656
0
Kafka【入门】就这一篇!
kafka
消息队列 CMQ 版
Kafka 是一个消息系统,原本开发自 LinkedIn,用作 LinkedIn 的活动流(Activity Stream)和运营数据处理管道(Pipeline)的基础。现在它已被多家不同类型的公司 作为多种类型的数据管道和消息系统使用。
乔戈里
2019-11-06
449
0
460道Java后端面试高频题答案版【模块六:计算机操作系统】
编程算法
消息队列 CMQ 版
kafka
1. 计算机操作系统和计算机网络是每个后端开发工程师必须掌握的知识。因为你写的代码最终都是要在操作系统里跑的,弄懂操作系统的原理对你编写高质量代码、调优、排故都有很大的帮助。在这里说一下我作为非科班转后端开发对计算机操作系统的看法,这一块知识确实要比其他模块的知识要难理解,因为多了很多名词和概念,更加抽象。但是呢,即便难度大,我们也必须征服它。因为很有可能你不跨越它,就见不到向你挥手的 offer 。无论是为了秋招还是为了以后当一名有“深度”的开发工程师,都是有必要去学习操作系统的。
乔戈里
2019-09-30
1K
0
面试官问你什么是消息队列?把这篇甩给他!
kafka
消息队列 CMQ 版
云数据库 Redis
jdk
消息队列不知道大家看到这个词的时候,会不会觉得它是一个比较高端的技术,反正我是觉得它好像是挺牛逼的。
乔戈里
2019-04-24
659
0
【荐】成为Java高级工程师到底需要掌握什么?
云数据库 Redis
分布式
dubbo
消息队列 CMQ 版
压力测试
说明:由于答案篇幅较长,以下文章为索引,具体答案在GitHub上,你可以点击文末阅读原文直达,也可以复制上面的链接到浏览器打开。
乔戈里
2019-01-09
1K
0
没有更多了
社区活动
腾讯技术创作狂欢月
“码”上创作 21 天,分 10000 元奖品池!
立即发文
Python精品学习库
代码在线跑,知识轻松学
立即查看
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
立即体验
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
立即查看
领券
问题归档
专栏文章
快讯文章归档
关键词归档
开发者手册归档
开发者手册 Section 归档