标签:WebSocket,Session,Postman。 一、简介 WebSocket通过一个TCP连接在客户端和服务器之间建立一个全双工、双向的通信通道,使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据,在WebSocket的API中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输。 【基于Postman工具的WebSocket交互】 Connectedtows://127.0.0.1:8088/web/socket/msg HandshakeDetails RequestURL:http://127.0.0.1:...

  LXP9hq8vgTZc   2024年05月17日   45   0   0 Java

标签:PostgreSQL.Druid.Mybatis.Plus; 一、简介 PostgreSQL是一个功能强大的开源数据库系统,具有可靠性、稳定性、数据一致性等特点,且可以运行在所有主流操作系统上,包括Linux、Unix、Windows等。 通过官方文档可以找到大量描述如何安装和使用PostgreSQL的信息。 环境搭建,基于Centos7部署的PostgreSQL-14版本,官方文档中提供yum安装的方式,配置的话可以参考源码仓库中的其他版本「见文尾」,这里不赘述。 1、RPM仓库 sudoyuminstall-yhttps://download.postgresql.org/pu...

  LXP9hq8vgTZc   2024年03月24日   71   0   0 Java

流程偏长,下一步根本点不完; 01 首先,明确下两款软件的版本信息; VMware是【VMware-Fusion-13.5.0】 CentOS是【CentOS-7-x86_64-Minimal-1908】; VMware用来管理虚拟机系统,安装就不多说了,双击就行,注册码也好找; 打开VMware软件,从主页新建镜像,这里使用本地的镜像包; VMware软件会自动的从本地识别到可用的镜像文件; 这里选择传统BIOS方式; 这里继续之后,会展示默认的配置信息,直接点击【完成】会弹出虚拟机设置面板,或者先自行关闭该窗口,再右键打开【设置选项】; 02 根据使用的需求情况...

  LXP9hq8vgTZc   2024年02月19日   118   0   0 Linux

标签:Zookeeper3.8,Curator5.5; 一、简介 ZooKeeper是一个集中的服务,用于维护配置信息、命名、提供分布式同步、提供组服务。分布式应用程序以某种形式使用所有这些类型的服务。 二、环境搭建 1、修改配置文件 1、拷贝一份样本配置文件 cpzookeeper-3.8.3/conf/zoo_sample.cfgzookeeper-3.8.3/conf/zoo.cfg 2、修改数据文件地址,注意这里用本地路径 dataDir=/local-path/zookeeper-3.8.3/data 3、添加一个配置,处理启动日志的提示:ZooKeeperauditisdi...

  LXP9hq8vgTZc   2024年01月23日   30   0   0 Java

目录 一、业务背景 二、Jdk-Bin目录 三、命令行工具 1、jps命令 2、jinfo命令 3、jstat命令 4、jstack命令 5、jmap命令 四、可视化工具 1、jconsole 2、visualvm 五、参考源码 内存溢出,妥妥的名场面; 一、业务背景 对于分布式架构中的文件服务来说,由于涉及大量的IO流操作,很容易引发JVM的相关异常,尤其是内存溢出的问题; 在最近的一次版本迭代中,真实的业务处理场景和上述几乎一致,由于在文件服务中添加批量处理的动作,直接唤醒了隐藏许久的BUG,就是最常见的内存溢出; 问题的起因:在word文档完成内容识别后,转...

  LXP9hq8vgTZc   2023年11月01日   133   0   0 Java

将一堆“事情”串联在一起,有序执行,就叫责任链 一、概述 责任链模式(ChainofResponsibilityPattern)是将链中每一个节点看作是一个对象,每个节点处理的请求均不同,且内部自动维护一个下一节点对象。当一个请求从链式的首端发出时,会沿着链的路径依次传递给每一个节点对象,直至有对象处理这个请求为止,属于行为型模式。下面放一张足球比赛的图,通过层层传递,最终射门。通过这张图,可以更好的理解责任链模式。 二、入门案例 2.1类图 2.2基础类介绍 抽象接口RequestHandler / @author往事如风 @version1.0 @date2022/10/2513:...

  LXP9hq8vgTZc   2023年11月01日   98   0   0 Java

目录 一、管理方式 二、结构维护 三、数据调度 1、同步方案 2、中断和恢复 四、刷新策略 五、深度分页 六、参考源码 Index用不好,麻烦事不会少; 一、管理方式 ElasticSearch作为最常用的搜索引擎组件,在系统架构中发挥极其重要的能力,可以极大的提升数据的加载和检索效率;但不可否认的是,在长期的应用实践中,也发现很多不好处理的流程和场景; 从直观感觉上说,业务中对索引的使用主要涉及如图的几个流程,其核心也就是索引的结构维护与数据的流动管理两个模块; 如果数据结构比较简单且体量小,那么使用起来可能很顺手;如果数据主体复杂且会动态扩展,并且体量偏大,那么就...

  LXP9hq8vgTZc   2023年11月01日   75   0   0 Java

