T31项目第10天

发布时间:2022-07-01 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了T31项目第10天脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_126_5@

T31项目第10天

  • 架构选型
    • 1.架构技术架构选项
      • 1.1 巨石架构(单体架构)
      • 1.2 SOA架构
      • 1.3 微服务
      • 1.4 SPRing-boot(优秀的构建项目的框架)
      • 1.5 Spring-cloud家族
    • 2.数据库访问层
      • 2.1 JDBC
      • 2.2 Mybatis
      • 2.3 数据库连接池
        • 2.3.1几种常见的连接池
        • 2.3.2 连接池的工作原理
    • 3.中间件的选型
      • 3.1 消息队列
    • 4.远程通信框架的选型
      • 4.1 运行期框架运行状态
      • 4.2 RPC框架核心技术点
      • 4.3 Feign框架的调用
    • 5.网关层的选型
      • 5.1API网关由来
      • 5.2网关的分类
      • 5.3网关的技术选型
      • 5.4 spring-cloud中gateway的原理
今天是孤尽班第10天学习,跟着老师学习了架构分类、数据层、数据库连接池、消息中间件、网关、通信协议的的特性,还需要继续补充学习!

技术架构选型

1.架构技术架构选项

1.1 巨石架构(单体架构)

特点F1a;单体架构,功能无法扩展,业务之间耦合度高,业务之间调用简单方便

1.2 SOA架构

优点:自上而下向下,降低耦合性,通过ESB进行各个模块之间通信 从运维角度出发,聚焦可维护性,兼顾可扩展性,前后端分离 缺点:服务拆分粒度大,通过ESB来统一管理服务之间调用,耦合度高

1.3 微服务

特点:去中心化,将服务组件化,一个组件就是一个产品,服务切分力度更小,设计师自上而下,聚焦可扩展性,兼顾可维护性 主要特性: 业务隔离、并行开发、易于维护、单独部署: 总结:不能为了微服务而微服务,需要考虑业务量(qps,ops等)、维护工作量等

1.4 Spring-boot(优秀的构建项目的框架)

具备特性: 1.创建spring应用方便,减少开发步骤,简化项目的构建配置 2.内嵌tomcat等,减少第三方应用配置 3.自动配置spring以及第三方库 4.提供生产级别特性

1.5 Spring-cloud家族

T31项目第10天

springcloud —spring cloud config (配置管理) —spring cloud nefix(多个组件组成) —spring cloud Bus(事件、消息) — spring cloud stream(中间件发送消息封装) —spring cloud gateway(统一分布式网关)

2.数据库访问层

2.1 JDBC

数据库的链接特性: 开启链接和关闭链接需要手动关闭 服务器连接数有限,不关闭链接会占用链接资 执行数据库操作的性能效率是封装JDBC的组件(;mybatis,mybatis-plus)20%性能 数据库链接数限制: MySQL5.5 mySQL5.6 mysql5.7:默认的最大连接数都是151,上限为:100000,根据不同mysql的版本,连接数也不同 连接数修改查看参考:https://www.cnblogs.COM/caoshousong/p/10845396.htML

2.2 Mybatis

mybatis执行的逻辑

T31项目第10天

2.3 数据库连接池

JDBC连接池:解决自己需要自己建立连接,关闭链接,连接池中哟哟一个标准的接口:javax.sql.DataSource

2.3.1几种常见的连接池

一.DBCP (Database Connection Pool) 是一个依赖Jakarta commons-pool对象池机制的数据库连接池,Tomcat的数据源使用的就是DBCP。 二.C3P0 是一个开放源代码的JDBC连接池,它在lib目录中与Hibernate一起发布,包括了实现jdbc3和jdbc2扩展规范说明的Connection 和statement 池的DataSources 对象。 三.Proxool 是一个Java SQL Driver驱动程序,提供了对你选择的其它类型的驱动程序的连接池封装。可以非常简单的移植到现存的代码中。完全可配置。快速,成熟,健壮。可以透明地为你现存的JDBC驱动程序增加连接池功能 四.BoneCP 是一个开源的快速的 JDBC 连接池。BoneCP很小,只有四十几K(运行时需要LOG4j和GOOGLE Collections的支持。BoneCP 的JDBC驱动的加载是在连接池之外的,这样在一些应用服务器的配置上就不够灵活。 五.druid 德鲁伊: 阿里开源的JDBC gIThub: https://github.com/alibaba/druid

    <dePEndency>
        <groupId>com.alibaba</groupId>
        <artifactId>druid</artifactId>
        <version>${druid-version}</version>
    </dependency>

2.3.2 连接池的工作原理

1.连接池的建立 2.连接池中连接的使用管理 3.连接池的关闭

3.中间件的选型

3.1 消息队列

消息传输过程中保存消息的容器,生产者和消费者不直接通信,依靠队列保证消息可靠性,避免系统的相互干扰

分类 P2P模式:生产者通过消息队列直接向消费者发送消息 订阅模式:发布消息者将消息发布到不同的主题,订阅者订阅不同主题的消息; 功能作用: 服务之间解耦,提高系统响应时间 常见消息中间件 kafka,rocketMQ,rabbitMQ 不用消息中间件对比

T31项目第10天

中间件特性参考:https://blog.csdn.net/wqc19920906/article/details/82193316

4.远程通信框架的选型

4.1 运行期框架运行状态

调用方 服务提供方 注册中心 1.服务提供方注册服务到注册中心 2.调用方向注册中心请求服务获取服务提供方的信息(状态,服务ID,IP等信息) 3.调用方与服务提供方建立连接,调用服务

4.2 RPC框架核心技术点

T31项目第10天

注册中心集成: 服务调用:feign,clien等

4.3 Feign框架的调用

T31项目第10天

5.网关层的选型

5.1API网关由来

解决的问题: 不用的客户端需要不同数据 客户端需求和每个微服务暴露的细粒度 API 不匹配 客户端的传输协议不同 网关的关注点: 稳定安全:全局性流控,止web攻击,屏蔽工具扫描,黑白名单,证书/加密处理 保证服务高效可用:服务级别限流,降级,熔断,路由与负载均衡,服务过滤、聚合、发现,多级缓存策略

5.2网关的分类

流量网关/业务网关 流量网关:接入所有的流量,并分发给不同的子系统 业务网关:根据业务来分发给不同的业务模块

单节点网关/多节点网关 多节点:使用需要不同业务数据类型(app,web等)

5.3网关的技术选型

常见网关的对比:

T31项目第10天

5.4 spring-cloud中gateway的原理

客户端–>netty server --> route( predict、filter)–> netty-client -->Proxy server (代理服务) 通信模块:Netty

脚本宝典总结

以上是脚本宝典为你收集整理的T31项目第10天全部内容,希望文章能够帮你解决T31项目第10天所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。