开局还是那种图,各位客官往下看... 享元模式(​​FlyWeight​​),是结构型模式的一种,主要是为了减少创建对象的数量,减少内存占用以及提高性能。说到这里,不知道你是否会想到池技术,比如​​String​​常量池,数据库连接池,缓冲池等等,是的,这些都应用了享元模式。比如,有一些对象,创建时候需要资源比较多,创建成本比较高,内存开销比较大,如果我们一直创建,机器吃不消,那么我们就想到了池化技术,把创建好的对象放在里面,需要时,去池子里面取就可以了,也就是大家共享了池子里面的对象,这就是共享。听名字,就很共享单车: 享元模式的特点 一般而言,享元对象需要在不同的场景下...

  7jPfnBIFtnum   14天前   18   0   0 缓存享元模式java

何为存储过程? 存储过程是在数据库管理系统中保存的、预先编译的并能实现某种功能的sql程序,说直白点,java知道吧?和java的方法一样。 每遇到一个新的知识点时,我们都会看看它的优点,从而加深对它学习的欲望,存储过程也不例外,那么存储过程有什么优点? 执行速度更快 允许模块化程序设计  提高系统安全性 减少网络流通量 看完优点之后,我们再来看看存储过程的分类有哪些,然后我们按照分类一个一个的写(演示)。 系统存储过程     系统存储过程的名称一般以“sp_”开头     由SQLServ...

  7jPfnBIFtnum   14天前   20   0   0 数据库存储

说明:记录一次JVM内存溢出的排查过程; 场景 项目开发完成后,首次提交到测试环境。测试、产品同事反馈页面先是操作响应慢,抛出超时异常,最后直接无法使用。查看日志后得知是内存溢出。 重启服务后,我对前端主要的几个长RT接口,使用Arthas进行了trace; 排查 Step1:SQL问题 锁定到了时间主要消耗在一次数据库操作,首先想到这段SQL是否有问题。 但我把SQL单独取出来,拼接参数执行,时长非常短,不应该啊。 Step2:拦截器 这期间,我做了很多尝试,看了很多JVM内存溢出的文章,但是基本没有帮助。于是,我换了一种思路,项目重启后,疯狂调用慢接口,然后使用Arthas的da...

  7jPfnBIFtnum   14天前   18   0   0 springJVMjava

说明:记录一次使用Redis的错误; 场景 在将验证码存入Redis时,发现存入的值前面有很多空格,导致在与前端传入的值比较时,一直是false,验证不通过。如下: 上面这些“□”是占位符,复制出来时空字符串; 解决 使用的Redis方法错了,我用的是下面这个API; redisTemplate.opsForValue().set(uuid,text,60); 后面这个60不代表过期时间,而是偏移量,指将数据偏移多少位,我上面这个方法表示将值偏移60位,所以前面出现了60个空字符 正确的方法如下,是四位参数,最后一位表示过期时间的单位; redisTemplate.opsForVa...

  7jPfnBIFtnum   14天前   19   0   0 redis缓存java

说明:单机的Redis存在许多的问题,如数据丢失问题、高并发问题、故障恢复问题、海量数据的存储能力问题,针对这四个问题,对应解决方式有:数据持久化、搭建主从集群、Redis哨兵和搭建分片集群; 本文介绍搭建Redis主从集群和哨兵,用以解决单机Redis的并发问题和故障恢复问题。操作系统是CentOS7,远程连接工具是WindTerm。 单机安装 首先,先安装单机的Redis 第一步:下载Redis压缩包 可在官网下载,下载完成后将压缩包复制到云服务器或者Linux虚拟机里; 我这里放在/tmp/essay目录下 第二步:安装Redis所需的依赖 我安装过了,首次安装需要一点时间 yu...

  7jPfnBIFtnum   14天前   13   0   0 数据库redis缓存

同一服务器部署多个tomcat时,存在端口号冲突的问题,所以需要修改tomcat配置文件server.xml,以tomcat7为例。 首先了解下tomcat的几个主要端口: <Connectorport="8080"protocol="HTTP/1.1" connectionTimeout="60000" redirectPort="8443"disableUploadTimeout="false" executor="tomcatThreadPool"URIEncoding="UTF-8"/> 其中8080为HTTP端口,8443为HTTPS...

  zNRyot8onCGb   14天前   21   0   0 服务器

一、ZooKeeper简介 ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。ZooKeepe提供了协调分布式应用的基本服务,它向外部应用暴露一组通用服务——分布式同步(DistributedSynchronization)、命名服务(NamingService)、集群维护(GroupMaintenance)等。ZooKeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。ZooKeeper包含一个简单的原语集,提供Java和C的接口。ZooK...

  zNRyot8onCGb   14天前   22   0   0 集群

