Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
普蓝开源社区
盘古开发框架
提交
bbaf17db
盘古开发框架
项目概览
普蓝开源社区
/
盘古开发框架
通知
25
Star
3
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
1
Wiki
分析
仓库
DevOps
项目成员
Pages
盘古开发框架
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
1
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
bbaf17db
编写于
3月 17, 2022
作者:
X
xiongchun
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
根据「盘古框架文档(中文)排版指南」重构已有文档
上级
f6222b46
变更
6
隐藏空白更改
内联
并排
Showing
6 changed file
with
40 addition
and
38 deletion
+40
-38
pangu-website/docs/quick-start/如何开发单体应用.md
pangu-website/docs/quick-start/如何开发单体应用.md
+1
-1
pangu-website/docs/quick-start/如何开发微服务.md
pangu-website/docs/quick-start/如何开发微服务.md
+5
-5
pangu-website/docs/quick-start/如何开发网关(ShenYu).md
pangu-website/docs/quick-start/如何开发网关(ShenYu).md
+22
-21
pangu-website/docs/quick-start/如何开发网关(SpringMVC).md
pangu-website/docs/quick-start/如何开发网关(SpringMVC).md
+9
-8
pangu-website/docs/quick-start/开发架构模式对比.md
pangu-website/docs/quick-start/开发架构模式对比.md
+2
-2
pangu-website/docs/安装.md
pangu-website/docs/安装.md
+1
-1
未找到文件。
pangu-website/docs/quick-start/如何开发单体应用.md
浏览文件 @
bbaf17db
...
...
@@ -51,7 +51,7 @@ import TabItem from '@theme/TabItem';
## 本地配置
> 为便于理解,本文基于本地配置的方式编写。若改为标准的
Nacos配置中心模式,请参阅:[配置中心](/docs/advanced-guide/nacos-config-center)
章节。
> 为便于理解,本文基于本地配置的方式编写。若改为标准的
Nacos 配置中心模式,请参阅:[配置中心](/docs/advanced-guide/nacos-config-center)
章节。
<Tabs>
<TabItem
value=
"application"
label=
"application.properties"
>
...
...
pangu-website/docs/quick-start/如何开发微服务.md
浏览文件 @
bbaf17db
...
...
@@ -62,12 +62,12 @@ import TabItem from '@theme/TabItem';
</Tabs>
:::caution
盘古框架微服务交互基于
Dubbo提供的面向接口代理的高性能RPC调用能力。因此,对于内部服务模块之间的交互调用,不管是服务的提供者还是服务消费者,都需要依赖API
服务接口包。当然,对于网关而言,使用的是泛化调用,也就是说当网关模块作为微服务消费者的时候是不需要依赖服务提供者的接口包的。
盘古框架微服务交互基于
Dubbo 提供的面向接口代理的高性能 RPC 调用能力。因此,对于内部服务模块之间的交互调用,不管是服务的提供者还是服务消费者,都需要依赖 API
服务接口包。当然,对于网关而言,使用的是泛化调用,也就是说当网关模块作为微服务消费者的时候是不需要依赖服务提供者的接口包的。
:::
### 本地配置
> 为便于理解,本文基于本地配置的方式编写。若改为标准的
Nacos配置中心模式,请参阅:[配置中心](/docs/advanced-guide/nacos-config-center)
章节。
> 为便于理解,本文基于本地配置的方式编写。若改为标准的
Nacos 配置中心模式,请参阅:[配置中心](/docs/advanced-guide/nacos-config-center)
章节。
<Tabs>
<TabItem
value=
"application"
label=
"application.properties"
>
...
...
@@ -126,19 +126,19 @@ public class DubboProviderApplication {
}
```
通过
`@EnableDubbo`
注解开启Dubbo支持。由于Dubbo的使用netty作为底层网络通信,决定了盘古微服务应用启动和提供服务并不需要依赖Servlet
容器。
通过
`@EnableDubbo`
注解开启 Dubbo 支持。由于 Dubbo 的使用 netty 作为底层网络通信,决定了盘古微服务应用启动和提供服务并不需要依赖 Servlet
容器。
```
jsx title="启动参数设置(如下示例)"
-Dnacos.server-addr=127.0.0.1:8848 -Dnacos.namespace=pangu-dev
```
### 服务注册
成功启动应用会自动像
Nacos服务注册中心注册服务。登录Nacos
控制台即可在【服务管理->服务列表】页查看效果。如下图所示。
成功启动应用会自动像
Nacos 服务注册中心注册服务。登录 Nacos
控制台即可在【服务管理->服务列表】页查看效果。如下图所示。
![
盘古开发Dubbo服务
](
/resources/doc/1-pangu-framework-nacos-service-regist.png
)
## 服务消费者
上述服务注册到
Nacos服务中心以后就可以对外提供服务了。可以在任何一个SpringBean组件中(一般是Service、Manager等),引入服务接口后就像本地接口调用一样调用远程服务。Dubbo
将提供高性能的基于代理的远程调用能力,服务以接口为粒度,为开发者屏蔽远程调用底层细节。服务消费端所需要的依赖和提供端是一样的,这里不再赘述。仅给出消费相关代码。如下所示。
上述服务注册到
Nacos 服务中心以后就可以对外提供服务了。可以在任何一个 SpringBean 组件中(一般是 Service、Manager 等),引入服务接口后就像本地接口调用一样调用远程服务。Dubbo
将提供高性能的基于代理的远程调用能力,服务以接口为粒度,为开发者屏蔽远程调用底层细节。服务消费端所需要的依赖和提供端是一样的,这里不再赘述。仅给出消费相关代码。如下所示。
```
jsx {3,8} title="服务消费端,调用远程服务代码 UserAdminManager.java"
@Component
...
...
pangu-website/docs/quick-start/如何开发网关(ShenYu).md
浏览文件 @
bbaf17db
...
...
@@ -62,12 +62,12 @@ import TabItem from '@theme/TabItem';
</Tabs>
:::tip
基于
ShenYu的网关开发模式不需要引入服务接口依赖包,网关会根据服务接口的元数据信息,泛化调用Dubbo服务接口。服务接口的元数据信息则根据Dubbo服务应用中的配置自动上传到ShenYu
网关管理系统。此内容在下文会继续讲解。
基于
ShenYu 的网关开发模式不需要引入服务接口依赖包,网关会根据服务接口的元数据信息,泛化调用 Dubbo 服务接口。服务接口的元数据信息则根据 Dubbo 服务应用中的配置自动上传到 ShenYu
网关管理系统。此内容在下文会继续讲解。
:::
### 本地配置
> 为便于理解,本文基于本地配置的方式编写。若改为标准的
Nacos配置中心模式,请参阅:[配置中心](/docs/advanced-guide/nacos-config-center)
章节。
> 为便于理解,本文基于本地配置的方式编写。若改为标准的
Nacos 配置中心模式,请参阅:[配置中心](/docs/advanced-guide/nacos-config-center)
章节。
<Tabs>
<TabItem
value=
"application"
label=
"application.yaml"
>
...
...
@@ -143,23 +143,23 @@ logging:
##### 关键配置项说明
配置项 | 配置说明
--- | ---
shenyu.sync.websocket.urls | 表示网关和
ShenYu Admin之间使用Websocket的方式进行数据同步,这里是配置ShenYu Admin的提供的Websocket
数据同步服务的地址(支持集群,逗号分割)。
shenyu.sync.websocket.urls | 表示网关和
ShenYu Admin 之间使用 Websocket 的方式进行数据同步,这里是配置 ShenYu Admin 的提供的 Websocket
数据同步服务的地址(支持集群,逗号分割)。
:::caution
上表中提到到
ShenYu Admin是ShenYu网关框架的配置&元数据管理后台。这里包含了网关模块自己的配置信息也包含了后台服务接口原数据信息,这理的配置信息和元数据信息需要和网关模块同步。ShenYu支持多种数据同步方案,Websocket只是盘古开发选用的一种缺省方案。关于网关的更多信息,请参阅:
[
使用指南->网关系统
](
/docs/advanced-guide/gateway
)
章节。
上表中提到到
ShenYu Admin 是 ShenYu 网关框架的配置 & 元数据管理后台。这里包含了网关模块自己的配置信息也包含了后台服务接口原数据信息,这理的配置信息和元数据信息需要和网关模块同步。ShenYu 支持多种数据同步方案,Websocket 只是盘古开发选用的一种缺省方案。关于网关的更多信息,请参阅:
[
使用指南->网关系统
](
/docs/advanced-guide/gateway
)
章节。
:::
### 调用微服务接口
基于
ShenYu的网关开发模式既不需要引入服务接口JAR,也不需要编写具体的调用代码。完全由网关根据服务接口元数据进行Dubbo
泛化调用。
基于
ShenYu 的网关开发模式既不需要引入服务接口 JAR,也不需要编写具体的调用代码。完全由网关根据服务接口元数据进行 Dubbo
泛化调用。
:::danger 那么问题来了,网关是如何知道
Dubbo
服务接口元数据的呢?
-
通过
ShenYu Admin
后台系统,『基础配置->元数据管理』菜单,手工新增每一个接口的元数据,然后将数据自动同步到网关模块。(不建议,量大的话太繁琐)
-
对Dubbo服务提供者增加
ShenYu Client支持,通过在接口方法上使用注解
`@ShenyuDubboClient`
来自动采集上传接口元数据到ShenYu Admin,然后将数据自动同步到网关模块。(盘古开发建议使用的标准姿势)如何对Dubbo服务提供者增加ShenYu Client支持请参阅下文的『
[
Dubbo
服务端(网关采集接口元数据)
](
#dubbo服务端网关采集接口元数据
)
』章节。
:::danger 那么问题来了,网关是如何知道
Dubbo
服务接口元数据的呢?
-
通过
ShenYu Admin
后台系统,『基础配置->元数据管理』菜单,手工新增每一个接口的元数据,然后将数据自动同步到网关模块。(不建议,量大的话太繁琐)
-
对Dubbo服务提供者增加
ShenYu Client 支持,通过在接口方法上使用注解
`@ShenyuDubboClient`
来自动采集上传接口元数据到 ShenYu Admin,然后将数据自动同步到网关模块。(盘古开发建议使用的标准姿势)如何对 Dubbo 服务提供者增加 ShenYu Client 支持请参阅下文的『
[
Dubbo
服务端(网关采集接口元数据)
](
#dubbo服务端网关采集接口元数据
)
』章节。
:::
:::info 还有一个问题,网关要实现泛化调用是需要dubbo服务的注册中心的?
-
没错。通过
ShenYu Admin后台系统『基础配置->插件管理』菜单,启用
`dubbo插件`
并填入注册中心地址。比如,我测试用的注册中心地址:
`nacos://169.188.88.140:1688?namespace=pangu-dev`
。如下图所示。
-
没错。通过
ShenYu Admin 后台系统『基础配置->插件管理』菜单,启用
`dubbo插件`
并填入注册中心地址。比如,我测试用的注册中心地址:
`nacos://169.188.88.140:1688?namespace=pangu-dev`
。如下图所示。
:::
![
盘古框架网关
](
/resources/doc/4-pangu-framework-shenyu-dubbo.png
)
...
...
@@ -176,9 +176,9 @@ public class WebApiGatewayApplication {
## Dubbo服务端(网关采集接口元数据)
网关需要对其代理的后端
Dubbo服务进行泛化调用,就必须知道服务接口元数据。下文就将对一个普通Dubbo服务应用增加ShenYu Client
支持完成自动采集服务接口元数据功能。
网关需要对其代理的后端
Dubbo 服务进行泛化调用,就必须知道服务接口元数据。下文就将对一个普通 Dubbo 服务应用增加 ShenYu Client
支持完成自动采集服务接口元数据功能。
### 安装
ShenYu Client
依赖包
### 安装
ShenYu Client
依赖包
```
jsx
<
dependency
>
<
groupId
>
org.apache.shenyu
</
groupId
>
...
...
@@ -195,12 +195,12 @@ shenyu.client.props.contextPath=/dubbo
配置项 | 配置说明
--- | ---
shenyu.client.register-type | 服务接口元数据采集方式,可选
http直连模式或配置中心zookeeper、etcd、consul和nacos。盘古开发采集接口元数据缺省选择http直接ShenYu Admin
的方式。
shenyu.client.server-lists | ShenYu Admin地址或配置中心地址。集群时多个地址用逗号分开。
shenyu.client.register-type | 服务接口元数据采集方式,可选
http 直连模式或配置中心 zookeeper、etcd、consul 和 nacos。盘古开发采集接口元数据缺省选择 http 直接 ShenYu Admin
的方式。
shenyu.client.server-lists | ShenYu Admin
地址或配置中心地址。集群时多个地址用逗号分开。
shenyu.client.props.contextPath | 本服务在网关中的路由前缀,可自定义按需配置
### 自动上报服务接口元数据
在
Dubbo服务实现类的方法上使用注解
`@ShenyuDubboClient`
标记,表示该接口方法元数据自动上传到
ShenYu Admin。如下代码所示。
在
Dubbo 服务实现类的方法上使用注解
`@ShenyuDubboClient`
标记,表示该接口方法元数据自动上传到
ShenYu Admin。如下代码所示。
```
jsx {5,12}
@Service(version = "1.0.0", group = "pangu-examples-dubbo-gateway-service")
...
...
@@ -223,22 +223,22 @@ public class UserServiceImpl implements UserService {
```
**重启服务提供者:**
-
进入
ShenYu Admin
后台系统的『基础配置->元数据管理』菜单,会看到自动上报的服务元数据信息。如下图所示。
-
进入
ShenYu Admin
后台系统的『基础配置->元数据管理』菜单,会看到自动上报的服务元数据信息。如下图所示。
![
盘古开发网关
](
/resources/doc/2-pangu-framework-shenyu-metadata.png
)
-
进入
ShenYu Admin后台系统的『插件列表->proxy->
dubbo』菜单,会看到自动注册的选择器和规则信息。如下图所示。
-
进入
ShenYu Admin 后台系统的『插件列表-> proxy ->
dubbo』菜单,会看到自动注册的选择器和规则信息。如下图所示。
![
盘古开发网关
](
/resources/doc/3-pangu-framework-shenyu-plugin.png
)
## 完整请求URL及参数说明
至此,就可以通过
http的方式来请求我们的的dubbo
服务了。
至此,就可以通过
http 的方式来请求我们的的 dubbo
服务了。
### 请求URL
:::info 如何确定
dubbo服务对应的请求url
地址呢?
由网关模块配置文件可知网关应用端口是
`9090`
,dubbo服务的配置项shenyu.client.props.contextPath为
`/dubbo`
,我们的dubbo方法通过@ShenyuDubboClient标记的path属性为:
`/findUserEntity`
。综上,dubbo服务UserService#findUserEntity的完整请求地址为:http://localhost:9090/dubbo/findUserEntity
:::info 如何确定
dubbo 服务对应的请求 url
地址呢?
由网关模块配置文件可知网关应用端口是
`9090`
,dubbo 服务的配置项 shenyu.client.props.contextPath 为
`/dubbo`
,我们的 dubbo 方法通过 @ShenyuDubboClient 标记的 path 属性为:
`/findUserEntity`
。综上,dubbo 服务 UserService#findUserEntity 的完整请求地址为:http://localhost:9090/dubbo/findUserEntity。
:::
### 参数说明
通过
http协议,post方式访问网关。在http body中传入json
格式的参数。
通过
http 协议,post 方式访问网关。在 http body 中传入 json
格式的参数。
### 请求示例
```
jsx title="CURL脚本"
...
...
@@ -261,7 +261,7 @@ curl --location --request POST 'http://127.0.0.1:9090/dubbo/findUserEntity' \
## 本文相关范例源码
-
[
pangu-examples-dubbo-api
](
https://gitee.com/pulanos/pangu-framework/tree/master/pangu-examples/pangu-examples-dubbo-api
)
:服务接口包
-
[
pangu-examples-dubbo-gateway-service
](
https://gitee.com/pulanos/pangu-framework/tree/master/pangu-examples/pangu-examples-dubbo-gateway-service
)
:服务提供者(支持网关)
-
[
pangu-examples-webapi-gateway-based
](
https://gitee.com/pulanos/pangu-framework/tree/master/pangu-examples/pangu-examples-webapi-gateway-based
)
:服务消费者(基于
ShenYu
的网关模块)
-
[
pangu-examples-webapi-gateway-based
](
https://gitee.com/pulanos/pangu-framework/tree/master/pangu-examples/pangu-examples-webapi-gateway-based
)
:服务消费者(基于
ShenYu
的网关模块)
## 下一步
继续阅读其它章节获取你想要的答案或通过我们的
[
开发者社区
](
/docs/community
)
寻求更多帮助。
\ No newline at end of file
pangu-website/docs/quick-start/如何开发网关(SpringMVC).md
浏览文件 @
bbaf17db
...
...
@@ -70,12 +70,12 @@ import TabItem from '@theme/TabItem';
</Tabs>
:::tip
基于
SpringMVC
的网关开发模式需要引入服务接口依赖包。
基于
SpringMVC
的网关开发模式需要引入服务接口依赖包。
:::
## 本地配置
> 为便于理解,本文基于本地配置的方式编写。若改为标准的
Nacos配置中心模式,请参阅:[配置中心](/docs/advanced-guide/nacos-config-center)
章节。
> 为便于理解,本文基于本地配置的方式编写。若改为标准的
Nacos 配置中心模式,请参阅:[配置中心](/docs/advanced-guide/nacos-config-center)
章节。
<Tabs>
<TabItem
value=
"application"
label=
"application.properties"
>
...
...
@@ -103,8 +103,8 @@ logging.level.com.gitee.pulanos.pangu=INFO
</Tabs>
## 调用微服务接口
可以在任何一个
SpringBean组件中(针对网关模块而言一般是Controller中),引入服务接口后就像本地接口调用一样调用远程服务。Dubbo
将提供高性能的基于代理的远程调用能力,服务以接口为粒度,为开发者屏蔽远程调用底层细节。
如下所示,通过
Cotroller调用远程服务接口,实现将微服务接口发布为
WebAPI。
可以在任何一个
SpringBean 组件中(针对网关模块而言一般是 Controller 中),引入服务接口后就像本地接口调用一样调用远程服务。Dubbo
将提供高性能的基于代理的远程调用能力,服务以接口为粒度,为开发者屏蔽远程调用底层细节。
如下所示,通过
Cotroller 调用远程服务接口,实现将微服务接口发布为
WebAPI。
```
jsx {2,13} title="DemoController.java"
// 注入服务接口
...
...
@@ -124,7 +124,7 @@ public Result<List<UserOut>> case1() {
}
```
:::caution
这种通过
SpringMVC发布API
的模式并非盘古开发的标准姿势,只是提供这么一种开发模式选项。
这种通过
SpringMVC 发布 API
的模式并非盘古开发的标准姿势,只是提供这么一种开发模式选项。
:::
## 启动入口
...
...
@@ -139,13 +139,13 @@ public class DubboProviderApplication {
}
```
## 完整请求
URL
及参数说明
至此,就可以通过
http的方式来请求我们的的dubbo服务了。此种开发模式完全基于SpringMVC,其请求地址和参数说明等信息本教程不再展开叙述。如有需要,请自行查阅SpringMVC
请求和响应的相关教程即可。
## 完整请求
URL
及参数说明
至此,就可以通过
http 的方式来请求我们的的 dubbo 服务了。此种开发模式完全基于 SpringMVC,其请求地址和参数说明等信息本教程不再展开叙述。如有需要,请自行查阅 SpringMVC
请求和响应的相关教程即可。
## 本文相关范例源码
-
[
pangu-examples-dubbo-api
](
https://gitee.com/pulanos/pangu-framework/tree/master/pangu-examples/pangu-examples-dubbo-api
)
:服务接口包
-
[
pangu-examples-dubbo-service
](
https://gitee.com/pulanos/pangu-framework/tree/master/pangu-examples/pangu-examples-dubbo-service
)
:服务提供者
-
[
pangu-examples-dubbo-gateway-service
](
https://gitee.com/pulanos/pangu-framework/tree/master/pangu-examples/pangu-examples-dubbo-gateway-service
)
:基于
SpringMVC
的网关模块(服务消费者)
-
[
pangu-examples-dubbo-gateway-service
](
https://gitee.com/pulanos/pangu-framework/tree/master/pangu-examples/pangu-examples-dubbo-gateway-service
)
:基于
SpringMVC
的网关模块(服务消费者)
## 下一步
继续阅读其它章节获取你想要的答案或通过我们的
[
开发者社区
](
/docs/community
)
寻求更多帮助。
\ No newline at end of file
pangu-website/docs/quick-start/开发架构模式对比.md
浏览文件 @
bbaf17db
...
...
@@ -39,13 +39,13 @@ slug: /quick-start/how-to-make-architecture
| - | 单体分层架构 | 微服务分布式架构
--- | :-: | :-:
开发人员 < 3 | ✔ |
研发预算 < 100w | ✔ |
研发预算 < 100
w | ✔ |
用户数较小的管理类系统 | ✔ |
面向C端的(移动)互联网应用 | | ✔
多任务多小组协作 | | ✔
有专职运维人员 | | ✔
追求可维护性和扩展性 | | ✔
追求技术团队长期收益
&
增长 | | ✔
追求技术团队长期收益
&
增长 | | ✔
甲方企业自建的技术团队 | | ✔
项目外包性质的创业公司(乙方) | ✔ |
...
...
pangu-website/docs/安装.md
浏览文件 @
bbaf17db
...
...
@@ -15,7 +15,7 @@ import TabItem from '@theme/TabItem';
本文将介绍如何通过包依赖管理工具安装盘古框架。
> 请将版本号
`latest.version.xxx`
替换为当前最新版本号为:`5.0.8`。
> 请将版本号
`latest.version.xxx`
替换为当前最新版本号为:`5.0.8`。
## 依赖管理模块
盘古资源依赖声明管理模块。所有盘古引用都应该依赖这个模块。
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录