- 博客(257)
- 资源 (5)
- 问答 (1)
- 收藏
- 关注
原创 Docker部署容器与主机时间不一致问题
容器部署的应用,会出现时间与主机不一致的情况。有两种情况:一是容器内时间与主机时间不一致,二是容器与主机时间不一致,差距为。
2024-11-28 00:14:26
406
原创 linux 安装 mongodb
查看日志:/usr/local/mongodb7/log/mongod.log。我的系统是centos7.9 这里只能最高只能选择mongo7。mongosh 命令默认连接test数据库。选择你要安装mongo的版本和操作系统。
2024-11-10 21:25:16
778
原创 【无标题】
这种方法的优点是简单方便,不需要添加路径,并且可以直接引用当前目录下的模块。这种方法的优点是简洁明了,不需要手动添加路径,并且避免了命名冲突的问题。我们还可以使用__init__.py文件来引用当前目录下的模块。首先,在当前目录下创建一个名为__init__.py的空文件。首先,假设我们的代码文件位于当前目录下的子目录中。方法二:使用__init__.py文件。方法一:使用相对路径引用模块。
2024-10-09 23:20:50
183
1
原创 [Python] 函数入参中的 *args和**kwargs 是什么意思
Python函数中*args和**kwargs的用法,它们允许接收任意数量的位置参数和关键字参数。*args用于非关键字的可变参数,而**kwargs则用于接受键值对的可变参数。在调用函数时,字典参数需置于单实例参数之后。示例代码展示了如何定义和使用这些可变参数。
2024-10-09 22:23:43
301
原创 Servlet 3.0的异步处理
其中第二步的业务处理通常是最耗时的,这主要体现在数据库操作,以及其它的跨网络调用等,在此过程中,Servlet 线程一直处于阻塞状态,直到业务方法执行完毕。在处理业务的过程中,Servlet 资源一直被占用而得不到释放,对于并发较大的应用,这有可能造成性能的瓶颈。Servlet 3.0新增了异步处理,可以先释放容器分配给请求的线程与相关资源,减轻系统负担,原先释放了容器所分配线程的请求,其响应将被延后,可以在处理完成(例如长时间运算完成、所需资源已获得)时再对客户端进行响应。
2024-01-02 01:26:23
1400
原创 Redis cluster集群搭建
集群至少需要6个节点(3主3从模式),每一个节点可以搭建在同一台机器上,也可以搭建在不同的服务器上。[root@localhost ~]# wget https://download.redis.io/releases/redis-6.2.5.tar.gz[root@localhost ~]# tar -zxvf redis-6.2.5.tar.gz [root@localhost ~]# cd redis-6.2.5[root@localhost redis-6.2.5]# make[r
2021-09-01 22:54:26
416
1
转载 synchronized 优化手段之锁膨胀机制!
synchronized 在 JDK 1.5 之前性能是比较低的,在那时我们通常会选择使用 Lock 来替代 synchronized。然而这个情况在 JDK 1.6 时就发生了改变,JDK 1.6 中对 synchronized 进行了各种优化,性能也得到了大幅的提升,这也是目前版本中还能经常见到 synchronized 身影的重要原因之一。当然除了性能之外,synchronized 的使用也非常便利,这也是它流行的重要原因。在众多优化方案中,锁膨胀机制是提升 synchronized 性能最有利的
2021-08-18 23:51:47
293
原创 秒懂log4j1与log4j2的区别
相信很多程序猿朋友对log4j都很熟悉,随着技术的发展,log4j的结构、性能被很多新的日志框架所替代。在设计结构上比不上slf4j,在性能上比不上logback。于是apache对垂垂老矣的log4j进行一次重生,不是优化。虽然都叫log4j但是,他们是两个完全不同的东西,为了方便区分他们,给了两个别名:log4j1、log4j2。slf4j的成功在于他的高屋建瓴,俯视一切。slf4j是日志门面(像:java的接口,没有提供任何实现),通过提供各种桥接器,适配各种日志框架(log4j1,jul等)。l
2021-03-27 20:50:15
7997
原创 RabbitMQ之消息确认机制(事务+Confirm)
https://honeypps.com/mq/rabbitmq-message-confirm-strategy/
2020-12-13 18:40:32
239
原创 javac编译debug调试
javac编译器的入口在com.sun.tools.javac.Main类中,该类在tools.jar包中。如果没有tools.jar包,自己添加一下:写一个无法编译通过的类:package com.company;public class Test { public static void main(String[] args) { Integer a = "1"; }}idea会自动检查语法,这么写是idea会报错。所有我...
2020-11-29 20:59:22
1017
转载 http2
浏览速度慢?你的系统还没有升级到Http/2吗?开篇HTTP发展的心路历程上图:连接无法复用上图:设置Connection:Keep-Alive,保持连接在一段时间内不断开。上图:HTTPpipelining:建立多个连接上图:多路复用先对HTTP协议进行简单介绍1. HTTP协议 :Hyper Text Transfer Protocol(超文本传输协议),是用于从万维网(WWW:World Wide Web )服务器传输超文本到...
2020-11-15 20:16:47
550
原创 docker私有仓库搭建
拉取镜像:docker pull registry:2.7docker run -d -p 5000:5000 --privileged=true -v /D/docker/registry/var/lib/registry:/var/lib/registry --name=registry registry:2.7将我docker中tomcat:8镜像上传到 本地docker镜像厂库中。由于我的ip经常变动,这里在hosts文件中将www.localRegistry.c..
2020-11-01 12:57:47
235
原创 Java 程序读取Mysql数据库时间信息与真实时间相差 13、14 小时、SQLException: HOUR_OF_DAY: 2 -> 3
CST时区引起的异常:Java 程序读取Mysql数据库时间信息,与真实时间相差 13、14 小时java.sql.SQLException: HOUR_OF_DAY: 2 -> 3原因:Mysql 驱动:mysql-connector-java 升级到8版本后。将数据库时间解析到java时间,需要获取数据库的时区。java如何数据库时区:1、数据库连接中指明的时区,就用该时区,优先级最高。datasource.urljdbc:mysql://127.0.0.1:3306/your
2020-10-12 23:58:00
4940
5
原创 SpringGateway学习
认识GatewayFilter、GatewayFilterChain在SpringGateway中GatewayFilter、GatewayFilterChain这两个类,这很容易让我们想起ServletApi中的Filter、FilterChain。他们有什么关系呢?ServletApi:public interface Filter { public void doFilter(ServletRequest request, ServletResponse response, .
2020-09-12 14:18:11
1080
转载 静态代理之AspectJ编译织入
前面两篇文章都是说的在代码运行时动态的生成class文件达到动态代理的目的,那我们现在回到静态代理,静态代理唯一的缺点就是我们需要对每一个方法编写我们的代理逻辑,造成了工作的繁琐和复杂。AspectJ就是为了解决这个问题,在编译成class字节码的时候在方法周围加上业务逻辑。复杂的工作由特定的编译器帮我们做。AOP有切面(Aspect)、连接点(joinpoint)、通知(advice)、切入点(Pointcut)、目标对象(target)等概念,这里不详细介绍这些概念.AspectJ的使用如何
2020-09-05 15:41:03
2434
原创 学习springSecurit第二节-httpSecurity
前一节,我们已经了解了springSecurity的主体结构 ,这一节我们将分析HttpSecurity 是如何创建SecurityFilterChain的。HttpSecurity:HttpSecurity是用来创建SecurityFilterChain,这里要注意与WebSecurity区分,WebSecurity是用来创建Filter的。SecurityFilterChain:public interface SecurityFilterChain { boolean mat
2020-08-09 23:06:16
639
原创 学习springSecurit第一节-主体结构
@Configurationpublic class WebSecurityConfiguration implements ImportAware, BeanClassLoaderAware { /** * Creates the Spring Security Filter Chain */ @Bean(name = "springSecurityFilterChain") public Filter springSecurityFilterChain() throws Except.
2020-08-09 14:32:40
499
原创 Linux系统设置SSH免密连接
Secure Shell 协议,简称 SSH,是一种加密网络协议,用于客户端和主机之间的安全连接,并支持各种身份验证机制,目前最实用的身份验证机制就是基于密码的身份验证和基于公钥的身份验证两种。不过今天小编带来的是,Linux系统如何设置基于 SSH 密钥的身份验证。SSH秘钥登录采用的是非对称加密特点:1、公钥加的密,私钥才能解。私钥加的密,公钥才能解。2、公钥对外开放,任何人都可以获取,私钥不可泄露。张三是个linux 运维人员,管理100台linux 服务器,为了安全每台服务器的密码都不一样
2020-07-12 00:49:43
423
原创 Docker 容器开启ssh登录
Docker 容器开启ssh登录登录容器:docker exec -it containId bash修改密码:[root@c51dfb838b52 ~]# passwd查看是否已经安装了ssh服务:[root@c51dfb838b52 ~]#service ssh status安装ssh服务:linux发行版本不同自带的包管理工具也不同 常用的是apt、apt-get、yum、apk。一个一个试试。使用前一定要更新一下 apt update 、apt-get update 等安装:ap
2020-07-11 22:55:52
1910
原创 apollo配置中心(一)
1、Apollo简介Apollo(阿波罗)是携程框架部门研发的开源配置管理中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性。Apollo支持4个维度管理Key-Value格式的配置:environment (环境) application (应用) cluster (集群) namespace (命名空间)同时,Apollo基于开源模式开发,开源地址:https://github.com/ctripcorp/apoll
2020-07-04 19:19:28
3594
原创 RabbitMQ排他性队列
如果你想创建一个只有自己可见的队列,即不允许其它用户访问,RabbitMQ允许你将一个Queue声明成为排他性的(Exclusive Queue)。该队列的特点是:只对首次声明它的连接(Connection)可见。 会在其连接断开的时候自动删除。对于第一点,首先是强调首次声明,因为另外一个连接无法声明一个同样的排他性队列;其次是只区别连接(Connection)而不是通道(Channel),从同一个连接创建的不同的通道可以同时访问某一个排他性的队列。这里说的连接是指一个AMQPConnectio
2020-06-13 22:21:18
2888
转载 RabbitMQ BasicProperties
简介当使用RabbitMQ发布消息时,消息又AMQP规范中的三个低层帧类型组成:Basic.publish方法帧; 内容头帧; 消息体帧;这三种帧类型按顺序一起工作,以便消息传递时完好无损。其中,内容头帧中的消息属性是一种预定义的值,这些值通过设置Basic.Properties数据结构进行指定:content-type属性:让消费者知道如何解释消息体; content-encoding属性:指示消息体使用某种特殊的方式进行压缩或编码; message-id和correlati
2020-06-07 09:07:09
2108
原创 RabbitMQ 消息确认
正常情况下,如果消息经过交换器进入队列就可以完成消息的持久化,但如果消息在没有到达broker之前出现意外,那就造成消息丢失,有没有办法可以解决这个问题?RabbitMQ有两种方式来解决这个问题:一、事务使用事务的实现主要是对信道(Channel)的设置,主要的方法有三个:channel.txSelect()声明事务模式;channel.txComment()提交事务;channel.txRollback()回滚事务;// 创建连接ConnectionFactory facto.
2020-06-05 23:10:20
276
原创 mq
批量确认:一个消费者和rabbitmq服务器建立连接会创建一个channel ,rabbitmq每发向这个channel 发送消息,deliveryTag就会+1 ,从1开始,deliveryTag就是消息的编号 1、2、3……。deliveryTag交付标记的作用域是每个信道,所以必须在接收消息的信道上进行确认。首先发10条消息import com.rabbitmq.client.*;public class MyProducer { private final static .
2020-05-30 23:38:01
245
原创 通过 Lettuce 来操作 Redis
Java 操作 Redis 的库有两个,Jedis 和 Lettuce,目前 SpringBoot 2.x 中已经将 Jedis 换成了 Lettuce,让我们一起来看看这个东西。Redis介绍Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。相比Memcached它支持存储的类型相对更多(字符、哈...
2019-12-22 21:38:07
1838
1
原创 CompletableFuture 使用详解
CompletableFuture 使用详解1、 runAsync 和 supplyAsync方法CompletableFuture 提供了四个静态方法来创建一个异步操作。public static CompletableFuture<Void> runAsync(Runnable runnable)public static CompletableFuture&...
2019-12-22 15:39:54
7494
4
原创 spEl 表达式
Spring 表达式语言 Spring Expression Language(简称 SpEL )是一个支持运行时查询和操作对象图的表达式语言 。 语法类似于 EL 表达式 ,但提供了显式方法调用和基本字符串模板函数等额外特性 。SpEL 虽然作为 Spring 家族中表达式求值的基础,但却可以被独立使用。依赖:<dependency> <groupId>o...
2019-12-08 22:19:01
311
原创 windows键盘在 mac 上的设置
windows键盘在 mac 上的设置在默认设置下:windows 键盘插入mac 电脑,在默认设置下:键盘上 Shift 键会被 mac 识别为 Shift 键盘上 Ctrl 键会被 mac 识别为 Control 键盘上 Win 键会被 mac 识别为 Command 键盘上 Atl 键会被 mac 识别为 Option情况1:如果你已经习惯了...
2019-12-08 14:35:48
27373
1
转载 cglib
什么是CGLIBCGLIB(Code Generator Library)是一个强大的、高性能的代码生成库。其被广泛应用于AOP框架(Spring、dynaop)中,用以提供方法拦截操作。Hibernate作为一个比较受欢迎的ORM框架,同样使用CGLIB来代理单端(多对一和一对一)关联(延迟提取集合使用的另一种机制)。为什么使用CGLIBCGLIB代理主要通过对字节码的操作,为对象引入间接...
2019-11-24 21:01:38
302
原创 Java Bridge Method
bridge method如果一个类继承了一个范型类或者实现了一个范型接口, 那么编译器在编译这个类的时候就会生成一个叫做桥接方法的混合方法(混合方法简单的说就是由编译器生成的方法, 方法上有synthetic修饰符), 这个方法用于范型的类型安全处理, 用户一般不需要关心桥接方法。实例://范型接口public interface Parent<T> { v...
2019-11-18 23:08:40
417
原创 git
diff$ git diff #比较工作区和缓存区的不同$ git diff --cached #比较缓存区和 HEAD 不同$ git diff HEAD #比较工作区和 HEAD 不同,就里的 HEAD 也可换成任意版本号例比较工作区和缓存区的不同:比较缓存区和 HEAD 不同:比较工作区和 HEAD 不同,就里的...
2019-11-16 11:00:31
679
原创 git 实例
实例一、git使用过程中使用reset 进行版本回退。原始版本文件:对 test1目录中的三个文件进行改动:file1_1.txt修改、file1_2.txt 删除、file1_3.txt重命名、file1_4.txt 新增。并 commit。对 test2目录中的三个文件进行改动:file2_1.txt修改、file2_2.txt 删除、file2_3.txt重命名...
2019-11-16 10:59:21
228
原创 docker 各种容器的配置
mysqldocker run -p 3307:3306 --name mysql -v /docker/mysql/conf:/etc/mysql/conf.d -v /docker/mysql/logs:/logs -v /docker/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=hong10086 -d mysql:5.7.27...
2019-11-02 23:25:24
520
1
原创 jenkins 构建 maven 项目
jenkins 构建 maven 项目选择第二个构建一个 maven 项目 。如果没有该选项需要安装Maven Integration插件。从上到下的配置是(构建时也是按照从上到下进行执行的):1.General就是项目详情,根据项目情况实际情况随意填写.2.源码管理源码的位置,是在 git 上还是在 svn 上,并填写拉取地址。这里用的是 git作为演示,Repositor...
2019-11-02 15:24:33
413
转载 dockerFile
什么是dockerfile?Dockerfile是一个包含用于组合映像的命令的文本文档。可以使用在命令行中调用任何命令。 Docker通过读取Dockerfile中的指令自动生成映像。docker build 命令用于从Dockerfile构建映像。可以在docker build命令中使用-f标志指向文件系统中任何位置的Dockerfile。例:docker build -f /path/...
2019-10-30 16:12:49
233
原创 java valid
定义的校验类型@Null :验证对象是否为null @NotNull 验证对象是否不为null, 无法查检长度为0的字符串@NotBlank:检查约束字符串是不是Null还有被Trim的长度是否大于0,只对字符串,且会去掉前后空格.@NotEmpty:检查约束元素是否为NULL或者是EMPTY.@CreditCardNumber:信用卡验证@Email:验证是否是邮件地址,如...
2019-10-18 21:47:33
1430
原创 ElasticSearch安装
一、安装Java SE环境在安装Elasticsearch引擎之前,必须安装ES需要的软件环境注意:运行需要jdk1.8及以上二、安装ElasticSearch(一)下载ElasticSearch官网:https://www.elasticsearch.orgElasticSearch下载地址:https://www.elastic.co/downloads/elasti...
2019-09-04 15:43:32
238
原创 git 公钥私钥生成
1、安装git2、进入git安装目录双击bash.exe输入:ssh-keygen -t rsa -C "邮箱@qq.com"
2019-09-03 17:16:40
207
原创 Java 正则表达式
ava 正则表达式。java.util.regex 包主要包括以下三个类:Pattern 类: pattern 对象是一个正则表达式的编译表示。Pattern 类没有公共构造方法。要创建一个 Pattern 对象,你必须首先调用其公共静态编译方法,它返回一个 Pattern 对象。该方法接受一个正则表达式作为它的第一个参数。 Matcher 类: Matcher 对象是对输入字...
2019-09-02 15:28:26
246
pl/sql中文版 免安装
2017-10-27
php cookie 无法写入不知道为什
2015-11-17
TA创建的收藏夹 TA关注的收藏夹
TA关注的人