![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
T31训练营
shine_wang
个人简介
展开
-
T31训练营 DAY14
Spring Cloud Gateway的路由配置的功能是以Spring WebFlux中的Handler Mapping为基础实现的。Spring Cloud Gateway也是由许多的路由谓词工厂组成的。当Http Request请求进行谓词匹配。匹配成功则进行下一步处理,否则谓词失败直接返回错误信息。Spring Cloud Gateway内置了一系列的路由谓词工厂,以便我们可以在开发中灵活的使用Gateway进行请求转发。路由谓词工厂的作用是:符合Predicate的条件,就使用该路由的配置原创 2021-11-08 12:24:27 · 178 阅读 · 0 评论 -
T31训练营 DAY13
网关提供API全托管服务,丰富的API和路由规则动态管理功能,辅助管理大规模的API,以降低管理成本和安全风险,包括路由转发、协议适配、安全认证、访问控制、熔断限流等功能。一般来说,网关对外暴露URL或者接口等路由信息。网关的核心是谓词、路由和Filter过滤器链。Spring Cloud Gateway启动时基于Netty Server监听一个指定的端口(该端口可以通过server.port属性自定义)。当客户端发送一个请求到网关时,网关会根据一系列Predicate的匹配结果来决定访问哪个Route原创 2021-11-08 12:11:13 · 620 阅读 · 0 评论 -
T31训练营 DAY12
Q:对于枚举类型,接口定义中使用int还是String,比如表示移动端系统类型:1.使用int,0代表Android,1代表iOS,优点是不会拼写错误,缺点是不直观2.使用String,约定使用“Android”、“iOS”,优点是直观,不容易传错,缺点是容易拼写错误、大小写不一致A:数据库存储字段类型同样有这个问题,对于比较固定、长度较短的,建议直接使用字符串。Q:服务端的字段为int类型,初始时客户端没有这个数据需要传空,下列方式哪种好:1.定义一个整型值(如-1)表示空2.传null3原创 2021-11-08 12:08:49 · 165 阅读 · 0 评论 -
T31训练营 DAY11
移动API网关在移动开发平台中的作用是统一接收前端HTTP请求,并按设置的策略转发给具体的后端服务进行处理。服务在网关中以API的形式对外提供服务,网关既是开放入口又是访问屏障,这样服务就被网关保护起来,对所有的调用者透明。主要包括以下功能:安全信道:进行身份鉴别、标识,保证用户数据完整性和保密性,抗抵赖和防报文重放。 访问控制:令牌和会话检查、防重复提交、防报文重放、防SQL注入和防恶意访问,能够对非法IP/UID封禁。 限流熔断:核心业务失效快速响应,避免请求堆积,非核心业务降级处理,保证核心业原创 2021-11-06 10:00:00 · 184 阅读 · 0 评论 -
T31训练营 DAY10
随着分布式微服务架构逐步落地,原本单一的系统拆分成众多独立的微服务,服务的粒度更加精细。当外部的请求访问微服务时,都会遇到以下问题:需要对每个请求进行鉴权校验和访问控制 如果传输协议不一致,需要转换协议 如果调用水平扩展的微服务,需要进行负载均衡 一旦请求流量超过系统承受的范围,需要进行限流 接入业务流量后,如何更合理地将流量路由到合适的服务中所以,微服务化之后系统需要统一的出入口。移动API网关作为微服务体系中的核心基础设施,是连通前后端的门户和纽带,能够很好的解决路由、协议适配及统一接原创 2021-11-06 01:22:54 · 159 阅读 · 0 评论 -
T31训练营 DAY9
补充几点最近学习架构图设计的心得:以沟通范围来确定作图边界架构五视图逻辑架构图:用于面向产品、运营等所有非技术人员以及管理者的沟通约定方向系:北 - 用户侧,请求进入方向,如客户端南 - 基础设施,如数据库西 - 追踪、监控东 - 外部依赖,第三方接口方向 - 层级 - 模块颜色字体线条、线框、实线、虚线、箭头指向开发架构:组件图、包图、类图运行架构:协作图(时序图、状态图、活动图),可以没有严格的作图规范,反映上下游数据和逻辑流向,关注局部而不是整体物理架构原创 2021-11-04 01:44:28 · 128 阅读 · 0 评论 -
T31训练营 DAY8
JDK7引入了try-with-resources的语法,可以自动关闭在try括号内打开的实现Closeable或者AutoCloseable接口的资源。其实try-with-resource机制是一种语法糖,其底层实现原理仍然是try{}catch(){}finally{}写法,最先关闭最后打开的资源,逐个资源关闭,最先打开的资源最后关闭,先关闭的资源抛出的异常,会被后关闭的资源抛出的异常抑制(Suppressed),最后只抛出最后一个异常,可以通过getSuppressed()方法获得全部关闭连接的异常原创 2021-11-02 09:00:00 · 114 阅读 · 0 评论 -
T31训练营 DAY7
Java开发手册(嵩山版) > 二、异常日志 > (二) 异常处理 (第30页)不足1:4. 【强制】捕获异常是为了处理它,不要捕获了却什么都不处理而抛弃之,如果不想处理它,请将该异常抛给它的调用者。最外层的业务使用者,必须处理异常,将其转化为用户可以理解的内容。本条规约表述不够清晰。什么是处理?常见的处理方式有哪些?什么是不想处理?常见的异常处理方式有:1.记录日志2.尝试恢复3.降级使用默认值4.转换成上层异常类型5.不处理、忽略6.以上几种的组合有些原创 2021-11-01 18:15:00 · 203 阅读 · 0 评论 -
T31训练营 DAY6
【强制】不要在 finally 块中使用 return。说明:try 块中的 return 语句执行成功后,并不马上返回,而是继续执行 finally 块中的语句,如果此处存在 return 语句,则在此直接返回,无情丢弃掉 try 块中的返回点。进一步解释:return语句会把返回值放到一个临时变量中,在finally中修改原变量的值并不能改变已经放入方法返回值中的变量值,而当在finally中使用return,将改变try中的return语句已经放入方法返回值中的变量值。catch同理。.原创 2021-11-01 00:42:00 · 83 阅读 · 0 评论 -
T31训练营 DAY5
谈谈数据访问层框架(2)本文延续上一篇文章,继续谈谈常见的Java数据访问层框架的优缺点。tkMybatis优点:对MyBatis Generator插件生成单表模板的进一步封装,解决了每次改动数据表结构后的手工同步工作,单表操作几乎无需写额外代码或配置文件。缺点:和MyBatis Generator插件一样,提供了Criteria支持代码层面的查询条件组装,大规模使用容易造成使用不当。推荐指数:4星,推荐替代简单的单表操作,复杂查询还是用Mapper.xml中管理Mybat原创 2021-10-30 18:30:00 · 133 阅读 · 0 评论 -
T31训练营 DAY4
谈谈数据访问层框架(1)上一节课程中,谈及了ORM的一些规约,有同学提问对于Mybatis Plus这类自动生成SQL的Mybatis扩展如何看,本文进一步展开,谈谈常见的Java数据访问层框架。Spring JDBCTemplate优点:对JDBC的简单封装,易学易用缺点:需要代码层面拼装SQL和做查询结果与对象的映射推荐指数:3星,小型使用Spring框架开发的项目替代JDBC时推荐使用MyBatis优点:简单直观的数据库访问和对象映射工具,基本上看下官方文档就能上手原创 2021-10-30 02:25:54 · 200 阅读 · 0 评论 -
T31训练营 DAY3
前一节课后思考:什么是架构图,如何通过架构图清晰地表述系统的组件和决策?4+1视图4+1视图由Philippe Kruchten于1995年在《IEEE Software》上发表了题为《The 4+1 View Model of Architecture》的论文提出,随着RUP和UML而普及。4+1视图包括逻辑视图、开发视图、过程视图、物理视图以及把四大视图串联起来的场景。逻辑视图:使用面向对象的分解方法,逻辑架构主要支持功能需求,也就是系统应该提供怎样的服务给用户。当采用面向对象的设计方法时原创 2021-10-28 02:45:35 · 220 阅读 · 0 评论 -
T31训练营 DAY1
今天是31天孤尽代码规范与效能提升训练营第一课,先谈谈我报名的缘由。项目组今年进来了7名应届生,如何培训让新人能够尽快的成长,我设想开展一个实践型的业务项目来驱动,刚好和开课吧新开的孤尽班不谋而合。记得前几年在云栖大会现场与正在签售新书《码出高效》的孤尽老师有过一面之缘,所以报名取取经。孤尽老师现任开课吧首席技术官,前阿里P8,在阿里期间任研发工程师、架构师、技术主管等角色,在大数据、高并发、研发效能等领域有着长期深耕经验,同时也是阿里巴巴代码规约主要编写者。开班前完成了开营,孤尽老师介绍了课程的背原创 2021-10-26 18:37:39 · 315 阅读 · 0 评论 -
T31训练营 DAY2
今天是第一次实践,课程项目的目标是构建一个类似12306的铁路订票系统,12306是公众都有使用经验的系统,2011年上线初期,常常被汹涌而来的访问量压垮,受到了公众的吐槽,但背后的逻辑的复杂性是公众无法获知的。应该说铁路订票系统是一个业务足够复杂来实践DDD和高并发架构的好案例,如果不熟悉业务,做成简单的增删改查,未免可惜。遗憾的是,课程未提供需求参考文档,所以花了一天简单整理了一些关键的概念供项目组参考,事实上,下面所描述的概念,也仅仅是简化后的一小部分。票价票价计算的各种因素在业务实现上分原创 2021-10-27 20:31:08 · 255 阅读 · 0 评论