Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
caopu16
whatsmars
提交
01b7baf9
W
whatsmars
项目概览
caopu16
/
whatsmars
与 Fork 源项目一致
Fork自
武汉红喜 / whatsmars
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
W
whatsmars
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
01b7baf9
编写于
9月 19, 2018
作者:
武汉红喜
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
..
上级
e3e54f25
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
9 addition
and
5 deletion
+9
-5
whatsmars-dubbo/README.md
whatsmars-dubbo/README.md
+5
-5
whatsmars-mq/whatsmars-mq-rocketmq/README.md
whatsmars-mq/whatsmars-mq-rocketmq/README.md
+4
-0
未找到文件。
whatsmars-dubbo/README.md
浏览文件 @
01b7baf9
...
...
@@ -21,11 +21,11 @@ IDEA VM options 设置 -Ddubbo.registry.register=false (有id时为-Ddubbo.regis
-
集群容错模式:默认 cluster="failover",其他 failfast,failsafe,failback,forking,broadcast
-
负载均衡:默认 loadbalance="random",其他 roundrobin,leastactive,consistenthash
-
线程模型:默认
<dubbo:protocol
name=
"dubbo"
dispatcher=
"all"
threadpool=
"fixed"
threads=
"200"
/>
1.
如果事件处理的逻辑能迅速完成,并且不会发起新的 IO 请求,比如只是在内存中记个标识,则直接在 IO 线程上处理更快,因为减少了线程池调度。
2.
但如果事件处理逻辑较慢,或者需要发起新的 IO 请求,比如需要查询数据库,则必须派发到线程池,否则 IO 线程阻塞,将导致不能接收其它请求。
3.
如果用 IO 线程处理事件,又在事件处理过程中发起新的 IO 请求,比如在连接事件中发起登录请求,会报“可能引发死锁”异常,但不会真死锁。
4.
all 所有消息都派发到线程池,包括请求,响应,连接事件,断开事件,心跳等。
5.
message 只有请求响应消息派发到线程池,其它连接断开事件,心跳等消息,直接在 IO 线程上执行。
+
如果事件处理的逻辑能迅速完成,并且不会发起新的 IO 请求,比如只是在内存中记个标识,则直接在 IO 线程上处理更快,因为减少了线程池调度。
+
但如果事件处理逻辑较慢,或者需要发起新的 IO 请求,比如需要查询数据库,则必须派发到线程池,否则 IO 线程阻塞,将导致不能接收其它请求。
+
如果用 IO 线程处理事件,又在事件处理过程中发起新的 IO 请求,比如在连接事件中发起登录请求,会报“可能引发死锁”异常,但不会真死锁。
+
all 所有消息都派发到线程池,包括请求,响应,连接事件,断开事件,心跳等。
+
message 只有请求响应消息派发到线程池,其它连接断开事件,心跳等消息,直接在 IO 线程上执行。
-
直连提供者:
<dubbo:reference
id=
"xxxService"
interface=
"com.alibaba.xxx.XxxService"
url=
"dubbo://localhost:20890"
/>
-
只订阅(禁用注册):
<dubbo:registry
address=
"10.20.153.10:9090"
register=
"false"
/>
-
人工管理服务上下线:
<dubbo:registry
address=
"10.20.141.150:9090"
dynamic=
"false"
/>
...
...
whatsmars-mq/whatsmars-mq-rocketmq/README.md
浏览文件 @
01b7baf9
...
...
@@ -14,6 +14,10 @@
-
ConsumerQueue相当于CommitLog的索引文件,消费者消费时会先从ConsumerQueue中查找消息在commitLog中的offset,再去
CommitLog中找元数据。如果某个消息只在CommitLog中有数据,没在ConsumerQueue中, 则消费者无法消费,RocketMQ的事务消息就
是这个原理。
-
RocketMQ具有很好动态伸缩能力(非顺序消息),伸缩性体现在Topic和Broker两个维度。
+
Topic维度:假如一个Topic的消息量特别大,但集群水位压力还是很低,就可以扩大该Topic的队列数,Topic的队列数跟发送、消费速度成正比。
+
Broker维度:如果集群水位很高了,需要扩容,直接加机器部署Broker就可以。Broker起来后向Namesrv注册,Producer、Consumer通过Namesrv
发现新Broker,立即跟该Broker直连,收发消息。
### More
-
[
RocketMQ架构模块解析
](
https://blog.csdn.net/javahongxi/article/details/72956608
)
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录