- 博客(527)
- 资源 (1)
- 收藏
- 关注

原创 使用Flink命令行和Java API远程提交Flink任务到Yarn
然后下载flink-runtime-web-1.15.0.jar、flink-connector-jdbc-1.15.0.jar、mysql-connector-java-8.0.29.jar,上传到HDFS的/flink/remote-submit-lib下。下载flink-clients-1.15.0.jar、log4j-1.2-api-2.17.2.jar,到/opt/flink-remote-submit/java-lib目录下。然后上传datasync-test的jar包到创建的目录下。
2024-09-23 09:29:44
1500

原创 Flink SQL的JDBC Connector实现SupportsFilterPushDown谓词下推、SupportsAggregatePushDown聚合下推
主要逻辑是对filters进行遍历,一个ResolvedExpression就是一个where条件,根据不同的条件表达式,比如equals,进行不同的处理,生成where条件SQL语句,拼接到query中形成新的query并返回。Flink会自动传递3个参数值给applyAggregates方法进行调用,我们只需对获取的3个参数值进行解析,拼接成聚合SQL语句,然后再从原query中获取表名,就可以生成新的query语句了。的3个参数,groupingSets包含字段在GROUP BY中的index;
2024-09-20 09:19:47
905
原创 分布式事务框架Seata 1.6.1安装
script/server/db/mysql.sql脚本,提供了创建global_table、branch_table、lock_table、distributed_lock表,和向distributed_lock表写入数据的sql语句。这里我们事务日志使用db进行储存(可选参数:file、db、redis,默认为file)。配置session和lock的事务日志使用db进行储存,和mysql的连接。先运行script/server/db/mysql.sql脚本,进行建表和插入数据。
2025-03-24 07:30:35
410
原创 Hive的数据定义语言
虽然修改了default数据库的location,但是在default数据库下面创建的表的location还是:hdfs://nnha/user/hive/warehouse/test_tb。表中储存了索引列的值、索引列的值对应文件在HDFS的Path、索引列的值在该文件的position。需要进行分桶,将某一列或某几列的数据,进行Hash取模的方式,将数据随机均匀的发送到各个桶文件。视图中的数据并不会进行实际的储存。创建索引的列称为索引列,通过索引列进行查询时,可以避免全表扫描或全分区扫描。
2025-03-24 07:27:26
930
原创 Git将拷贝的代码修改后,创建新分支并提交
我们原先在master分支上进行开发,突然一天要在旧版本上进行更改,所以我们从Git上将该旧版本clone下来,然后进行修改。现在要将修改后的代码,在Git上创建新的分支,然后提交到新分支上。
2025-03-24 07:19:09
173
原创 Mysql insert和计算列的使用
某一列的值是通过别的列计算得来的。例如,a列值为1、b列值为2,c列不需要手动插入,定义a+b的结果为c的值,那么c就是计算列。CREATE TABLE和ALTER TABLE中都支持增加计算列。使用insert同时插入多条记录时,MySQL会返回一些额外信息,这些信息的含。
2025-03-24 07:11:05
171
原创 Kafka Stream的使用、SpringBoot继承Kafka Stream
Kafka Stream是一个轻量级的类库,能够读写Kafka Topic的数据,做一些简单的数据处理后,将数据再写入到另一个Kafka Topic。
2025-03-03 11:35:02
755
原创 分布式一致性算法的CAP理论和一致性模型
弱一致性(最终一致性),即保证AP。当分布式数据库写入一条数据,不能立刻读到,需要等一段时间才能读到。数据库有CouchDB、DynamoDB、Riak。通常都会满足一致性和分区容错性,尽可能的满足可用性(99.999999%)
2025-03-03 11:30:35
208
原创 SpringCloud Alibaba Nacos之集成Nacos配置中心
nacos的配置历史默认保存30天,可以进行回滚,回滚到该配置,回滚也支持配置动态更新。在nacos添加DataID配置如下。其中指定一个不存在的Group就会创建一个新的Group。、nacos的discovery都可以在nacos的配置中心配置。主启动类上添加注解@EnableDiscoveryClient。
2025-02-07 17:51:55
287
原创 【JavaWeb-8】Java Web的Cookie、Kaptcha验证码
先访问http://localhost:8080/javaWebTest/kaptcha.html,img图片部分会去请求/kaptcha.jpg这个Servlet,Tomcat10KaptchaServlet会将图片字符串保存到Session中,再将图片内容访问给客户端。因为com.google.code.kaptcha.servlet.KaptchaServlet使用的是javax.servlet,但是Tomcat10使用的是jakarta.servlet。
2025-01-20 09:23:53
855
原创 JavaWeb 过滤器Filter、ThreadLocal使用、监听器Listener
ServletContextAttributeListener-监听ServletContext的保存作用域的改动(add,remove,replace)ServletRequestAttributeListener-监听ServletRequest的保存作用域的改动(add,remove,replace)一个线程,可以有多个不同类型的ThreadLocal,这里我们定义了一个strThreadLocal,可以进行值得set、get、remove。这里我们测试使用注解。
2025-01-20 09:21:57
951
原创 HTML5使用favicon.ico图标
选择一个png转ico的在线网站,这里以https://www.bitbug.net/为例。上传图片,目标尺寸选择48x48,输入附加码,最后点击生成icon图标,会自动将png转换成ico图标然后下载。favicon.ico一般用于作为网站标志,它显示在浏览器的地址栏或者标签上。将favicon.ico图标放到项目根目录下。HTML页面引入favicon图标。制作favicon图标。
2025-01-20 09:19:30
1233
原创 JavaWeb Servlet的getInitParameter、业务层、控制反转IOC和依赖注入DI
在软件系统中,层与层之间是存在依赖的。即层内部的组成应该是高度聚合的,而层与层之间的关系应该是低耦合的,最理想的情况0耦合。解析applicationContext.xml,将bean放到beanMap中,然后给各个bean设置property属性。不在DispatcherServlet进行applicationContext.xml的解析,而是直接从BeanFactory获取bean。介绍:典型的就是JSP,用HTML(CSS、JS) + Java代码(将数据提供给页面的代码,加上和数据库通信的代码)。
2024-12-30 09:51:54
1275
原创 JavaWeb Servlet的反射优化、Dispatcher优化、视图(重定向)优化、方法参数值获取优化
请求http://localhost:8080/javaWebTest/fruit.do?paramId=1,web页面显示和之前的一样。前面我们做了Servlet的一个案例。只负责具体的业务逻辑处理。重定向、参数获取全部由DispatcherServlet处理。编译的时候保留方法的参数名,而不是擦除。注意删除target,不然不会生效。定义java bean的id,和其对应的处理类。接受所有的请求,然后进行分发。
2024-12-23 09:41:37
1064
原创 JavaWeb Thymeleaf的介绍和使用
从web.xml获取参数,构建真实的物理视图,再一边请求该物理视图的URL,一边从session中获取数据,将获取的数据渲染到页面上,返回给GET请求的页面。对GET请求进行拦截,将数据保存到session中,然后调用processTemplate方法,让Thymeleaf进行处理。启动tomcat,然后访问http://localhost:8080/javaWebTest/index。用来做视图渲染(render),在静态的的html页面上,对保存在servlet中的Attribute进行加载。
2024-12-16 09:49:14
758
原创 JavaWeb Servlet的继承关系源码分析、service方法源码分析
service方法中,先通过req.getMethod()获取到客户端的请求方式method,然后对method分GET、HEAD、POST、PUT、DELETE、OPTIONS、TRACE等不同的请求方式进行不同的处理。默认用户第一次发送HTTP请求,才会进行Servlet的实例化(调用构造方法)、初始化(调用init方法);因为这是Servlet的405的默认实现,如果我们自己没有实现,则会抛出默认的异常。现在我们重点对POST请求的this.doPost(req, resp)方法进行学习。
2024-12-09 10:10:50
948
原创 vue-element-admin的简单使用、vue-manage-system后台管理系统
vue-element-admin是基于Vue和Element-ui 的一套后台管理系统集成方案。因为功能太多,所以不适合做基础模板来进行二次开发功能介绍请点我点我打开在线前端页面但vue-element-admin的最精简版vue-admin-template,适合做基础模板来进行二次开发。可以从vue-element-admin拷贝需要的功能过来,也可以自己开发点我打开在线前端页面源码项目主要结构如下:|-build 构建项目时需要用到的文件|-mock 产生模拟的后端数据|-src。
2024-12-02 09:32:45
494
原创 Vue3的Composition组合式API(Teleport移动标签、Suspense标签)、Vue3相对Vue2的改变(全局API的转移、其它改变)
过滤器虽然这看起来很方便,但它需要一个自定义语法,打破大括号内表达式是“只是JavaScript”的假设,这不仅有学习成本,而且有实现成本!建议用方法调用或计算属性去替换过滤器。Vue3对这些API做出了调整。将全局的API,即:Vue.xxx调整到应用实例app上。Vue2有许多全局API和配置。等待异步组件时渲染一些额外内容,让应用有更好的用户体验。一种能够将我们的组件html结构移动到指定位置的标签。子组件中声明自定义事件。
2024-11-25 09:49:19
926
原创 【Vue33】Vue3的Composition组合式API(provide和inject函数、响应式数据的判断、Fragment)、Composition API的优势
Composition API的优势: 可以更加优雅的让相关功能的代码更加有序的组织在一起。如下图所示,每一个相关的功能都使用一个hook函数来实现,然后在其它组件进行引用,这样新增或修改一个需求,只需要修改对应的hook函数即可。使用传统OptionsAPI配置项API,新增或修改一个需求,就需要分别在data,methods,computed等修改。如下,开发者工具可以看到有Fragment。
2024-11-18 09:13:29
444
原创 JavaWeb Servlet基本介绍和使用案例(含session)
Servlet获取客户端发送给Servlet服务的数据,然后对数据进行操作。比如HTML页面的form表单,用户在表单输入各种数据,然后点击submit进行提交。
2024-11-04 09:33:03
697
原创 在IDEA中使用Tomcat部署JavaWeb项目
选择Services,然后点击启动按钮,就会在javaWebTest\out目录下创建运行的项目文件。就会用默认的浏览器自动打开http://localhost:8080/javaWebTest/index.html页面。因为启动Tomcat时,CMD上打印的日志会乱码,所以需要注释如下的UTF-8编码,让Tomcat跟随环境自动选择编码。如果修改web目录下的index.html的内容,再次访问页面,会同步修改,达到了热部署的效果。进行如下操作,就会添加项目的war包。创建完成后的项目结构如下。
2024-10-28 09:48:48
1123
原创 Vue3的Composition组合式API(readonly与shallowReadonly函数、toRaw与markRaw函数、customRef函数)
效果如下:在输入框的hello后面,快速的输入123,过一段时间,下面的hello也更新为hello123。再点击修改姓名,页面重新渲染,会将之前对markRaw的person.car的数据的改变也更新到页面。点击先获取再改变最原始的person信息,页面没有发生变化,但其实person的数据已经改变了。同时也会出现改变车的价格按钮。点击改变车的价格,页面没有发生变化,但其实person.car的数据已经改变了。再点击修改姓名,页面重新渲染,会将之前对toRaw数据的改变也更新到页面。
2024-10-24 09:32:08
1122
原创 SpringCloud Alibaba 2023 依赖管理、SpringCloud Alibaba Nacos 2.3.2集群安装
访问http://192.168.28.21:8848/nacos、http://192.168.28.22:8848/nacos、http://192.168.28.23:8848/nacos都可以。默认的用户名和密码是nacos/nacos,可以在web页面进行nacos用户的密码修改,和添加新用户。
2024-10-17 09:12:24
703
原创 Vue3的生命周期、Composition组合式API(自定义hook函数、toRef和toRefs函数、shallowReactive与shallowRef函数)
本质是一个函数,把setup函数中使用的Composition API进行了封装。封装后可以供多个组件使用类似于vue2.x中的mixin使用示例挂载组件的时候,会给window注册一个点击事件。每次点击鼠标时,会修改point的x和y为鼠标的坐标卸载组件的时候,会将window上的这个点击事件删除hook函数返回point// 实现鼠标“打点”相关的数据x:0,y:0})// 实现鼠标“打点”相关的方法// 实现鼠标“打点”相关的生命周期钩子})})School.vue。
2024-10-16 09:29:56
828
原创 Vue3的Composition组合式API(computed计算属性、watch监视属性、watchEffect函数)
情况一:监视ref所定义的一个基础类型数据immediate开启时初始化就会调用一下使用watch监视一个属性多次,监视回调函数就会调用多次情况二:监视ref所定义的多个基础类型数据情况三: 监视ref所定义的一个对象类型数据。对象内的属性发生改变不能监视到监视方式一: 使用person.value,这样监视的不是RefImpl,而是Proxy。这种也能深度监视监视方式二: 使用配置参数{deep:true}开启深度监视监视问题: 监视的oldValue和newValue一样。
2024-10-14 09:36:12
1112
原创 Vue3的Composition组合式API(setup、ref函数、reactive函数)、Vue3响应式原理(Proxy和Reflect)、<script setup>
Vue开发者工具setup中的数据和函数分开显示的。点击按钮,触发自定义事件,弹出弹窗。看下面的App.vue示例。Vue3则不存在这些问题。点击按钮,人员信息能改变。点击按钮,人员信息能改变。点击按钮,人员信息能改变。
2024-10-11 09:20:01
1057
原创 SpringCloud 2023 Gateway的Filter配置介绍、类型、内置过滤器、自定义全局和单一内置过滤器
类似SpringMVC里面的的拦截器Interceptor,Servlet的过滤器。“pre”和“post”分别会在请求被执行前调用和被执行后调用,用来修改请求和响应信息。可以用来做请求鉴权、异常处理、记录接口调用时长需求:统计每个请求的耗时时长思路:不管是在每个接口中进行统计;还是通过AOP + 反射形成注解然后进行使用。都会对业务代码形成入侵,可以通过自定义全局过滤器来实现步骤1:新建类MyGlobalFilter并实现GlobalFilter,Ordered两个接口。
2024-10-08 10:52:07
2421
原创 SpringCloud 2023 Gateway的Predicate配置详解、自定义Route Predicate Factory
Spring Cloud Gateway将路由匹配作为Spring WebFlux HandlerMapping基础架构的一部分。包含共12种内置的Route Predicate Factory,可以配置多个Route Predicate Factory,用逻辑and进行组合,如果HTTP请求的不同属性都满足条件,则跳转到指定的route路由启动Spring Cloud Gateway服务时,日志会打印加载的Route Predicate Factory,如下所示。
2024-09-27 09:15:52
1326
原创 SpringCloud 2023 Gateway介绍、三大核心、基本使用
介绍:Gateway是在Spring生态系统之上构建的API网关服务,基于Spring6,Spring Boot 3和Project Reactor等技术。该组件是整个微服务最前沿的防火墙和代理器,核心是一系列的过滤器,通过这些过滤器可以将客户端发送的请求转发(路由)到对应的微服务,隐藏微服务节点IP端口信息,从而加强安全保护,并为它们提供跨领域的关注点,例如:安全性、监控、度量和恢复能力。Spring Cloud Gateway本身也是一个微服务,需要注册进服务注册中心定位。
2024-09-26 09:36:30
1262
原创 SpringCloud 2023 LoadBalancer介绍、使用、获取服务列表原理、负载均衡算法
提供客户端的负载均衡算法,将请求均摊到多个服务器上。属于客户端负载均衡(Nginx属于服务端负载均衡),会将服务列表缓存到JVM本地,然后客户端自己选择请求服务器支持Spring Web Flux的WebClient。
2024-09-25 09:29:43
771
原创 SpringCloud 2023各依赖版本选择、核心功能与组件、创建项目(注意事项、依赖)
Java、Spring和Maven的版本选择参考。父工程添加dependencyManagement依赖。Mysql: 8.0+(建议)
2024-09-24 09:26:13
1840
原创 Vue常用PC端和移动端组件库、Element UI的基本使用(完整引入和按需引入)
提供常用的布局、按钮、输入框、下拉框等UI布局,以组件的形式提供。使用这些组件,结构、样式、交互就都有了。是UI组件库专门进行按需引入的一个库。可以借助它来实现按需引入。移动端常用UI组件库。PC端常用UI组件库。
2024-09-19 09:31:00
1082
原创 Vue路由三(编程式路由导航、缓存路由组件、路由生命周期钩子、路由守卫、两种工作模式(含history模式刷新404问题解决)、使用node的express部署服务)
作用:不借助实现路由跳转,让路由跳转更加灵活。如让button进行路由跳转、延迟就行路由跳转。使用方法和router.beforeEach差不多,只不过。路由组件所独有的两个钩子,用于捕获路由组件的激活状态。再点击Music,再点击Car。作用:让不展示的路由组件不被销毁,保持挂载。保护路由的安全,对路由进行权限管理。是作用于当前路由映射规则的。
2024-09-18 09:35:57
816
原创 Vue路由二(嵌套多级路由、路由query传参、路由命名、路由params传参、props配置、<router-link>的replace属性)
点击music2,页面的url变成了http://localhost:8080/#/news/music/detail?内容区显示Detail组件接收到id=2的相关内容。点击music3,页面的url变成了http://localhost:8080/#/news/music/detail?点击Music,页面的url变成了http://localhost:8080/music1#/news/music,但是并没有重新加载一次页面。导航栏的Music激活css样式,而且内容区显示Music组件的内容。
2024-09-13 09:01:01
1240
原创 Vue路由一(简介、分类、基本使用、注意事项)
路由就是一组key:value的对应关系。vue可能是function或component多个路由,需要经过路由器管理是为了实现SPA(single page web application)单页面应用。以前需要实现多个html,现在只需实现一个html就能达到多个html的功能。如点击导航区的班级管理,只有url地址发生变化,而页面不会刷新,也不会打开新的标签页SPA的原理:当我们点击班级管理,router发现url路径变成了/class,就会去加载班级组件;
2024-09-12 09:08:57
980
原创 Vue之数据共享vuex高级部分(getters计算属性、mapState和mapGetters计算属性、mapMutations和mapActions生成函数、模块化命名空间)
mapGetters方法:用于映射getters中的数据为computed的计算属性。mapState方法:用于映射state中的数据为computed的计算属性。当state中的数据需要经过加工后再使用时,可以使用getters加工。src/store/index.js如下所示。将多种不同类的数据进行分类,让代码更好维护。
2024-09-11 08:48:55
594
原创 Vue数据共享vuex基础部分(原理、环境搭建、求和案例)
在Vue中实现集中式共享数据管理的一个Vue插件,共享数据能让多个vue组件进行读写,从而实现任意组件间通信的功能。点我访问官网如下是使用全局事件总线,让B、C、D读写A中x的实现如下是使用vuex,让A、B、C、D读写vuex中x的实现。
2024-09-10 09:18:04
808
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人