Java框架
文章平均质量分 87
主要介绍关于框架的一些知识
学编程的火山小同学
这个作者很懒,什么都没留下…
展开
-
关于RocketMQ的启动时遇到的一些问题及解决方法
注意我们在启动的时候需要配置broker.conf,设置启动后运行的端口和IP地址,然后使用nohup sh bin/mqbroker -c conf/broker.conf &使用该配置文件后台启动RocketMQ,到此为止namesrv和broker都顺利启动了。使用sudo权限成功修改该文件,然后运行. /etc/profile命令让该文件起作用。对于RocketMQ的启动需要配置java环境,所以我们需要在linux上下载jdk,并配置JAVA_HOME。原创 2023-06-09 15:06:04 · 3431 阅读 · 0 评论 -
SpringBoot集成RocketMQ
MQ(Message Queue)是一种跨进程的通信机制,用于传递消息。使用MQ之后可以实现异步解耦和流量消峰的功能。在微服务项目中是一个常用的组件。RocketMQ的使用需要先启动RocketMQ的服务,这样才可以在后端连接RocketMQ并使用RocketMQ传递消息。原创 2023-07-14 15:43:45 · 6724 阅读 · 1 评论 -
微服务中使用Sentinel实现服务容错
在微服务架构中,我们将业务拆分成一个个的服务,服务与服务之间可以相互调用,但是由于网络原因或者自身的原因,服务并不能保证服务的100%可用,如果单个服务出现问题,调用这个服务就会出现网络延迟,此时若有大量的网络涌入,会形成任务堆积,最终导致服务瘫痪。由于服务于服务之间的依赖性,故障会传播,会对整个微服务系统造成灾难性的后果,这就是服务故障的”雪崩效应“。原创 2023-07-12 11:14:55 · 204 阅读 · 1 评论 -
SpringBoot集成Redis的操作流程
在yml文件中配置了redis后,此时启动会报错,因为我们在项目中引入redis是做缓存的作用,此时没有引入MySql数据库,但是启动redis之后还是会加载数据库需要使用的一些类,因此会报错。我们在前端使用URL两次访问该方法,对于前端传来的URL,如果是从缓存中查询,那么我们打印一串*********,然后打印查询到的数据,如果是从数据库中查询,我们直接打印查询到的数据。我们还设置了redis运行的ip地址,端口号,数据库,超时时间,以及最大连接数,最大阻塞等待时间,最大空闲连接等参数。原创 2023-07-17 10:32:39 · 169 阅读 · 0 评论 -
关于Spring框架的理解
IoC(Inversion of Control:控制反转)是一种设计思想,指的是将原本程序中手动创建对象的控制权,交给Spring框架来管理。对于传统的开发模式,如果一个类A依赖B,若是在A中需要使用到B的方法,那就需要在A中new一个B出来,然后再调用B的方法。但是如果使用了IoC的思想,则是是类B的对象注入到容器中,等到A需要B时,直接从IoC容器获取该对象即可。这样的思想能够使得对象之间的耦合度或者说依赖程度降低。原创 2023-06-10 14:38:33 · 78 阅读 · 0 评论 -
SpringCloud关于远程调用Feign的知识点
后端接收前端传输的消息,需要使用到@RequestMapping接收映射的URI路径,使用@RequestParam和@RequestVariable和@RequestBody接收参数,对于多个参数的URI,可以使用@RequestParam接收参数,对于单个参数可以不用加注解,直接在方法中使用同名参数接收即可。对于对象的传递,使用@RequestBody接收。对于注册发现的微服务架构而言,fegin接口下的方法对应的URL是通过value对应的微服务的ip+端口号的地址+URL映射路径访问对应功能的。原创 2023-07-05 14:31:45 · 1568 阅读 · 0 评论 -
关于SpringBoot框架的理解
SpringBoot通常会有一个Application的入口类,在该类中会有一个main方法作为java应用的入口方法,在main方法中使用SpringApplication.run方法即可启动SpringBoot应用项目。@SpringBootApplication是SpringBoot的核心注解,它包含了@Configuration和@EnableAutoConfiguration以及@ComponentScan这三个注解。原创 2023-06-19 21:50:50 · 127 阅读 · 0 评论 -
微服务的Gateway网关简介
在微服务架构中,一个系统会被拆分为很多个微服务。客户端如果要去调用这么多的微服务,如果没有网关的存在,我们只能在客户端记录每个微服务的地址,然后分别去调用。这样会显得代码较为冗余,并且也会十分复杂,对于认证或者一些其他的统一的功能在每个服务都需要编写一次,较为麻烦。但是如果加入API网关,使得系统有统一的入口,他就可以为客户端提供统一的服务,一些诸如认证、鉴权、监控、路由转发等也可以在这里实现。原创 2023-07-13 14:26:20 · 198 阅读 · 1 评论 -
使用Seata实现分布式事务
Seata的设计目标是对业务无侵入,因此从业务无侵入的两阶段提交方案着手,在传统两阶段提交的基础上演进。他把一个分布式事务理解成一个包含了若干分支事务的全局事务。全局事务的职责是协调其下管辖的分支事务达成一致,要么一起成功提交,要么一起失败回滚。此外,通常分支事务本身就是一个关系数据库的本地事务。Seata主要由三个重要组件组成,其中TC(Transaction Coordinator)事务协调器,用来管理全局的分布式事务的状态,用于全局性事务的提交和回滚。原创 2023-07-17 10:17:55 · 817 阅读 · 1 评论 -
微服务实现服务调用的负载均衡的方法
我们可以使用接下来的代码获得nacos中注册的微服务,在下面的代码中,首先是使用discoveryClient获得了nacos中的微服务,然后使用随机函数获得当前使用的微服务,然后使用微服务的主机和端口拼接微服务的URL,进而通过restTemplate使用URL访问其他的微服务。//通过restTemplate调用商品微服务对于自定义的负载均衡,我们可以看到,代码的编写较为复杂且冗余,不利于开发。原创 2023-07-11 16:24:24 · 583 阅读 · 1 评论 -
微服务中的Sleuth链路追踪技术
在大型系统的微服务架构中,一次请求往往需要涉及到多个服务,这些服务模块可能是不同的团队开发、可能使用不同的编程语言实现,横跨不同的数据中心,这就意味着这种架构形式也会存在一些问题。如何快速发现问题并判断故障影响范围,如何梳理服务依赖以及依赖的合理性,以及如何分析链路性能问题和实时容量规划将是一个问题。因此在微服务项目中引入了分布式链路追踪解决这种问题,讲一次分布式请求还原成调用链路,进行日志记录,性能监控并将一次分布式请求的调用情况集中展示。原创 2023-07-14 12:36:45 · 222 阅读 · 1 评论