- 博客(382)
- 资源 (1)
- 收藏
- 关注
原创 Spring Cloud Config、Apollo、Nacos和Archaius对比
优点:Spring Cloud Config为微服务提供了集中化的配置管理,支持基于Git的分布式配置中心,可以配合Spring Cloud使用,提供动态刷新配置的功能。Apollo是携程框架部门研发的开源配置管理中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性。优点:集中化管理不同环境、不同集群的配置,配置修改后能够实时推送到应用端,具备完善的权限、流程治理等特性,适用于微服务配置管理场景。界面友好,易于使用。缺点:尚无明确提及。
2023-09-09 06:10:10
830
原创 ChatGPT不到1分钟生成全部代码,你就说慌不慌吧?
ChatGPT不到1分钟生成全部代码,你就说慌不慌吧?如何使用ChatGPT快速生成SpringBoot集成Dubbo的完整案例
2023-05-10 18:58:16
42479
35
原创 SpringBoot集成Redis—缓存穿透解决方案与哨兵模式实战
本篇注重的是SpringBoot集成Redis中, 缓存穿透解决方案和哨兵模式实战部分,关于主从复制和哨兵机制的原理部分,会在后面的redis相关课程当中给大家详细分析。
2023-05-07 10:14:26
1016
4
原创 SpringBoot热部署插件原理分析及实战演练
SpringBoot热部署工具devtools。除了前面提到的修改日志关闭、关闭thymeleaf缓存、排除加载目录外,还可以自定义重启类加载器、远程调试等特性,大家感兴趣可以自行研究。
2023-05-04 17:35:55
1768
11
原创 SpringBoot事务管理-5个面试核心类源码刨析
简单的事重复做,你就是专家;重复的事用心做,你就是赢家。在开始讲解SpringBoot事务之前,我们先来整体回顾下事务的概念及特性,便于我们了解SpringBoot是如何解决事务相关问题的,另外这部分也是面试必考内容。需要学习交流的可入群,大厂10年+大佬持续分享优质技术内容!带你深入技术腹地,学习硬核技术!
2023-05-01 11:04:54
1478
2
原创 MyBatis凭什么征服SpringBoot ?
众所周知,MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。通过xml映射到接口,使开发者使用接口的方式就能够轻松的映射、解析、执行xml中的SQL。MyBatis 消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。这样做的目的在于降低代码耦合度,大大简化了数据库操作中的常用操作,修改SQL更加容易,代码也更清晰易维护。MyBatis允许直接编写原生的SQL语句,提供了很高的灵活性。我们可以根据需要编写任何复杂的SQL,从而满足各种业务需求。
2023-04-30 09:14:00
1574
5
原创 SpringBoot核心配置全面总结
Spring Boot的核心配置文件用于配置Spring Boot程序,文件名字必须以application开始。这个既是底层源码的强制要求,也是SpringBoot的一种代码规约,有助于在开发层面利于代码规范管理。
2023-04-29 07:35:56
2404
5
原创 SpringBoot项目结构及依赖技术栈
🌈 前面我们学习了SpringBoot快速入门案例,本节我们通过POM文件和项目结构分析两部分内容了解下关于SpringBoot的一些配置说明,以便全面了解SpringBoot项目结构组成及依赖技术栈。
2023-04-28 09:00:38
1526
3
原创 如何快速搭建一个SpringBoot项目
前面我们了解了SpringBoot背景和特点,本节我们主要介绍如何快速构建一个SpringBoot项目,以此来提升日常开发效率。SpringBoot是搭建应用的手脚架,由Spring公司的核心团队在2013年开始研发、2014年4月发布第一个版本的全新开源的轻量级框架。它基于Spring4.0设计,不仅继承了Spring框架原有的优秀特性,而且还通过简化配置来进一步简化了Spring应用的整个搭建和开发过程。另外SpringBoot通过集成大量的框架使得依赖包的版本冲突等问题得到了很好的解决。
2023-04-27 06:48:49
1604
6
原创 服务提供者 Eureka + 服务消费者(Rest + Ribbon)实战
现在的很多RPC框架,向Duobbo、JSF都是采用类似思想进行实现的。目前主流的负载均衡方案可分成两类。一种是集中式LB, 即在服务的消费方和提供方之间使用独立的LB设施(可以是硬件,如F5, 也可以是软件,如nginx, 由该设施负责把访问请求通过某种策略转发至服务的提供方。 另一种是进程内LB,将LB逻辑集成到消费方,消费方从服务注册中心获知有哪些地址可用,然后自己再从这些地址中选择出一个合适的服务器。Ribbon就属于后者,它只是一个类库,集成于消费方进程,消费方通过它来获取到服务提供方的地址。
2023-04-24 16:35:34
2654
11
原创 Spring Cloud Config配置服务及那些你不知道的坑
SpringCloudConfig就是我们通常意义上的配置中心,把应用原本放在本地文件的配置抽取出来放在中心服务器,从而能够提供更好的管理、发布能力。SpringCloudConfig分服务端和客户端,服务端负责将git svn中存储的配置文件发布成REST接口,客户端可以从服务端REST接口获取配置。但客户端并不能主动感知到配置的变化,从而主动去获取新的配置,这需要每个客户端通过POST方法触发各自的/refresh。SpringCloudBus通过一个轻量级消息代理连接分布式系统的节点。
2023-04-14 16:09:31
1813
3
原创 Java基础/进阶/电商系统实战系列文章汇总
由浅入深学习Java基础知识,通过代码案例与面试习题相结合,强化巩固各关键知识点;建立Java核心技术交流群实时跟进大家学习情况,避免形成学习孤岛; 通过基础示例与实战项目相结合的形式,加强对知识点应用场景的理解;了解真实电商购物系统高并发、高性能、高可用架构设计方案及优化手段。
2023-04-13 07:33:41
677
21
原创 资深架构带你解读-Java零基础学习路线图
1)初步了解Java2)Java基础知识3)进阶知识4)高级知识5)实战内容6)配套面试题1)可快速有序的学习Java基础知识,通过反复练习源代码中大量Java基础知识点及面试题, 进一步强化巩固知识点。2)建立Java核心技术交流群实时跟进大家学习情况, 避免形成单点学习孤岛。3)通过输入与实战项目的高质量学习方式,加强对知识点的理解深度。4)在学习技术的同时,让大家也了解实际工作中真实的电商购物业务流程和开发是什么样的?电商系统底层系统架构如何设计?架构设计时需要注意哪些关键点?等等。
2023-04-12 07:04:32
166
2
原创 秒杀计时实现与库存扣减方案设计
前面我们知道了秒杀系统需要具备高并发高性能的要求。那本节内容,我们主要介绍秒杀系统中,针对计时实现和库存扣减逻辑应该将如何进行设计。
2023-04-09 10:25:38
791
2
原创 购物商城订单防重设计方案
背景:在互联网应用中,客户端和服务器之间,通过各类应用介质向服务器提交表单的时候,通常用户点击提交数据的按钮来触发客户端上的数据提交操作;由于服务连接、网络延迟等影响,用户会出现误操作,可能会出现连续多次点击提交的操作,那么就有可能出现重复订单信息。
2023-04-09 06:41:07
512
1
原创 商城秒杀系统负载均衡方案设计
简单来说,负载均衡机制的核心目的是让客户端的请求合理均匀的分发到多台目标服务器,由于请求被多个节点分发,使得服务端的性能得到有效的提升。除此之外,DNS还可以根据不同的地域分配就近机房的IP,比如长沙的小伙伴,可能会得到在湖南范围内最近的一个机房的IP,在这个模式下可以实现「就近原则」实现请求处理,缩短了通信距离从而提升网站访问效率。以上不同的负载均衡策略均有各自不同的使用场景,请结合自身的实际情况进行合理的选择,同时,各自配置策略在实际使用的时候也不是孤立的,比如最小连接数可以搭配权重数一起使用。
2023-04-08 22:02:18
490
原创 购物商城订单分库分表应该如何设计
ShardingSphere是一款起源于当当网内部的应用框架。2015年在当当网内部诞生,最初就叫ShardingJDBC。2016年的时候,由其中一个主要的开发人员张亮,带入到京东数科,组件团队继续开发。在国内历经了当当网、电信翼支付、京东数科等多家大型互联网企业的考验,在2017年开始开源。并逐渐由原本只关注于关系型数据库增强工具的ShardingJDBC升级成为一整套以数据分片为基础的数据生态圈,更名为ShardingSphere。到2020年4月,已经成为了Apache软件基金会的顶级项目。
2023-04-08 16:04:32
441
6
原创 Spring Cloud之Consul服务治理实战
前面各服务启动成功后,需要将所有节点组成一个集群模式。以Server模式运行的Consul agent节点用于维护Consul集群的状态,官方建议每个Consul Cluster至少有3个或以上的运行在Server mode的Agent,Client节点不限。如果一个节点长时间没有收到其他节点的心跳消息,它会认为其他节点已经宕机,并将其从集群中移除。在Consul方案中,每个提供服务的节点上都要部署和运行Consul的agent,所有运行Consul agent节点的集合构成Consul Cluster。
2023-04-06 21:12:22
717
7
原创 SpringCloud之Eureka原理分析与实战(注册与发现)
这个是客户端的数量个数,如果注册中心自己不注册,那么有几个客户端,n就是几,如果注册中心自己也要注册,那么就需要把注册中心也加上,这是因为在实际生产环境中,为了保证注册中心的高可用,往往注册中心会搭建集群,那么注册中心A,B,C相互之间也会注册,所以就相当于一个客户端。其中,Eureka Server提供服务注册服务,各个节点启动后,会在Eureka Server中进行注册,这样EurekaServer中的服务注册表中将会存储所有可用服务节点的信息,服务节点的信息可以在界面中直观的看到。
2023-04-03 20:32:25
1694
8
原创 快速搭建第一个SpringCloud程序
表示dependency不作用在编译时,但会作用在运行和测试时,如JDBC驱动,适用运行和测试阶段。test表示dependency作用在测试时,不作用在运行时。那除了采用集成插件外,我们采用另外一种通过引导方式, 直接通过官网提供的脚手架,创建完成后,导入自己的发工具中即可。注意:SpringBoot版本的选择,如果使用JDK8的话,则选择2.x.x版本。引入springCLoud前,我们需要看下SpringCloud和SpringBoot版本对应关系. 否则,如果版本匹配有问题,启动则会报错。
2023-03-31 01:00:00
1365
1
原创 SpringCloud实战前准备工作
Spring Cloud的版本并不是传统的使用数字的方式标识,而是使用诸如:Angel、Brixton、Camden......等伦敦的地名来命名版本,版本的先后顺序使用字母表A-Z的先后来标识,,现在已经进入F版本;在我们引入spring cloud的时候,一定要注意spring cloud和spring boot的版本是有对应关系的,如果使用了不对应的版本,往往会导致一些奇奇怪怪得bug;Dalston 兼容Spring Boot 1.5.x,不兼容Spring Boot 2.0.x。
2023-03-30 17:11:59
424
1
原创 让ChatGPT告诉你Java的发展前景
最近很多人问我Java的发展前景怎么样?该怎么学Java基础?java这么卷还该不该学等等。那今天老王以电商场景为例,再结合ChatGPT的回答和大家聊的一下Java有哪些应用前景和技术层面的落地方案。选择发展趋势好的行业,简单来说,就是选择大于努力。以电商领域为例,电商在中国发展了有20多年了,很多人很早就选择了这个行业,薪资待遇也一直随着这个行业不断水涨船高,顺应互联网发展趋势也享受到了这个时代所带来的红利,很多人因此赚得了人生第一桶金,实现个人财务自由。
2023-03-29 18:15:25
11827
5
原创 从架构视角了解SpringCloud
在系统架构演进过程中,主要经历了两个阶段。第一个阶段是2000年左右的集中式系统,第二个阶段是近几年流行的分布式系统。感兴趣的可以去看下我之前些的这篇文章:从电商系统看互联网场景下的分布式系统进化之路, 文中会告诉大家架构演进的过程以及为什么会出现这些架构。
2023-03-28 20:08:32
548
1
原创 Java版电商购物系统说明
本系统主要目的是帮助新手快速巩固Java基础知识(源代码中含有大量Java基础知识点),避免形成学习孤岛,保证让所学技术有输出、有落地;另外也让新人了解实际工作中真实的电商购物业务流程和开发是什么样的?底层系统架构如何设计?需要有哪些关键点需要注意?
2023-03-27 08:10:22
1705
4
原创 Java8-Stream流操作(一)
Java 8 流的新类 java.util.stream.Collectors 实现了 java.util.stream.Collector 接口,同时又提供了大量的方法对流 ( stream ) 的元素执行 map 和reduce 操作,或者统计操作。
2023-03-26 20:43:19
862
1
原创 Java8新特性概述(一)
Nashorn, JavaScript 引擎 − Java 8提供了一个新的Nashorn javascript引擎,它允许我们在JVM上运行特定的javascript应用。它支持Lambda 表达式、函数式编程,新的 JavaScript 引擎,新的日期 API,新的Stream API 等。方法引用 − 方法引用提供了非常有用的语法,可以直接引用已有Java类或对象(实例)的方法或构造器。Lambda 表达式 − Lambda 允许把函数作为一个方法的参数(函数作为参数传递到方法中)。
2023-03-25 20:06:03
386
1
原创 Java连接MySQL
本章节我们为大家介绍 Java 如何使用DBC 连接 MySQL 数据库。也为后续学习c3p0、dbcp、proxool、druid、tomcat、HikariCP等,通过了解JDBC可以为学习这些数据源原理打下良好基础。
2023-03-24 19:44:34
505
原创 Java多线程编程
在实际开发当中还会碰到线程同步、线程间通信、线程死锁、线程挂起等。那在后面的进阶教程中会详细展开说,这里作为初级教程已经足够我们使用了。另外需要注意,虽然多线程对CPU资源利用率充分,但并不是线程越多越好,如果你创建太多的线程,程序执行的效率实际上是降低了,而不是提升了。这里面除了CPU 花费在上下文的切换的时间外,还需要综合考虑实际业务常见以及内存等配置是否满足。
2023-03-23 18:51:38
538
原创 MyBatis高频面试题
当readOnly=“false”时,返回给调用者的是二级缓存总缓存对象的拷贝,即不同调用者获取的是缓存对象不同的实例,这样调用者对各自的缓存对象的修改不会影响到其他的调用者,即是安全的,所以默认是readOnly="false";● #将传入的数据都当成一个字符串,会对自动传入的数据加一个双引号。如:order by#user_id#,如果传入的值是111,那么解析成sql时的值为order by"111",如果传入的值是id,则解析成的sql为order by "id".
2023-03-22 18:47:20
676
原创 MySQL高频面试题
MySQL和其它的数据库产品有一个很大的不同就是事务由存储引擎所决定,例如MYISAM,MEMORY,ARCHIVE都不支持事务,事务就是为了解决一组查询要么全部执行成功,要么全部执行失败。MySQL事务默认是采取自动提交的模式,除非显示开始一个事务。修改自动提交模式,0=OFF,1=ON,注意:修改自动提交对非事务类型的表是无效的,因为它们本身就没有提交和回滚的概念,还有一些命令是会强制自动提交的,比如DLL命令、locktables等。或。
2023-03-22 18:42:01
484
原创 Java 泛型的作用分析
泛型在日常开发当中,使用的场景非常多。尤其是在很多底层API、中间件等技术中有大量使用,如常见的RPC框架Dubbo、我们日常使用JDK中的Collection框架集合类,都有大量API使用泛型来定义。所以学好泛型知识无论是新手还是初级程序员来说,对于日常开发大有裨益,甚至可以通过利用泛型来设计出非常优秀的技术框架。
2023-03-22 18:09:04
413
原创 Java代码规范全面总结
编程规范也就是编写出简洁、可维护、可靠、可测试、高效、可移植的代码,提高产品代码的质量。适当的规范和标准绝不是消灭代码内容的创造性、优雅性,而是限制过度个性化, 以一种普遍认可的统一方式一起做事,提升协作效率,降低沟通成本。 代码的字里行间流淌的是软件系统的血液,质量的提升是尽可能少踩坑,杜绝踩重复的坑,切实提升系统稳定性,码出质量。今天老王结合十年开发经验,给大家分享一篇开发过程中应该哟哪些规范化编程,目的是希望能帮助大家避免工作中不必要出现的问题!共勉!
2023-03-21 17:57:35
451
原创 Java集合类框架总结
Collection 是最基本的集合接口,一个 Collection 代表一组 Object,即 Collection 的元素, Java不提供直接继承自Collection的类,只提供继承于的子接口(如List和set)。List接口是一个有序的 Collection,使用此接口能够精确的控制每个元素插入的位置,能够通过索引(元素在List中位置,类似于数组的下标)来访问List中的元素,第一个元素的索引为 0,而且允许有相同的元素。集合类用于保存数量不确定的数据,也可以保存具有映射关系的数据。
2023-03-19 18:36:46
532
原创 Java异常分类总结
当程序中中出现多个异常时,有时用现有的通用异常类无法满足业务处理需求。这时候,我们需要从业务需求角度自定义异常类。比如,单独处理网络类型的异常或者数据库连接异常等。
2023-03-18 19:44:18
371
原创 Java流和文件操作总结
还有我们平时用的 Office 软件,对于 Word、Excel 和 PPT 文件,我们需要打开文件并读取这些文本,和编辑输入一些文本,这都需要利用输入和输出的功能。UTF:UTF 编码兼容了 ISO8859-1 编码,同时也可以用来表示所有的语言字符,不过 UTF 编码是不定长编码,每一个字符的长度为 1~6 个字节不等。计算机中,任何的文字都是以指定的编码方式存在的,在 Java 程序的开发中最常见的是 ISO8859-1、GBK/GB2312、Unicode、 UTF 编码。
2023-03-17 18:34:36
405
原创 亚马逊编年史-如何打造个人成长飞轮?
抗压力多问:任何高标准的事情在执行过程中必然会碰到很多困难挫折,那最考验人的就是面对这些困难是否有强大的抗压力,也就是现在流行的逆商。从1996-2020这14年间,亚马逊通过持续不断的扩张,最终通过规模效应引发出由流量、货物和价值所形成的闭环增长飞轮效应,这也类似于零售底层逻辑里面的人货场概念。当读完这本书后,你会发现京东的很多业务发展特别和亚马逊的发展模式类似,能更好的有助于我们看到京东业务的全貌。从亚马逊编年史这本书可以看出,亚马逊的发展整体可以概括为两个词:顶层设计和底层思维。那如何执行这三点呢?
2023-03-16 18:19:07
634
原创 第30篇:Java正则表达式实战(二)
很多读者都会觉得正则表达式是一个非常神奇、高级的知识,其实正则表达式是一种非常简单而且非常实用的工具。正则表达式是一个用于匹配字符串的模板。实际上,任意字符串都可以当成正则表达式使用。老王今天带领大家来学习正则表达基本知识点以及如何使用正则表达式来操作字符串。
2023-03-15 18:23:22
406
原创 第29篇:Java正则表达式能干什么
很多读者都会觉得正则表达式是一个非常神奇、高级的知识,其实正则表达式是一种非常简单而且非常实用的工具。正则表达式是一个用于匹配字符串的模板。实际上,任意字符串都可以当成正则表达式使用。老王今天带领大家来学习正则表达基本知识点以及如何使用正则表达式来操作字符串。
2023-03-14 19:08:04
271
原创 第28篇:Java日期Calendar类总结(二)
我们现在已经能够格式化并创建一个日期对象了,但是我们如何才能设置和获取日期数据的特定部分呢,比如说小时,日,或者分钟? 我们又如何在日期的这些部分加上或者减去值呢?答案是使用Calendar 类。Calendar类的功能要比Date类强大很多,而且在实现方式上也比Date类要复杂一些。
2023-03-13 18:55:00
247
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人