[Java]常用API 企业中遇到的个性化的问题, 通过自定义异常进行管理重写构造器可以通过 右键/Generate/Constructor快速生成throw的作用就是抛出异常对象throws用在方法上, 抛出方法内部的异常示例需要强烈提醒的错误用编译时异常问题不太容易出现时使用运行时异常。
[Java]RabbitMQ客户端 将来我们开发业务功能的时候,肯定不会在控制台收发消息,而是应该基于编程的方式。RabbitMQRabbitMQRabbitMQ案例需求: 利用SpringAMQP完成消息的收发在之前的案例中,我们都是经过交换机发送消息到队列,不过有时候为了测试方便,我们也可以直接向队列发送消息,跳过交换机。这种模式一般测试使用,很少在生产中使用。
[Java]异步通信RabbitMQ RabbitMQ是一个高性能的异步通讯组件同步调用与异步调用同步调用的特点同步调用的优势是什么?时效性强,等待到结果后才返回。同步调用的问题是什么?拓展性差性能下降级联失败问题异步调用通常是基于消息通知的方式,包含三个角色消息发送者: 投递消息的人,就是原来的调用者消息接收者: 接收和处理消息的人,就是原来的服务提供者消息代理: 管理、暂存、转发消息,你可以把它理解成微信服务器异步调用优缺点支付服务不再同步调用业务关联度低的服务,而是发送消息通知到Broker。
[Java]微服务之分布式事务 下单业务,前端请求首先进入订单服务,创建订单并写入数据库。购物车服务负责清理购物车信息库存服务负责扣减商品库存下单过程中, 订单服务创建订单, 插入自己的数据库, 执行成功购物车服务, 清理数据库中用户的购物车数据, 执行成功库存服务扣减库存时, 商品库存不够, 那么库存服务就会抛出异常订单创建成功了, 购物车页清理了, 但是库存却没有扣减这就出现了事务的不一致。
[Java]微服务之服务保护 通过线程隔离, 可以对服务起到保护作用, 某一个业务出现问题不会影响其他业务, 但是被隔离的这个业务, 一旦出现问题, 还是会出现业务不可用的问题, 影响用户体验, 所以需要通过后备方案, 处理可能出问题的业务。服务熔断:由断路器统计请求的异常比例或慢调用比例,如果超出阈值则会熔断该业务,则拦截该接口的请求。限流可以降低服务器压力,尽量减少因并发流量引起的服务故障的概率,但并不能完全避免服务故障。请求限流: 也叫流量整形, 限制访问微服务的请求的并发量,避免服务因流量激增出现故障。解决问题的思路有哪些?
[Java]微服务配置管理 代码拆分为微服务后, 每个服务都有自己的配置文件, 而这些配置文件中有很多重复的配置, 并且配置变化后需要重启服务, 才能生效, 这样就会影响开发体验和效率配置管理服务可以帮助我们集中管理公共的配置, 并且nacos就可以实现配置管理服务。
[Java]微服务体系下的用户身份认证方案 GatewayFilter: 路由过滤器,作用于任意指定的路由;默认不生效,要配置到路由后生效GlobalFilter: 全局过滤器,作用范围是所有路由;声明后自动生效两种过滤器的过滤方法签名完全一致:解读全局过滤器的信息定义全局过滤器: 两种过滤器的定义存在差异, 全局过滤器的定义简单一些, 实现GlobalFilter接口即可@Component@Override// 获取请求// 过滤器业务处理。
[Java]网关路由 网关: 就是网络的关口,负责请求的路由、转发、身份校验路由: 前端所有的请求都由网关处理, 网关要判断该请求属于哪个微服务, 这个过程称为路由转发: 路由之后, 网关去注册中心拉取服务列表, 选择一个服务实例, 把请求转发到对应的微服务, 这个过程称为转发身份校验: 校验请求, 解析taoken令牌, 获取用户信息, 拦截不合法的请求, 放行合法的请求, 并且向后传递用户信息优势:有了网关之后, 后端微服务的地址就不需要暴露给前端了, 只暴露网关的地址, 起到保护服务的作用。
[Java]远程调用 OpenFeign 是一个声明式的http客户端,是SpringCloud在Eureka公司开源的Feign基础上改造而来。OpenFeign对Http请求做了优雅的伪装,不过其底层发起http请求,依赖于其它的框架。OpenFeign只会在FeignClient所在包的日志级别为DEBUG时,才会输出日志。方案1: 把OpenFeign客户端封装在每个微服务中, 由服务的开发者进行维护。基于RestTemplate工具的请求, 功能是没问题的, 但是代码十分臃肿。
[Java]微服务拆分2 配置启动项, 启动服务, 测试id: 1654779387523936258。在hmall下新建一个module,命名为trade-service。在hmall下新建一个module,命名为user-service。在hmall下新建一个module,命名为pay-service。在支付服务的PayController中添加一个接口方便测试。解决PayOrderServiceImpl报错。解决OrderServiceImpl报错。添加启动类和配置文件。添加启动类和配置文件。添加启动类和配置文件。
[Java]微服务治理 Nacos是目前企业中占比最多的注册中心组件。它是阿里巴巴的产品,目前已经加入SpringcloudAlibaba中。我们基于Docker来部署Nacos的注册中心,首先要准备MySQL数据库表,用来存储Nacos的数据。消费者需要连接nacos以拉取和订阅服务,因此服务发现的前两步与服务注册一样,后面再加上服务调用。引入nacos discovery依赖。注册中心可以统一管理项目中的所有服务。默认账密: nacos/nacos。
[Java]微服务拆分 集成了各种微服务功能组件,并基于SpringBoot实现了这些组件的自动装配,从而提供了良好的开箱即用体验。comcat服务器的连接数是有限的, 随着并发请求量的上升, 整个系统的响应速度就会变慢。确定的大型项目: 资金充足,目标明确,可以直接选择微服务架构,避免后续拆分的麻烦。随着规模扩大,逐渐拆分。高内聚: 每个微服务的职责要尽量单一,包含的业务相互关联度高、完整度高。低耦合: 每个微服务的功能要相对独立,尽量减少对其它微服务的依赖。单体架构:将业务的所有功能集中在一个项目中开发,打成一个包部署。
[linux]docker项目部署 Docker Compose通过一个单独的docker-compose.ym模板文件(YAML格式)来定义一组相关联的应用容器,帮助我们实现多个相互关联的Docker容器的快速部署。docker命令和 docker-compose文件描述的都是容器的信息, 只是语法不同。docker-compose文件描述信息解读。docker compose的命令格式。
[linux]docker基础 镜像就是包含了应用程序、程序运行的系统函数库、运行配置等文件的文件包。构建镜像的过程其实就是把上述文件打包的过程。镜像分层DockerfileDockerfile就是一个文本文件,其中包含一个个的指令(Instruction),用指令来说明要执行什么操作来构建镜像。将来Docker可以根据Dockerfile帮我们构建镜像。
[linux]docker快速入门 先停掉虚拟机中的MySQL,确保虚拟机已经安装Docker,且网络开通的情况下,执行下面命令安装MySQL。镜像仓库: 存储和管理镜像的平台,Docker官方维护了一个公共仓库: DockerHub.当我们利用Docker安装应用时,Docker会自动搜索并下载应用镜像(image)。Docker会在运行镜像时创建一个隔离环境,称为容器(container)。镜像不仅包含应用本身,还包含应用运行所需要的环境、配置、系统函数库。镜像地址可能会变更,如果失效可以百度找最新的docker镜像。
[瑞吉外卖]-10前后端分离 使用Swagger你只需要按照它的规范去定义接口及接口相关的信息,再通过Swagger衍生出来的一系列项目和工具就可以做到生成各种格式的接口文档,以及在线接口调试页面等等。概念: 前后端分离开发,就是在项目开发过程中,对于前端代码的开发由专门的前端开发人员负责,后端代码则由后端开发人员负责。接口: API接口就是一个http的请求地址, 主要就是定义: 请求路径、请求方式、请求参数、响应数据等内容。YApi 是高效、易用、功能强大的 api 管理平台,旨在开发、产品、测试人员提供更优雅的接口管理服务。
[Nginx]快速入门 Nginx是一款轻量级的web 服务器/ 反向代理服务器/ 电子邮件(IMAP/POP3)代理服务器。其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好中国大陆使用nginx的网站有:百度、京东、新浪、网易、腾讯、淘宝等。Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点开发的第一个公开版本0.1.0发布于2004年10月4日。官网:nginx。