目录 一、注解基础 二、注解原理 三、常用注解 1、JDK注解 2、Lombok注解 四、自定义注解 1、同步控制 2、类型引擎 五、参考源码 使用的太多,被忽略的理所当然; 一、注解基础 注解即标注与解析,在Java的代码工程中,注解的使用几乎是无处不在,甚至多到被忽视; 无论是在JDK源码或者框架组件,都在使用注解能力完成各种识别和解析动作;在对系统功能封装时,也会依赖注解能力简化各种逻辑的重复实现; 基础接口 在Annotation的源码注释中有说明:所有的注解类型都需要继承该公共接口,本质上看注解是接口,但是代码并没有显式声明继承关系,可以直接查看字节码文件...

  LXP9hq8vgTZc   2023年11月01日   125   0   0 Java

是你,还是你,一切都有你!——装饰者模式 一、概述 装饰者模式(DecoratorPattern)允许向一个现有的对象扩展新的功能,同时不改变其结构。主要解决直接继承下因功能的不断横向扩展导致子类膨胀的问题,无需考虑子类的维护。 装饰者模式有4种角色: 抽象构件角色(Component):具体构件类和抽象装饰者类的共同父类。 具体构件角色(ConcreteComponent):抽象构件的子类,装饰者类可以给它增加额外的职责。 装饰角色(Decorator):抽象构件的子类,具体装饰类的父类,用于给具体构件增加职责,但在子类中实现。 具体装饰角色(ConcreteDecorator):具体...

  LXP9hq8vgTZc   2023年11月01日   56   0   0 Java

目录 一、业务背景 二、Seata架构 1、核心组件 2、AT模式 三、案例分析 1、流程分析 2、写隔离 3、读隔离 四、对比XA模式 五、参考源码 单个掉队,导致集体被动摆烂; 一、业务背景 在分布式架构中,事务管理是个无法避开的复杂问题,虽然有多种解决方案,但是需要根据业务去选择合适的; 从个人最近几年的实践经验来看,Seata组件的AT模式比较常用,本文从实际的案例出发,来深入分析该模式的原理; 首先创建一个全局事务管理的接口,这里是在Facade服务中开启全局事务; 请求经过三个微服务,并且各个服务都进行数据源的操作,然后模拟链路成功和异常的情况,来分析...

  LXP9hq8vgTZc   2023年11月01日   229   0   0 Java

目录 一、基础概念 二、JDK源码 1、InetAddress 2、URL 3、HttpURLConnection 三、通信编程 1、Socket 2、SocketServer 3、SocketClient 4、字符流使用 5、文件传输 6、TCP协议 四、Http组件 1、基础接口 2、ApacheHttp 3、OkHttp 4、RestTemplate 五、参考源码 总感觉这个概念,和研发有点脱节; 一、基础概念 不同设备之间通过网络进行数据传输,并且基于通用的网络协议作为多种设备的兼容标准,称为网络通信; 以C/S架构来看,在一次请求当中,客户端和服务端...

  LXP9hq8vgTZc   2023年11月01日   54   0   0 Java

数据不会无缘无故丢失,也不会莫名其妙增加 一、概述 1、曾几何时,知了在一家小公司做项目的时候,都是一个服务打天下,所以涉及到数据一致性的问题,都是直接用本地事务处理。 2、随着时间的推移,用户量增大了,发现一个Java服务扛不住了,于是技术大佬决定对于系统进行升级。根据系统的业务对于单体的一个服务进行拆分,然后对于开发人员也进行划分,一个开发人员只开发和维护一个或几个服务中的问题,大家各司其职,分工合作。 3、当然服务拆分不是一蹴而就的,这是一个耗时耗力的庞大工程,大多数系统都是进行多轮拆分,而后慢慢形成一个稳定的系统。遵守一个核心思想:先按总体业务进行一轮拆分,后面再根据拆分后的服务模...

  LXP9hq8vgTZc   2023年11月01日   54   0   0 Java

目录 一、Tomcat集成 1、依赖层级 2、自动化配置 二、Tomcat架构 三、Tomcat配置 1、基础配置 2、属性配置类 3、配置加载分析 四、周期管理方法 1、控制类 2、核心方法 五、参考源码 使用的成本越低,内部封装越复杂; 一、Tomcat集成 1、依赖层级 在SpringBoot框架的web依赖包中,引入的是内嵌Tomcat组件,基于SpringBoot的版本,Tomcat集成的是9.0版本; <!-1、项目工程依赖--> <dependency> <groupId>org.springframework....

  LXP9hq8vgTZc   2023年11月01日   54   0   0 Java

目录 一、Netty简介 二、Netty入门案例 1、服务端启动 2、通道初始化 3、自定义处理器 4、测试请求 三、Gateway集成 1、依赖层级 2、自动化配置 四、配置加载 1、基础配置 2、属性配置类 3、配置加载分析 五、周期管理方法 1、控制类 2、管理类 六、参考源码 Gateway和Netty都有盲区的感觉; 一、Netty简介 Netty是一个异步的,事件驱动的网络应用框架,用以快速开发高可靠、高性能的网络应用程序。 传输服务:提供网络传输能力的管理; 协议支持:支持常见的数据传输协议; 核心模块:包括可扩展事件模型、通用的通信API、...

  LXP9hq8vgTZc   2023年11月01日   91   0   0 Java

