From 1c0447366bdc00889d701346d148cc1cc8fd4373 Mon Sep 17 00:00:00 2001 From: YunaiV <> Date: Tue, 23 Jun 2020 19:20:48 +0800 Subject: [PATCH] =?UTF-8?q?Dubbo=20Admin=20=E5=85=A5=E9=97=A8=E7=A4=BA?= =?UTF-8?q?=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 8 ++++---- .../src/main/resources/application.yaml | 7 +++++-- lab-30/《芋道 Dubbo Admin 快速入门》.md | 1 + .../nettycommondemo/codec/InvocationEncoder.java | 2 +- .../dispatcher/MessageDispatcher.java | 16 ++++++++++++++-- .../messagehandler/auth/AuthRequestHandler.java | 6 ++++-- pom.xml | 2 +- 7 files changed, 30 insertions(+), 12 deletions(-) create mode 100644 lab-30/《芋道 Dubbo Admin 快速入门》.md diff --git a/README.md b/README.md index 68636d6e..75e8c635 100644 --- a/README.md +++ b/README.md @@ -168,7 +168,8 @@ * [《芋道 Spring Cloud 声明式调用 Feign 入门》](http://www.iocoder.cn/Spring-Cloud/Feign/?github) 对应 [labx-03](https://github.com/YunaiV/SpringBoot-Labs/tree/master/labx-03) * [《芋道 Spring Cloud 服务网关 Spring Cloud Gateway 入门》](http://www.iocoder.cn/Spring-Cloud/Spring-Cloud-Gateway/?github) 对应 [labx-08](https://github.com/YunaiV/SpringBoot-Labs/tree/master/labx-08) * [《芋道 Spring Cloud 链路追踪 SkyWalking 入门》](http://www.iocoder.cn/Spring-Cloud/SkyWalking/?github) 对应 [labx-14](https://github.com/YunaiV/SpringBoot-Labs/tree/master/labx-14) - +* [《芋道 Dubbo Admin 快速入门》](http://www.iocoder.cn/Dubbo/Admin/?github) + # Spring Cloud 专栏 ## 注册中心 @@ -308,9 +309,8 @@ **[CAT](http://www.iocoder.cn/CAT/install/?github)** * [《芋道 Spring Boot 监控平台 CAT 入门》](http://www.iocoder.cn/Spring-Boot/CAT/?github) 的[「13. Dubbo 集成」](#)小节 -TODO Dubbo-Admin - -**** +**[Dubbo Admin](http://www.iocoder.cn/Dubbo/Admin/?github)** +* [《芋道 Dubbo Admin 快速入门》](http://www.iocoder.cn/Dubbo/Admin/?github) # 消息队列 MQ 专栏 diff --git a/lab-30/lab-30-dubbo-annotations-demo/user-rpc-service-provider-02/src/main/resources/application.yaml b/lab-30/lab-30-dubbo-annotations-demo/user-rpc-service-provider-02/src/main/resources/application.yaml index 58798bdb..608fb4f3 100644 --- a/lab-30/lab-30-dubbo-annotations-demo/user-rpc-service-provider-02/src/main/resources/application.yaml +++ b/lab-30/lab-30-dubbo-annotations-demo/user-rpc-service-provider-02/src/main/resources/application.yaml @@ -3,9 +3,12 @@ dubbo: # Dubbo 应用配置 application: name: user-service-provider # 应用名 - # Dubbo 注册中心配 + # Dubbo 注册中心配置 registry: - address: zookeeper://127.0.0.1:2181 # 注册中心地址。个鞥多注册中心,可见 http://dubbo.apache.org/zh-cn/docs/user/references/registry/introduction.html 文档。 + address: zookeeper://127.0.0.1:2181 # 注册中心地址。配置多注册中心,可见 http://dubbo.apache.org/zh-cn/docs/user/references/registry/introduction.html 文档。 + # Dubbo 元数据中心配置 + metadata-report: + address: zookeeper://127.0.0.1:2181 # 元数据中心地址。元数据中心的说明,可见 http://dubbo.apache.org/zh-cn/docs/user/references/metadata/introduction.html # Dubbo 服务提供者协议配置 protocol: port: -1 # 协议端口。使用 -1 表示随机端口。 diff --git a/lab-30/《芋道 Dubbo Admin 快速入门》.md b/lab-30/《芋道 Dubbo Admin 快速入门》.md new file mode 100644 index 00000000..a0b594c7 --- /dev/null +++ b/lab-30/《芋道 Dubbo Admin 快速入门》.md @@ -0,0 +1 @@ + diff --git a/lab-67/lab-67-netty-demo/lab-67-netty-demo-common/src/main/java/cn/iocoder/springboot/lab67/nettycommondemo/codec/InvocationEncoder.java b/lab-67/lab-67-netty-demo/lab-67-netty-demo-common/src/main/java/cn/iocoder/springboot/lab67/nettycommondemo/codec/InvocationEncoder.java index 3784dd5f..e378d201 100644 --- a/lab-67/lab-67-netty-demo/lab-67-netty-demo-common/src/main/java/cn/iocoder/springboot/lab67/nettycommondemo/codec/InvocationEncoder.java +++ b/lab-67/lab-67-netty-demo/lab-67-netty-demo-common/src/main/java/cn/iocoder/springboot/lab67/nettycommondemo/codec/InvocationEncoder.java @@ -22,7 +22,7 @@ public class InvocationEncoder extends MessageToByteEncoder { out.writeInt(content.length); // 写入内容 out.writeBytes(content); - logger.info("[decode][连接({}) 编码了一条消息({})]", ctx.channel().id(), invocation.toString()); + logger.info("[encode][连接({}) 编码了一条消息({})]", ctx.channel().id(), invocation.toString()); } } diff --git a/lab-67/lab-67-netty-demo/lab-67-netty-demo-common/src/main/java/cn/iocoder/springboot/lab67/nettycommondemo/dispatcher/MessageDispatcher.java b/lab-67/lab-67-netty-demo/lab-67-netty-demo-common/src/main/java/cn/iocoder/springboot/lab67/nettycommondemo/dispatcher/MessageDispatcher.java index b947a5d4..bb4da348 100644 --- a/lab-67/lab-67-netty-demo/lab-67-netty-demo-common/src/main/java/cn/iocoder/springboot/lab67/nettycommondemo/dispatcher/MessageDispatcher.java +++ b/lab-67/lab-67-netty-demo/lab-67-netty-demo-common/src/main/java/cn/iocoder/springboot/lab67/nettycommondemo/dispatcher/MessageDispatcher.java @@ -7,12 +7,17 @@ import io.netty.channel.ChannelHandlerContext; import io.netty.channel.SimpleChannelInboundHandler; import org.springframework.beans.factory.annotation.Autowired; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; + @ChannelHandler.Sharable public class MessageDispatcher extends SimpleChannelInboundHandler { @Autowired private MessageHandlerContainer messageHandlerContainer; + private final ExecutorService executor = Executors.newFixedThreadPool(200); + @Override protected void channelRead0(ChannelHandlerContext ctx, Invocation invocation) { // 获得 type 对应的 MessageHandler 处理器 @@ -22,8 +27,15 @@ public class MessageDispatcher extends SimpleChannelInboundHandler { // 解析消息 Message message = JSON.parseObject(invocation.getMessage(), messageClass); // 执行逻辑 - // noinspection unchecked - messageHandler.execute(ctx.channel(), message); + executor.submit(new Runnable() { + + @Override + public void run() { + // noinspection unchecked + messageHandler.execute(ctx.channel(), message); + } + + }); } } diff --git a/lab-67/lab-67-netty-demo/lab-67-netty-demo-server/src/main/java/cn/iocoder/springboot/lab67/nettyserverdemo/messagehandler/auth/AuthRequestHandler.java b/lab-67/lab-67-netty-demo/lab-67-netty-demo-server/src/main/java/cn/iocoder/springboot/lab67/nettyserverdemo/messagehandler/auth/AuthRequestHandler.java index cbf5b6b9..e0fae683 100644 --- a/lab-67/lab-67-netty-demo/lab-67-netty-demo-server/src/main/java/cn/iocoder/springboot/lab67/nettyserverdemo/messagehandler/auth/AuthRequestHandler.java +++ b/lab-67/lab-67-netty-demo/lab-67-netty-demo-server/src/main/java/cn/iocoder/springboot/lab67/nettyserverdemo/messagehandler/auth/AuthRequestHandler.java @@ -25,11 +25,13 @@ public class AuthRequestHandler implements MessageHandler { return; } - // 添加到 WebSocketUtil 中 + // ... 此处应有一段 + + // 将用户和 Channel 绑定 // 考虑到代码简化,我们先直接使用 accessToken 作为 User nettyChannelManager.addUser(channel, authRequest.getAccessToken()); - // 判断是否认证成功。这里,假装直接成功 + // 响应认证成功 AuthResponse authResponse = new AuthResponse().setCode(0); channel.writeAndFlush(new Invocation(AuthResponse.TYPE, authResponse)); } diff --git a/pom.xml b/pom.xml index 2ed43b88..ced6a7b0 100644 --- a/pom.xml +++ b/pom.xml @@ -77,6 +77,7 @@ + @@ -110,7 +111,6 @@ - lab-67