考虑到只要有5,或者因子为5的数,就可以产生0的尾部。假如1234...250,那么250/5=50可以知道,有50个为5的倍数,但是里面有多少个为25的倍数,125的倍数..., 50/5=10,可知25的倍数有10个,10/5=2,可知125的倍数有两个,以此类推,代码如下: class Solution {  public:     // param n : description of n     // re...

  zNRyot8onCGb   14天前   15   0   0 结构算法

样例例如 n=12,k=1,在[0,1,2,3,4,5,6,7,8,9,10,11,12],我们发现1出现了5次(1,10,11,12) 代码如下: class Solution { public:     /       param k : As description.       param n : As description. ...

  zNRyot8onCGb   14天前   17   0   0 编程开发

SpringBoot其默认是集成web容器的,启动方式由像普通Java程序一样,main函数入口启动。其内置Tomcat容器或Jetty容器,具体由配置来决定(默认Tomcat)。当然你也可以将项目打包成war包,放到独立的web容器中(Tomcat、weblogic等等),当然在此之前你要对程序入口做简单调整。 项目构建我们使用Maven或Gradle,这将使项目依赖、jar包管理、以及打包部署变的非常方便。 一、内嵌Server配置 SpringBoot将容器内置后,它通过配置文件的方式类修改相关server配置。  其中常用的配置只有少数几个,已经用紫色标记起来。红框圈起来...

  zNRyot8onCGb   14天前   28   0   0 springboot

>SeleniumWebdriver 3.X源码分析系列第7篇,该系列原则上会将整个源码分享一遍 在大家的实践当中,经常需要在不同的环境(浏览器)中执行测试,在seleniumwebdriver中如何来实现在不同的环境中执行测试脚本呢? 在seleniumwebdriverpython驱动代码中提供了DesiredCapabilities类提供了相应的解决方案。 我们先看下DesiredCapabilities类定义中的文档说明 简单一句话:         基于seleniumgrid构建分布...

  zNRyot8onCGb   14天前   19   0   0 springbootjava

说明:之前有介绍过如何在项目中使用MinIO及整合成起步依赖在项目中使用,本文介绍如何使用Docker部署MinIO服务器。 安装Docker 首先,需要在服务器上安装Docker,参考Docker安装&卸载,Docker常用命令。 安装完之后,敲下面的命令查看Docker版本; docker-v 拉取MinIO镜像 输入下面的命令,拉取MinIO的镜像,不加版本号默认拉取最新的。 dockerpullminio/minio 启动容器 输入下面的命令,启动MinIO容器 dockerrun\ -d-p9000:9000-p9001:9001\ --nameminio\ ...

  zNRyot8onCGb   14天前   22   0   0 容器docker服务器

说明:RabbitMQ是一门异步通讯技术,使用异步通讯技术,可解决同步通讯的一些问题。 安装 本文介绍在云服务器上安装RabbitMQ,操作系统是CentOS7,远程连接工具是WindTerm; 第一步:拉取镜像 镜像版本选择,3.8-management dockerpullrabbitmq:3.8-management 我这里显示已经安装过,首次安装会下载一些文件,等下载完成即可; 第二步:运行容器 输入下面命令,运行RabbitMQ容器,设置登录账号为:root,密码:123456 dockerrun\ -eRABBITMQ_DEFAULT_USER=root\ -eRABBITM...

  zNRyot8onCGb   14天前   18   0   0 分布式rabbitmq

说明:记录一次对请求分发,无法登录系统的问题。 场景 如下,在此结构下,如何判断该用户是已登录的用户; 常规操作,用户登录后给用户发Token,同时将发放的Token存入到Redis中。要求用户后续请求需要用户携带Token访问。后端接口在处理请求之前,鉴别用户的Token(合法有效),通过校验才处理请求,不然返回对应的错误信息(未登录、已过期)。 在此之上,只需要后端服务器连接同一台Redis即可。 问题 我现在面临的问题是,两台后端服务器连接的Redis就是同一台。Nginx分发请求,策略是轮询,登录时访问的是后端服务器A,登录完成后接口访问后端服务器B,报“用户未登录或登录过期”信...

  zNRyot8onCGb   14天前   16   0   0 springcloudnginxjava

说明:Jenkins是一个部署项目的平台,通过Jenkins可以省去从项目开发–>部署项目之间的所有流程,做到代码提交即上线。本文介绍在云服务CentOS上安装Jenkins。 前提 安装Jenkins之前,先要在云服务上安装JDK、Maven、Git,安装请参考JDK安装,Maven安装,Git安装。 JDK安装的文章是安装JDK8,但是其他版本安装流程是一样的;Maven安装很简单,照着做就可以;提一下Git的安装,文章中,博主提供的Git命令,注意这个路径是Git解压后的目录路径/git,git是固定格式,不要写成路径/git-版本号(如我解压后的路径是/home/admin/...

  zNRyot8onCGb   14天前   18   0   0 Jenkinsspringboot运维

说明:在RabbitMQ消息传递过程中,有以下问题: 消息没发到交换机 消息没发到队列 MQ宕机,消息在队列中丢失 消息者接收到消息后,未能正常消费(程序报错),此时消息已在队列中移除 针对以上问题,提供以下解决方案: 消息确认:确认消息是否发送到交换机、队列; 消息持久化:持久化消息,以防MQ宕机造成消息丢失; 消费者消息确认:确认消费者已正确消费消息,才把消息从队列中删除; 消息确认 可以使用RabbitMQ提供的publisherconfirm机制来避免消息发送到MQ过程丢失。具体实现是,publisher-confirm(发送者确定)、publisher-return(发...

  zNRyot8onCGb   14天前   10   0   0 分布式rabbitmqjava

说明:日常工作中,我们经常会遇到这样的场景:核对A、B文件夹中文件的差异,找出A、B文件夹中不同部分的文件; 本文介绍如何使用Python来实现; 第一步:获取文件清单 首先,我们要获取到两个文件夹的所有文件名清单,这里假设A、B文件夹里面放的都是文件夹,没有多级目录。 如上,A、B文件夹大部分文件都是同名的,只有部分文件有差异; 获取文件夹内的文件清单,有两种方法: 第一种:在目录内打开CMD,敲dir,把文件名案按列选中,复制下来; 有一种快一点的办法,可以不用按住拖动,选择左上角的字符,按shift选中,然后就可以松开了,再拉动滚动条到右下角的字符,按住shift+alt,再...

  zNRyot8onCGb   14天前   17   0   0 计算机Python

说明:在微服务架构开发中,一个请求是通过模块之间的互相通信来完成的,如下面这个场景: 创建两个子模块:订单模块(端口8081)、用户模块(端口8082),两个模块之间没有联系,现在需要查询订单,根据订单中的用户ID,查询该订单对应的用户信息。 (两个模块是独立的) 用户实体类 importlombok.Data; importjava.io.Serializable; /用户/ @Data publicclassUserimplementsSerializable{ /ID/ privateLongid; /用户名/ privateStringusername; /地址/ ...

  zNRyot8onCGb   14天前   29   0   0 分布式springbootjava

  本文介绍基于Python语言,针对一个文件夹下大量的Excel表格文件,基于其中每一个文件,首先依据某一列数据的特征截取我们需要的数据,随后对截取出来的数据逐行求差,并基于其他多个文件夹中同样大量的Excel表格文件,进行数据跨文件合并的具体方法。   首先,我们来明确一下本文的具体需求。现有一个文件夹,其中有大量的Excel表格文件(在本文中我们就以.csv格式的文件为例),且每一个文件的名称都表示该文件对应的数据源点的ID;如下图所示。   其中,每一个Excel表格文件都有着如下图所示的数据格式;其中的第1列,是表示天数的时间数据,每一行数据之间的时间跨度是8天。   我们希望...

  zNRyot8onCGb   14天前   18   0   0 CSVPython

说明:通过百度地图提供的SDK,可以计算出两个地点之间的距离,另外还有行驶路线等等。本文介绍如何使用百度地图SDK,并用java代码实现。 申请 首先需要登录百度地图的官网,申请开发者认证,个人认证一般都很快 获取AK 第一步:选择地理编码 第二步:获取AK 第三步:设置应用名 第四步:复制AK 应用创建完成后,就可以达到一个AK,后面会用到; 接口一:地理编码 计算距离前,先要获取点地点的经纬度,找到刚刚地理编码里面的接口文档,查看这个接口文档的描述; 不难理解,只要把这个链接中的这两个地方替换成我们需要计算的地点信息,加上AK就可以了。 用postman测试一下,果然可...

  zNRyot8onCGb   14天前   20   0   0 java
推荐作者 更多

2023-11-08

2023-11-12

2023-11-21

2023-11-01

2023-11-02

2023-11-02

2023-11-02

2023-11-01

2023-11-02

2023-11-01