Java
文章平均质量分 71
Crhy、Y
这个作者很懒,什么都没留下…
展开
-
Java实现Excel百万级数据的导入(约30s完成)
StreamReader 是 java.io 包中的一个类,用于读取字符流的高级类。它继承自 Reader 类,可以以字符为单位读取文件中的数据。原创 2024-04-07 10:05:58 · 770 阅读 · 0 评论 -
(SSO单点登录)多个系统之间如何实现账号互通
背景传统 Session 机制及身份认证方案Cookie 与服务器的交互服务器端的 session 的机制基于 session 的身份认证流程集群环境下的 Session 困境及解决方案Session 共享方案多服务下的登陆困境及 SSO 方案SSO 的产生背景SSO 的底层原理 CAS最近开发新产品,然后老板说我们现在系统太多了,每次切换系统登录太麻烦了,能不能做个优化,同一账号互通掉。作为一个资深架构狮,老板的要求肯定要满足,安排!原创 2024-01-24 14:50:34 · 1600 阅读 · 2 评论 -
VsCode 配置Copilot的详细步骤与示例
配置 Copilot 安装完成后,点击 VsCode 编辑器的设置图标(齿轮形状),选择 "设置"。搜索栏中输入 "GitHub Copilot",找到 "GitHub Copilot: Api Key" 设置项,并点击 "编辑设置.json" 进行编辑。找到 "GitHub Copilot" 与 "GitHub Copilot Chat" 插件并点击安装按钮进行安装。首先,你需要安装 VsCode 编辑器。示例: { "GitHub Copilot: Api Key": "your-api-key" }原创 2024-01-10 10:41:17 · 8665 阅读 · 1 评论 -
java多线程-实现多线程(三)
MIN_PRIORITY、MAX_PRIORITY、NORM_PRIORITY原创 2024-01-09 14:46:09 · 381 阅读 · 0 评论 -
java多线程-实现多线程(二)
1、调用静态方法Thread.currentThread().getName(),并启动测试。Thread类中设置和获取线程名称的方法。1、getName() 获取线程名称。原创 2024-01-09 11:17:25 · 666 阅读 · 0 评论 -
java多线程-实现多线程(一)
star():启动线程,然后由JVM调用此线程的run()方法。run():封装线程执行的代码,直接调用,相当于普通方法的调用。4、创建MyThread类的对象,并启动,观测结果。run()是用来封装被线程执行的代码。线程是进程中的单个顺序控制流,是一条执行路径。3、在MyThread类中重写run()方法。Class Thread 类。1、创建 MyThread。2、 继承Thread类。原创 2024-01-09 11:01:14 · 349 阅读 · 0 评论 -
Vue页面传值:Props属性与$emit事件的应用介绍
这两种方式都可以实现在Vue页面间传值,具体使用哪种方式取决于你的需求和组件间的关系。在Vue页面中传值有多种方式,简单介绍以下两种。原创 2024-01-05 16:47:39 · 562 阅读 · 0 评论 -
阿里面试:redis 为什么把简单的字符串设计成 SDS?
我们知道是用写的,但它却没有完全直接使用的字符串,而是自己又重新构建了一个叫简单动态字符串(simple dynamic string)的抽象类型。也支持使用语言的传统字符串,只不过会用在一些不需要对字符串修改的地方,比如静态的字符输出。而我们开发中使用,往往会经常性的修改字符串的值,这个时候就会用来表示字符串的值了。有一点值得注意:在redis数据库中,键值对含有字符串值的,都是由来实现的。比如:在执行一个最简单的命令,这时会新建一个键值对。此时键值对的和都是一个字符串对象,而对象的底层实现分别是两原创 2024-01-04 11:04:22 · 1001 阅读 · 0 评论 -
ElasticSearch 集群搭建与状态监控cerebro
在单机上利用docker容器运行多个es实例来模拟es集群。部署es集群可以直接使用docker-compose来完成,但要求Linux虚拟机至少有4GI的内存空间。"number_of_replicas": 1 // 副本数。"number_of_shards": 3,// 分片款量。kibana可以监控es集群,不过新版本需要依赖es的x-pack 功能,配置比较复杂。第一种方式:利用kibana的DevTools创建索引库 ,在DevTools中输入指令。第二种方式:利用cerebro创建索引库。原创 2024-01-04 11:01:01 · 1850 阅读 · 1 评论 -
ElasticSearch 复合查询 Boolean Query
bool查询有几种逻辑关系?must:必须匹配的条件,可以理解为 "与"should:选择性匹配的条件,可以理解为 "或"must_not:必须不匹配的条件,不参与打分filter:必须匹配的条件,不参与打分。原创 2024-01-03 10:49:21 · 1398 阅读 · 0 评论 -
ElasticSearch自定义算分排序(Function Score Query)
使用 function score query,可以修改文档的相关性算分 (query score),根据新得到的算分排序。原创 2024-01-03 10:38:14 · 1417 阅读 · 0 评论 -
ElasticSearch的DSL查询语法解析
Elasticsearch提供了基于ISON的DSL (Domain Specific Lanquage)来定义查询。例如: match_query、multi_match_query。例如:geo_distance、geo_bounding_box。例如:bool、function_score。例如:ids、range、term。例如:match all。原创 2024-01-02 15:44:46 · 1501 阅读 · 0 评论 -
JavaRestClient批量导入数据
批量查询酒店数据,然后批量导入索引库中。原创 2024-01-02 14:10:16 · 385 阅读 · 0 评论 -
java中如何使用elasticsearch—RestClient操作文档(CRUD)
去数据库查询酒店数据,导入到hotel索引库,实现酒店数据的CRUD基本步骤如下。新建一个测试类,实现文档相关操作,并且完成JavaRestClient的初始化。方式一(全量更新):再次写入id一样的文档,就会删除旧文档,添加新文档。根据id查询到的文档数据是json,需要反序列化为java对象。(2)根据id查询数据库数据,并转换。方式二(局部更新):只更新部分字段。(1)创建文档对应实体。修改文档数据有两种方式。原创 2023-12-29 15:49:13 · 804 阅读 · 0 评论 -
RestClient操作索引库_删除索引库(三)
ES官方提供了各种不同语言的客户端,用来操作ES。这些客户端的本质就是组装DSL语句,通过http请求发送给ES。原创 2023-12-29 15:07:48 · 506 阅读 · 0 评论 -
RestClient操作索引库_创建索引库(二)
ES官方提供了各种不同语言的客户端,用来操作ES。这些客户端的本质就是组装DSL语句,通过http请求发送给ES。原创 2023-12-29 14:58:21 · 591 阅读 · 0 评论 -
RestClient操作索引库_准备工作(一)
ES官方提供了各种不同语言的客户端,用来操作ES。这些客户端的本质就是组装DSL语句,通过http请求发送给ES。原创 2023-12-29 11:30:48 · 921 阅读 · 0 评论 -
elasticsearch如何操作索引库里面的文档
操作索引库里面的文档原创 2023-12-27 10:37:55 · 691 阅读 · 0 评论 -
elasticsearch操作索引库
ES中通过Restful请求操作索引库、文档。请求内容用DSL语句来表示。索引库和mapping一旦创建无法修改,但是可以添加新的字段,语法如下。PUT /索引库名/_mapping。DELETE /索引库名。GET /索引库名。原创 2023-12-27 10:21:26 · 789 阅读 · 0 评论 -
定时任务部署在多台服务器时如何避免重复执行
任务以源码方式维护在调度中心,支持通过Web IDE在线更新,实时编译和生效,原理:每个 “GLUE模式(Java)” 任务的代码,实际上是“一个继承自“IJobHandler”的实现类的类代码”,“执行器”接收到“调度中心”的调度请求时,会通过Groovy类加载器加载此代码,实例化成Java对象,同时注入此代码中声明的Spring服务(请确保Glue代码中的服务和类引用在“执行器”项目中存在),然后调用该对象的execute方法,执行任务逻辑。接收“调度中心”的执行请求、终止请求和日志请求等。原创 2023-12-27 09:57:22 · 3186 阅读 · 0 评论 -
操作索引库-mapping属性
mapping常见属性有哪些?type:数据类型index:是否索引analyzer:分词器properties:子字段type常见的有哪些?字符串:text、keyword数字: long、integer、short、byte、double、float布尔:boolean日期:date对象:object。原创 2023-12-26 11:35:05 · 360 阅读 · 0 评论 -
es-ik分词器的拓展和停用字典
IK Analyzer 扩展配置原创 2023-12-26 11:17:36 · 1626 阅读 · 0 评论 -
elasticsearch 接口简单使用
进入 elasticsearch-8.11.3\bin 目录下 启动 elasticsearch.bat。浏览器访问 http://localhost:9200/ 有输出则启动成功。2.1 创建索引并创建Mapping。原创 2023-12-25 14:23:21 · 705 阅读 · 0 评论 -
elasticsearch-安装IK分词器
es在创建倒排索引时需要对文档分词,在搜索时,需要对用户输入内容分词。但默认的分词规则对中文处理并不友好,在kibana的DevTools中测试。说明plugins目录被挂载到了/var/lib/docker/volumes/es-plugins/_data这个目录。地址路径 /var/1ib/docker/volumes/es-plugins/_data。下面我们需要把课前资料中ik人词器解压缩,重命名为ik。处理中文分词,一般会使用IK分词器。原创 2023-12-25 09:54:17 · 734 阅读 · 0 评论 -
安装elasticsearch+kibana
e ELASTICSEARCH_HOSTS=http://es:9200": 设置elasticsearch的地址,因为kibana已经与elasticsearch在一个网络,因此可以用容器名 es + 端口号,直接访问elasticsearch。在浏览器中输入: http://192.168.150.101:9200 即可看到elasticsearch的响应结果。--network es-net : 加入一个名为es-net的网络中,与elasticsearch在同一个网络中。原创 2023-12-25 09:31:07 · 1228 阅读 · 0 评论 -
elasticsearch 与 mysql的概念对比
elasticsearch是面向文档存储的,可以是数据库中的一条商品数据,一个订单信息。文档数据会被序列化为json格式后存储在elasticsearch中。原创 2023-12-22 16:10:04 · 568 阅读 · 0 评论 -
分布式搜索elasticsearch概念
elasticsearch是一款非常强大的开源搜索引擎,可以帮助我们从海量数据中快速找到需要的内容。原创 2023-12-22 15:57:17 · 1994 阅读 · 0 评论 -
使用Docker-镜像命令
镜像名称一般分两部分组成:[repository]:[tag]在没有指定tag时,默认是latest,代表最新版本的镜像。原创 2023-12-22 15:12:57 · 1090 阅读 · 0 评论 -
CentOS7 安装 DockerCompose
可以通过修改daemon配置文件 /etc/docker/daemon.json 来使用加速器。然后更新镜像源 (yum默认去往国外下载 速度太低,配置yum首先去aliyun上面下载)官方网站上有各种环境下的安装指南,这里主要介绍Docker CE在Centos上的安装。Docker应用需要用到各种端口,测试时可以直接关闭防火墙,以下为关闭防火墙命令。Docker 分为 CE 和 EE 两大版本。# 设置docker镜像源。# 查看docker启动状态。# 启动docker。查看docker版本。原创 2023-12-21 10:30:12 · 959 阅读 · 0 评论 -
Docker-Docker和虚拟机的关系
Docker 是在Linux容器技术的基础上发展过来的,将应用打成镜像,通过镜像成为运行在Docker容器上面的实例,而 Docker容器在任何操作系统上都是一致的,这就实现了跨平台、跨服务器。只需要一次配置好环境,换到别的机子上就可以一键部署好,大大简化了操作。虚拟机是在操作系统中模拟硬件设备,然后运行另一个操作系统,比如在 Windows 系统里面运行Ubuntu 系统,这样就可以运行任意的ubuntu应用了。原创 2023-12-21 09:36:58 · 583 阅读 · 0 评论 -
初识Docker-什么是docker
Docker是一个快速交付应用、运行应用的技术。原创 2023-12-21 08:55:41 · 603 阅读 · 0 评论 -
Gateway网关-网关的cors跨域配置
allowedHeaders: "*" #允许在请求中携带的头信息 allowCredentials: true # 是否携带cookie。allowedMethods: # 允许的跨域ajax的请求方式。'[/**]': # /** 表示拦截一且请求。globalcors: #全局的跨域处理。禁止请求的发起者与服务端发生跨域ajax请求,请求被浏览器拦截的问题。原创 2023-12-20 15:27:02 · 1113 阅读 · 0 评论 -
Gateway网关-DefaultFilter、GlobalFilter过滤器执行顺序
请求路由后,会将当前路由过滤器和DefaultFilter、GlobalFilter,合并到一个过滤器链(集合)中,排序后依次执行。请求路由后,会将当前路由过滤器和DefaultFilter、GlobalFilter,合并到一个过滤器链(集合)中。对GatewatFilter排序后,依次执行每个过滤器。原创 2023-12-20 15:08:00 · 578 阅读 · 0 评论 -
Gateway网关-全局过滤器
对所有路由都生效的过滤器,并且可以自定义处理逻辑。原创 2023-12-20 14:57:05 · 428 阅读 · 0 评论 -
Gateway网关-路由的过滤器配置
(1) 在gateway中修改application.yml文件中,给userservice的路由添加过滤器。对路由的请求或响应做加工处理,比如添加请求头配置在路由下的过滤器只对当前路由的请求生效。GatewayFilter是网关中提供的一种过滤器,可以对进入网关的请求和微服务返回的响应做处理。(2) 修改 UserController 接口请求方式(添加请求头)Spring提供了31种不同的路由过滤器工厂。(3) 重启服务,访问测试。对所有路由都生效的过滤器。(2) 启动测试,完成。原创 2023-12-18 16:03:13 · 592 阅读 · 0 评论 -
java读取txt文件及乱码处理
RandomAccessFile可以通过移动文件指针改变读取的位置,可以按照几种基本类型直接读取数据,可以跳过一定的字节。2.3 DataInputStream 与 RandomAccessFile 的区别。2.1 使用DataInputStream。2.2 使用RandomAccessFile。DataInputStream是输入流。FileInputStream有两种构造方式。原创 2023-12-14 15:39:04 · 1404 阅读 · 0 评论 -
Gateway网关-路由断言工厂
路由断言工厂Route Predicate Factory。Spring提供了11中基本的Predicate工厂。读取用户定义的断言条件,对请求做出判断。路径是以/user开头的就认为是符合的。Spring官网,After示例如下。配置修改为 Before。原创 2023-12-14 10:06:01 · 139 阅读 · 0 评论 -
Gateway网关搭建
网关搭建步骤1.创建项目,引入nacos服务发现和gateway依赖2.配置application.yml,包括服务基本信息、nacos地址、路由路由配置包括1.路由id:路由的唯一标示2.路由目标(uri):路由的目标地址,http代表固定地址,lb代表根据服务名负载均衡3.路由断言(predicates):判断路由的规则4.路由过滤器 (filters):对请求或响应做处理。原创 2023-12-14 09:22:17 · 125 阅读 · 0 评论