没有规则,不成方圆; 一、背景 前段时间,在做项目重构的时候,遇到很多地方需要做很多的条件判断。当然可以用很多的if-else判断去解决,但是当时也不清楚怎么回事,就想玩点别的。于是乎,就去调研了规则引擎。 当然,市面上有很多成熟的规则引擎,功能很多,性能很好。但是,就是想玩点不一样的(大家做技术选型别这样,这个是反面教材)。最终一款URule的规则引擎吸引了我,主要还是采用浏览器可直接配置,不需要过多安装,可视化规则也做的不错。经过一系列调研,后面就把它接入了项目中,顺便记录下调研的结果。 二、介绍 规则引擎其实是一种组件,它可以嵌入到程序当中。将程序复杂的判断规则从业务代码中剥离出来,...

  LXP9hq8vgTZc   2023年11月01日   100   0   0 Java

目录 一、背景简介 二、订单业务 1、订单体系 2、流程管理 2.1流程拆分 2.2正向流程 2.3逆向流程 2.4调度与监控 3、结构设计 三、技术方案 1、订单ID 2、并行与异步 3、超时问题 4、分布式事务 四、数据方案 1、转化分析 2、分库分表 3、数据同步 五、参考源码 订单,业务的核心模块; 一、背景简介 订单业务一直都是系统研发中的核心模块,订单的产生过程,与系统中的很多模块都会高度关联,比如账户体系、支付中心、运营管理等,即便单看订单本身,也足够的复杂; 业务在发展的过程中,必然会导致订单量的持续增加,订单自身、数据体量、实现流程,都需...

  LXP9hq8vgTZc   2023年11月01日   65   0   0 Java

打破常规,重立新规; 01 开始想聊这个话题的时候,我是打算放弃的;因为这个话题涉及范围之广,内容之多,让我犯怵; 近几年,待过两家公司;一家经历过重构,另一家也打算重构...... 其实要下定决心,推翻重来,是一个很有勇气的决定; 归根结底,不到万不得已,谁想这么玩,谁愿意花费大精力去做这些脏活、累活; 所以究其原因,也只能说是一种综合因素吧,就像古话说的,天时、地利、人和; 至于为什么这是个很有勇气的决定,因为做重构这事的团队风险极高;上至业务高层,下至底层码农,都有可能一个不小心就被刀; 我曾经待过的一个团队,经历过一次重构,不过那是一次失败的经历; 开发预估了两个多月的时间,...

  LXP9hq8vgTZc   2023年11月01日   43   0   0 Java

目录 一、业务背景 二、场景分析 三、流程设计 1、业务流程 2、导入流程 3、导出流程 四、结构设计 五、实践总结 六、参考源码 只想写单表和文件的搬运,数据不过百最好; 一、业务背景 最近遇到这样一个场景:在业务正式开始前1-2天,需要导入一批来自合作渠道的数据,在业务周期结束后,再将同一批数据导出,交付给渠道方; 简单理解,就是数据的「导入」和「导出」; 但是场景复杂度的高低与否,与实现流程和逻辑的复杂度并无什么必然联系,数据在「导入」和「导出」之间,通常还会横着复杂的「业务逻辑」; 数据如果只是在文件和单表直接来回捣腾,解决的方案简直花里胡哨,然而在应用中数据...

  LXP9hq8vgTZc   2023年11月01日   191   0   0 Java

和三方的关系要处好; 01 如果你看到这个话题,并不知道是什么意思,那么祝贺你,安安静静的当个小码农也挺好; 不过我敢说,随着职业生涯的慢慢发展,大家都得碰到,到时候就细细体会吧; 那年,我双手插兜,不知道什么叫三方对接;直到入职了一家金融公司后,承接了一个需求:跟银行对接数据流水; 从此就一发不可收拾,踏上了漫漫对接路,之后跟三方对接的活,都被我全部承包了;直到我后来办理离职手续,写的交接文档上,除了跟xxx对接,就是yyy对接; 后来想想,也没有那么不堪,我大致梳理了的下,分为以下几个点: 如果想做好对接,每个环节上都不允许出现问题;否则,由于某个环节拉胯,就会导致整盘对接停滞,...

  LXP9hq8vgTZc   2023年11月01日   52   0   0 Java

目录 一、基础简介 二、同步阻塞 1、模型图解 2、参考案例 三、同步非阻塞 1、模型图解 2、参考案例 四、异步非阻塞 1、模型图解 2、参考案例 五、Reactor模型 1、模型图解 1.1Reactor设计原理 1.2单Reactor单线程 1.3单Reactor多线程 1.4主从Reactor多线程 2、参考案例 六、参考源码 IO流模块:经常看、经常用、经常忘; 一、基础简介 在IO流的网络模型中,以常见的「客户端-服务端」交互场景为例; 客户端与服务端进行通信「交互」,可能是同步或者异步,服务端进行「流」处理时,可能是阻塞或者非阻塞模式,当...

  LXP9hq8vgTZc   2023年11月01日   35   0   0 Java
关注 更多

空空如也 ~ ~

粉丝 更多

空空如也 ~ ~