![](https://img-blog.csdnimg.cn/20190918140129601.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Java框架
文章平均质量分 70
Java框架,包括但不限于spring、SpringBoot、SpringCloud、Mybatis等等
诗与猿方
一个乐于分享、乐于交流的互联网从业者,欢迎关注与私信
展开
-
SpringCloud_服务调用_Ribbon负载算法简介与如何替换(二)
IRule:根据特定算法中从服务列表中选取一个要访问的服务IRule接口有多种实现:Ribbon自带的7种负载规则com.netflix.loadbalancer.RoundRobinRule 轮询com.netflix.loadbalancer.RandomRule 随机com.netflix.loadbalancer.RetryRule 先按照RoundRobinRule的策略获取服务,如果获取服务失败则在指定时间内会进行重试,获取可用的服务。原创 2023-05-16 17:45:30 · 496 阅读 · 0 评论 -
SpringCloud_服务调用_Ribbon概述以及使用(一)
Ribbbon是一套客户端负载均衡的工具提供客户端的软件负载均衡算法和服务调用地址:目前这几个部分还在大规模使用。原创 2023-05-16 17:09:35 · 434 阅读 · 0 评论 -
SpringCloud_服务注册中心_Consul(八)
官网:https://developer.hashicorp.com/consul/docs/intro是Go语言写的Consul是一套开源的分布式服务发现和配置管理系统,由HashiCorp公司用Go语言开发。提供了微服务系统中的服务治理、配置中心、控制总线等功能。这些功能中的每一个都可以根据需要单独使用,也可以一起使用以构建全方位的服务网络,总之Consul提供了一种完整的服务网格解决方案。用处:服务发现健康检测KV存储多数据中心可视化Web界面中文操作手册。原创 2023-05-15 15:39:19 · 522 阅读 · 0 评论 -
SpringCloud------zookeeper代替Eureka,zookeeper版本冲突解决(七)
SpringCloud整合zookeeper代替Eureka注册中心zookeeperzookeeper是一个分布式协调工具,可以实现注册中心功能关闭Linux服务器防火墙后,启动zookeeper服务器zookeeper服务器取代Eureka服务器,zk作为注册中心首先对已经安装zookeeper的Linux系统防火墙进行关闭打印输出中显示说明显示防火墙已经关闭。原创 2023-05-15 11:07:21 · 433 阅读 · 0 评论 -
SpringCloud------Eureka修改实例显示信息、服务发现Discovery、自我保护(六)
1.actuator微服务信息完善2.服务发现Discovery3.Eureka自我保护。原创 2023-05-06 17:23:17 · 630 阅读 · 0 评论 -
SpringCloud------Eureka集群版整合生产(集群)以及消费(五)
集群避免单点故障的发生。服务注册:将服务信息注册进服务中心服务发现:从注册中心上获取服务信息实质:存key服务名,取value调用地址1.先启动eureka注册中心2.启动服务提供者payment支付服务3.支付服务启动后台会把自身信息(比如服务地址以别名方式注册进eureka)4.消费者order服务在需要调用接口时,使用服务别名去注册中心获取实际的RPC远程调用地址5.消费者获得调用地址后,底层实际是利用HttpClient技术实现远程调用。原创 2023-05-04 18:00:14 · 409 阅读 · 0 评论 -
SpringCloud------Eureka单机版整合生产以及消费(四)
Eureka 读音:有瑞卡Eureka基础知识单机构架步骤集群构建步骤autuator微服务信息完善服务发现Discoveryeureka自我保护。原创 2023-05-04 15:21:07 · 556 阅读 · 0 评论 -
SpringCloud------热部署(三)
4.Update the value of 点击 ctrl+shift+alt+/ 选中Registry app.running结尾的value✔。compiler.automake.allow.when.app.running结尾的value✔。点击 ctrl+shift+alt+/ 选中Registry。Devtools是热部署插件,引入热部署实现高效自测。第一步:添加依赖,在子工程pom文件中。第二步:在父工程中,加入插件配置。第三步:开启IDEA功能。原创 2023-05-04 11:50:58 · 666 阅读 · 0 评论 -
SpringCloud------代码demo(二)
编码实操以订单——支付微服务模块作为基础,开始逐渐扩充。原创 2023-05-04 11:37:57 · 1795 阅读 · 0 评论 -
MybatisPlus------MyBatisX插件:快速生成代码以及快速生成CRUD(十二)
MyBatisX插件是IDEA插件,如果想要使用它,那么首先需要在IDEA中进行安装。原创 2023-03-14 17:42:32 · 10337 阅读 · 5 评论 -
MybatisPlus------多数据源环境(十一)
生产环境中常常会存在多个数据源。比如读写分离、一主多从、混合模式等等。首先再pom文件中需要引入依赖:多数据源所需要使用到的依赖原创 2023-03-07 17:41:49 · 535 阅读 · 0 评论 -
MybatisPlus------代码生成器(十)
如果需要使用swagger,也需要引入swagger的依赖。生成代码:制定相关配置。原创 2023-02-23 14:50:30 · 94 阅读 · 0 评论 -
MybatisPlus------插件(分页、乐观锁)通用枚举类(九)
param page Mybatis-Plus所提供的分页对象,必须位于第一个参数的位置。在具体的sql实现中,不需要编写对Page的处理,会通过分页拦截器自动处理。@Test// 设置当前页,以及页面显示条数.selcetPage2(page, "测试哈哈哈哈");// 获取查找结果// 获取总页数// 获取总记录数//是否有下一页//是否有上一页//自定义分页sql// 通过name查询信息,并分页。原创 2023-02-23 14:15:27 · 408 阅读 · 0 评论 -
MybatisPlus------UpdateWrapper、condition、LambdaQueryWrapper(八)
UpdateWrapper用于更新sql,condition用于动态组装条件,判断条件是否成立,才拼装这个sql。原创 2023-02-22 17:45:39 · 2642 阅读 · 0 评论 -
面试题------同名Bean会报错吗?结合@Autowired与@Resource详解
本文会详细介绍同名Bean是否会报错,并结合@Autowired与@Resource注解,介绍不同情况下报错原因,以及@Autowired与@Resource的区别。原创 2023-02-22 15:12:30 · 1011 阅读 · 0 评论 -
MybatisPlus------条件构造器Wrapper以及QueryWrapper用法(七)
Wrapper:条件构造器抽象类,最顶端父类AbstarctWrapper:用于查询条件封装,生成sql的where条件。QueryWrapper:查询条件封装(可以用于查询、删除,更新)UpdateWrapper:Update条件封装AbstractLambdaWrapper:使用Lambda语法LambdaUpdateWrapper:用于Lambda语法使用的查询WrapperLambdaQueryWrapper:用于Lambda语法使用的更新Wrapper。原创 2023-02-17 16:58:33 · 2028 阅读 · 0 评论 -
MybatisPlus------常用注解和逻辑删除以及设置统一前缀以及主键生成策略(六)
在使用MybatisPlus的过程中时,实力类的Mapper继承BaseMapper,此时不要添加@TableName注解也能够对表数据实现增删改查。原创 2023-02-17 11:00:47 · 2275 阅读 · 0 评论 -
MybatisPlus------Service层IService以及ServiceImpl(五)
就像Mapper可以继承BaseMapper一样,MybatisPlus在Service层也做了相应的增强。其中Service接口可以继承IService接口,ServiceImpl类可以继承ServiceImplServiceImpl中的方法要比BaseMapper中功能更加丰富。原创 2023-02-15 18:37:48 · 2745 阅读 · 1 评论 -
MybatisPlus------自定义SQLxml配置文件地址以及编写(四)
BaseMapper提供的增上改查功能还是过于简单,因此如果需要实现复杂SQL还需要自定义。配置xml文件。首先需要指定xml文件位置。原创 2023-02-15 18:13:56 · 2246 阅读 · 0 评论 -
MybatisPlus------BaseMapper<T>删除方法详解(三)
MybatisPlus框架中,创建的mapper接口,需要继承BaseMapper接口,T代表与表对应的实体类。BaseMapper接口中提供了对单表进行增删改查的基础方法。下面分别介绍四种:> idList);原创 2023-02-15 16:06:23 · 2933 阅读 · 0 评论 -
MybatisPlus------application文件配置新增SQL打印以及测试类编写(二)
mybatisplus增加日志打印,具体打印执行的SQL语句。原创 2023-02-15 14:47:00 · 612 阅读 · 0 评论 -
MybatisPlus------pom文件以及application.yml文件配置(一)
背景:创建SpringBoot与MybatisPlus整合的项目。关于pom文件则需要引入MybatisPlus的stater以来以及mysql的驱动依赖。原创 2023-02-14 11:15:20 · 1431 阅读 · 0 评论 -
RabbitMQ------其他知识点(幂等性、优先级队列、惰性队列)(九)
用户对于统一操作发起的一次请求或者多次请求的结果是一致的,不会因为多次点击而产生副作用。同一次还款,通过多次点击不会生成多条还款记录,一个人的注册按钮,多次点击不会生成多条用户信息。原创 2022-12-01 20:19:11 · 1005 阅读 · 2 评论 -
RabbitMQ------发布确认高级(消息回调、回退、备份交换机)(八)
可能由于某些意外情况,导致RabbitMQ重启,在RabbitMQ重启过程中,生产者投递消息失败,导致消息丢失。如果才能够保证RabbitMQ的消息可靠性呢?可能出现两种问题的情况。1.交换机接收不到请求2.队列接收不到请求解决逻辑:当交换机确认发送消息后,将消息从内存中删除,未能删除的消息,通过定时任务,再次发送给交换机。原创 2022-11-26 19:10:55 · 1038 阅读 · 0 评论 -
RabbitMQ------延迟队列(整合SpringBoot以及使用延迟插件实现真正延时)(七)
延迟队列,内部是有序的,特点:延时属性。简单讲:延时队列是用来存放需要在指定时间被处理的元素队列。是基于死信队列的消息过期场景。原创 2022-11-20 18:53:18 · 1269 阅读 · 0 评论 -
RabbitMQ------死信队列(消息超时、达到最大长度、消费拒绝)(六)
死信:无法被消费的消息,一般情况下:生产者将消息投递到broker或者直接到queue中,消费者从queue取出消息进行消费,但是某些时候,由于特定原因导致queue中的某些消息无法被消费,这样的消息如果没有后续处理,就会成为死信消息,有了死信消息就产生了死信队列。当消息消费发生异常时,将消息投入死信队列中。比如:用户在商城下单成功并点击去支付后,在指定时间未支付时自动失效。原创 2022-11-12 19:49:05 · 2058 阅读 · 1 评论 -
RabbitMQ------交换机(fanout(扇出)、direct(直接)、topic(主题))(五)
交换机是rabbitMq的一个重要组成部分,生产者先将消息发送到交换机,再由交换机路由到不同的队列当中。之前都没有指定交换机。传一个空串,默认会走AMQP default默认交换机。一个消息只能被消费一次,为了满足一个消息被不同消费者,各消费一次的需求,可以将同一个消息指定交换机,有交换机路由(绑定)到不同的队列。将消息传递给多个消费者(发布/订阅模式)原创 2022-11-12 17:40:49 · 784 阅读 · 0 评论 -
RabbitMQ------发布确认(单个确认、批量确认、未确认)(四)
confirm模式最大的好处在于,它是异步的,一旦发布一条消息,生产者应用程序就可以在等信道返回确认的同时,继续发送下一条消息,当消息最终端得到确认之后,生产者应用便可以通过回调方法来处理该确认消息,如果RabbitMQ因为自身内部错误导致消息丢失,就会发送一条nack消息,生产者应用程序同样可以再回调方法中处理该nack消息。意味着生产者发布一个消息后,需等待确认结果,才能够发布下一个消息。2.确认成功后,将消息移除,则容器中剩下的都是未确认的消息。1.发送消息时,将消息和消息标记,添加到map中。原创 2022-11-06 19:47:05 · 1245 阅读 · 0 评论 -
RabbitMQ------持久化与不公平分发、预取值(三)
默认情况下,RabbitMQ退出或由于某种原因崩溃时,它忽视队列和消息,除非告知它不要这么做。。原创 2022-11-04 22:37:48 · 324 阅读 · 0 评论 -
RabbitMQ------简单队列模式以及工作队列模式以及消息应答的方式(三)
RabbitMQ------简单队列模式以及工作队列模式以及消息应答的方式(三)创建maven项目,导入依赖。原创 2022-10-27 22:48:18 · 700 阅读 · 0 评论 -
RabbitMQ------安装RabbitMQ以及开启web管理页面(二)
1.下载安装前提,有erlang语言的环境。2.将erlang安装包、以及rabbitMQ安装包上传至linux服务器,比如/usr/bin/software目录下3.安装文件,分别安装以下顺序安装4.重用命令(按照以下顺序执行)添加开机启动RabbitMQ服务启动服务查看服务状态在输出结果中 : Active:active(running)表示已启动停止服务(选择执行),(开启插件,需要先关闭服务)安装完成,服务重启后,会有一个后台管理界面。原创 2022-10-26 22:25:26 · 1405 阅读 · 0 评论 -
RabbitMQ----各个MQ的优劣以及RabbitMQ名词解释原理(一)
MQ(message queue),从字面意思上看,本质是个队列,遵循先入先出原则,只不过队列中存放的内容是message而已,还是一种跨进程的通信机制,用于上下游传递信息。在互联网架构中,MQ是一种非常常见的上限由“”的消息通信服务,使用MQ之后。消息发送上游只需要依赖MQ,不用依赖其他服务。原创 2022-10-26 21:46:54 · 577 阅读 · 0 评论 -
Java------synchronized理解
synchronized是一个排它锁,既能够锁方法,又能够锁代码块。用于实现线程同步,多个线程依次获取资源。原创 2022-10-11 23:01:33 · 192 阅读 · 0 评论 -
Dubbo学习记录------快速入门(一)
Container:服务运行容器Provider:服务提供者Consumer:服务消费者Registry:服务注册与发现中心Monitor:监控器,统计服务的调用次数和调用时间的监控中心【Provider】—》(1.register)【Registry】:服务提供者注册到注册中心服务消费者去注册中心订阅【Registry】—》(3.notify)【Consumer】:注册中心告知消费者订阅成功,能够找到对应的服务提供者。原创 2022-10-09 09:18:30 · 234 阅读 · 0 评论 -
(三)Mybatis------引入Mapper接口以及传入各种参数类型
此时返回值类型就不能用resultType,而使用resultMap,并且值为resultMap标签中的id值原创 2022-08-10 22:15:49 · 1523 阅读 · 0 评论 -
Spring事务------事务隔离级别以及编程式事务
PlatformTransactionManager类似JDBC规范,各个不同的实现类,就类似各个数据库厂商对不同数据库做的不同的jdbc实现(数据库驱动)。如果在Spring使用的是jdbc、或者是jdbcTemplete,做事务管理是它的实现类就是DataSourceTranscationManger。第二个组件:TransactionDefinition(事务定义),用于描述事务的具体的规则,或者叫属性。利用AOP的思想,在Spring中配置,或者在XML中配置的。事务声明写在代码中,耦合度较高。..原创 2022-08-08 22:29:54 · 449 阅读 · 0 评论 -
Java------Stream流式编程高级API【mapTo、Collectors】(五)
折叠操作又称为规约操作,是从一系列输入元素中,通过组合操作组成单个摘要结果。比如:查找一组数字的和、最大值、最小值、个数等。常用的折叠操作:以上为了方便对纯数字的流进行处理。提供了。通过Stream接口中的三个方法可以得到这三个对象。...原创 2022-08-02 21:50:45 · 574 阅读 · 0 评论 -
Java------Stream流式编程常用API【limit,skip,concat,distinct,sorted】(四)
distinct()去重方法,对流的元素进行去重操作,使用equals()、hashCode()方法判断元素是否相等,重复的元素则放弃,它是一个。,对流中的元素进行排序,支持自然排序和比较器排序,建议使用比较器排序。limit()方法实现截取流的前n个元素组成一个新流,n小于元素个数则截取n个元素,n大于等于元素个数则取整个集合它是一个。skip()跳过n个元素,剩余元素组成一个新流,如果n大于等于集合个数则生成一个空流。示例2:只输出最后两个,此时limit大于5,则都不会输出。示例1:输出流的前三个,.原创 2022-08-02 19:47:19 · 389 阅读 · 0 评论 -
Zookeeper------简介与基本概念解释(一)
Zookeeper使用场景作为分布式系统的分布式协同服务。分布式系统定义分布式系统是同事跨越多个物理主机,独立运行的多个软件组成的系统。分布式系统的缺点在于如何解决节点之间的信息同步和共享。依赖于服务进程之间的通信。...原创 2022-08-02 10:51:54 · 215 阅读 · 0 评论 -
(二)Mybatis------helloWorld示例加Log4j日志以及多数据源配置
1.引入log4j的依赖2.在resources目录下新建log4j.xml文件,其中“http://jakarta.apache.org/log4j/”地址会报红,报异常,但是这个并不影响程序执行。日志的级别:FATAL(致命)>ERROR(错误)>WARN(警告)>INFO(信息)>DEBUG(调试)STDOUT是standard output的缩写,意思是标准输出,对于Java程序来说,打印到标准输出就是打印到控制台。一套代码往往对应多个不同数据库服务器环境,使用数据库连接参数也不同,建议原创 2022-06-23 17:08:49 · 297 阅读 · 0 评论