1
0
mirror of https://github.com/Snailclimb/JavaGuide synced 2025-08-01 16:28:03 +08:00

[docs update]网关和maven部分描述完善

This commit is contained in:
Guide 2023-02-27 09:50:14 +08:00
parent f198873b8f
commit f3d8439436
5 changed files with 15 additions and 6 deletions

View File

@ -402,6 +402,7 @@ export const sidebarConfig = sidebar({
text: "安全",
prefix: "security/",
icon: "security-fill",
collapsible: true,
children: [
"basis-of-authority-certification",
"jwt-intro",
@ -439,12 +440,14 @@ export const sidebarConfig = sidebar({
text: "RPC远程调用详解",
prefix: "rpc/",
icon: "network",
collapsible: true,
children: ["rpc-intro", "dubbo"],
},
{
text: "ZooKeeper 详解",
icon: "framework",
prefix: "distributed-process-coordination/",
collapsible: true,
children: [
"zookeeper/zookeeper-intro",
"zookeeper/zookeeper-plus",

View File

@ -32,8 +32,10 @@ icon: "gateway"
- **监控告警** 从业务指标、机器指标、JVM 指标等方面进行监控并提供配套的告警机制。
- **流量控制** :对请求的流量进行控制,也就是限制某一时刻内的请求数。
- **熔断降级**:实时监控请求的统计信息,达到配置的失败阈值后,自动熔断,返回默认值。
- **请求缓存** 缓存查询频繁的、数据及时性不敏感的数据以提高性能。
- **响应缓存**:当用户请求获取的是一些静态的或更新不频繁的数据时,一段时间内多次请求获取到的数据很可能是一样的。对于这种情况可以将响应缓存起来。这样用户请求可以直接在网关层得到响应数据,无需再去访问业务服务,减轻业务服务的负担。
- **响应聚合**:某些情况下用户请求要获取的响应内容可能会来自于多个业务服务。网关作为业务服务的调用方,可以把多个服务的响应整合起来,再一并返回给用户。
- **灰度发布** :将请求动态分流到不同的服务版本(最基本的一种灰度发布)。
- **异常处理**:对于业务服务返回的异常响应,可以在网关层在返回给用户之前做转换处理。这样可以把一些业务侧返回的异常细节隐藏,转换成用户友好的错误提示返回。
- **API 文档:**如果计划将 API 暴露给组织以外的开发人员,那么必须考虑使用 API 文档,例如 Swagger 或 OpenAPI。
- **协议转换** :通过协议转换整合后台基于 REST、AMQP、Dubbo 等不同风格和实现技术的微服务,面向 Web Mobile、开放平台等特定客户端提供统一服务。
@ -80,7 +82,7 @@ Zuul 主要通过过滤器(类似于 AOP来过滤请求从而实现网
SpringCloud Gateway 属于 Spring Cloud 生态系统中的网关,其诞生的目标是为了替代老牌网关 **Zuul **。准确点来说,应该是 Zuul 1.x。SpringCloud Gateway 起步要比 Zuul 2.x 更早。
为了提升网关的性能SpringCloud Gateway 基于 Spring WebFlux 。Spring WebFlux 使用 Reactor 库来实现响应式编程模型,底层基于 Netty 实现异步 IO。
为了提升网关的性能SpringCloud Gateway 基于 Spring WebFlux 。Spring WebFlux 使用 Reactor 库来实现响应式编程模型,底层基于 Netty 实现同步非阻塞的 I/O。
![](https://guide-blog-images.oss-cn-shenzhen.aliyuncs.com/github/javaguide/system-design/distributed-system/api-gateway/springcloud-gateway-%20demo.png)
@ -167,3 +169,4 @@ Shenyu 通过插件扩展功能,插件是 ShenYu 的灵魂,并且插件也
- Kong 插件开发教程[通俗易懂]https://cloud.tencent.com/developer/article/2104299
- API 网关 Kong 实战https://xie.infoq.cn/article/10e4dab2de0bdb6f2c3c93da6
- Spring Cloud Gateway 原理介绍和应用https://blog.fintopia.tech/60e27b0e2078082a378ec5ed/

View File

@ -272,7 +272,7 @@ client.start();
InterProcessLock lock1 = new InterProcessMutex(client, lockPath1);
// 分布式不可重入排它锁
InterProcessLock lock2 = new InterProcessSemaphoreMutex(client, lockPath2);
// 锁
// 将多个作为一个整体
InterProcessMultiLock lock = new InterProcessMultiLock(Arrays.asList(lock1, lock2));
if (!lock.acquire(10, TimeUnit.SECONDS)) {

View File

@ -20,7 +20,7 @@ category: 开源项目
另外,我的公众号还会定期分享优质开源项目,每一期我都会精选 5 个高质量的 Java 开源项目。
目前已经更新到了第 13 期:
目前已经更新到了第 16 期:
1. [一款基于 Spring Boot + Vue 的一站式开源持续测试平台](http://mp.weixin.qq.com/s?__biz=Mzg2OTA0Njk0OA==&mid=2247515383&idx=1&sn=ba7244020c05d966b483d8c302d54e85&chksm=cea1f33cf9d67a2a111bcf6cadc3cc1c44828ba2302cd3e13bbd88349e43d4254808e6434133&scene=21#wechat_redirect)。
2. [用 Java 写个沙盒塔防游戏!已上架 Steam,Apple Store](https://mp.weixin.qq.com/s?__biz=Mzg2OTA0Njk0OA==&mid=2247515981&idx=1&sn=e4b9c06af65f739bdcdf76bdc35d59f6&chksm=cea1f086f9d679908bd6604b1c42d67580160d9789951f3707ad2f5de4d97aa72121d8fe777e&token=435278690&lang=zh_CN&scene=21#wechat_redirect)
@ -35,6 +35,9 @@ category: 开源项目
11. [手写一个简易版数据库!项目经验稳了](https://mp.weixin.qq.com/mp/appmsgalbum?__biz=Mzg2OTA0Njk0OA==&action=getalbum&album_id=1345382825083895808&scene=173&from_msgid=2247530323&from_itemidx=1&count=3&nolastread=1#wechat_redirect)
12. [一款强大的快速开发脚手架,前后端分离,干掉 70% 重复工作!](https://mp.weixin.qq.com/s/Ecjm801RpS34Mhj02bIOsQ)
13. [手写一个入门级编译器YYDS](https://mp.weixin.qq.com/s?__biz=Mzg2OTA0Njk0OA==&mid=2247530783&idx=1&sn=c9fdc0c71e2fc95d88ba954291b07e29&chksm=cea136d4f9d6bfc2931a18a42f7bd9903503963e8a85a318adcce579614c0831b1881be3267d&token=1811572747&lang=zh_CN#rd)
14. [8.8k star这可能是我见过最强的开源支付系统](https://mp.weixin.qq.com/s/vfPSXtOgefwonbnP53KlOQ)
15. [31.2k!这是我见过最强的后台管理系统 ](https://mp.weixin.qq.com/s/esaivn2z_66CcrRJlDYLEA)
16. [14.3k star这是我见过最强的第三方登录工具库](https://mp.weixin.qq.com/s/6-TnCHUMEIFWQVl-pIWBOA)
推荐你在我的公众号“**JavaGuide**”回复“**开源**”在线阅读[「优质开源项目推荐」](https://mp.weixin.qq.com/mp/appmsgalbum?__biz=Mzg2OTA0Njk0OA==&action=getalbum&album_id=1345382825083895808&scene=173&from_msgid=2247516459&from_itemidx=1&count=3&nolastread=1#wechat_redirect)系列。

View File

@ -87,7 +87,7 @@ head:
**配置说明**
- dependencies 一个 pom.xml 文件中只能存在一个这样的标签,是用来管理依赖的总标签。
- dependencies 一个 pom.xml 文件中只能存在一个这样的标签,是用来管理依赖的总标签。
- dependency包含在 dependencies 标签中,可以有多个,每一个表示项目的一个依赖。
- groupId,artifactId,version(必要)依赖的基本坐标对于任何一个依赖来说基本坐标是最重要的Maven 根据坐标才能找到需要的依赖。我们在上面解释过这些元素的具体意思,这里就不重复提了。
- type(可选):依赖的类型,对应于项目坐标定义的 packaging。大部分情况下该元素不必声明其默认值是 jar。
@ -204,7 +204,7 @@ Maven 在遇到这种问题的时候,会遵循 **路径最短优先** 和 **
**如何解决呢?** 我们可以通过`exclusive`标签手动将 X(1.0) 给排除。
```xml
<dependencyB>
<dependencyD>
......
<exclusions>
<exclusion>