自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(211)
  • 资源 (11)
  • 收藏
  • 关注

原创 linux centos7环境下修改oracle19c监听IP并重启

在linux服务器centos7上新安装的oracle19c,结果发现客户端怎么都连不上。可以看到监听端口的ip为127.0.0.1。是本地回环路由。其他服务器无法访问这个地址。

2022-07-21 18:39:11 4093 1

原创 在windows上配置git支持多账号

现在大多数人都采用git进行版本管理,在git下面进行开发被越来越多的程序员所接受。还有越来越多的人参与开源社区的建设。现在有一个问题就是,在windows环境下,如何在git客户端上通过sshkey的方式配置多个账号。不需要输入git的用户名和密码,使得更加方便高效。...

2022-07-20 20:31:35 1115

原创 在windows上编译Inlong所遇到的问题

1.Hadoop相关的问题在windows中,由于Inlong的很多单元测试用例都需要用到hadoop的相关组件进行测试。可以采用winunits配合测试,winutils是windows上专门配合hadoop和yarn测试的工具。在github上下载该工具:git clone https://github.com/steveloughran/winutils.git之后选择一个版本,配置环境变量:HADOOP_HOME D:\workspace\github-work\winutils\

2022-04-30 20:34:42 966 1

原创 使用docker部署golang http服务时遇到的一个问题

需要使用docker将golang的httpserver容器化。在这个过程中遇到了一个弱智问题,特此记录。1.背景1.1 问题描述问题描述:docker镜像启动成果之后,通过curl不能访问:[root@hecs-205828 ~]# curl -XGET http://127.0.0.1:8360/hellocurl: (56) Recv failure: Connection reset by peer1.2 webserver代码go文件:main.gopackage main

2022-03-07 17:29:04 956

原创 架构训练营模块二作业

分析一下微信朋友圈的高性能复杂度【作业要求】对照模块2讲述的复杂度分析方法,分析微信朋友圈的复杂度。针对各个复杂度,画出你的架构设计方案(无需做备选方案,只需要最终的方案即可)。给出你的架构方案中关键的设计理由。3~5页PPT 即可,涵盖复杂度分析、架构设计、设计理由。【提示】分析过程可以参考模块2第5课的实战案例,但是不需要将分析过程一一列举出来。如果某个地方被卡主了,请及时联系助教或者老师讨论。朋友圈复杂度分析:业务复杂度:朋友圈的业务复杂度比较低,只有内容发布、查看和评论和点赞

2021-12-16 10:14:36 1676

原创 架构训练营模块一作业

画出微信的业务架构图。“学生管理系统”毕设架构设计假设今年学校毕业设计要求提升,要求做真正可运行的学生管理系统,学院对毕设的具体要求如下:① 要求可以通过公网域名访问;② 要求至少3 人合作完成;③ 能够支撑管理1000 个学生;④ 答辩的时候会根据架构方案来进行打分,不推荐太简单和太复杂的方案。你找了2 个好朋友一起来做这个项目,你们的基本情况如下:① 大家都会Java,但是有一个是PHP 高手;② 大家经济条件一般。作业要求:① 对照面向复杂度架构设计方法论,构思2 个以上.

2021-12-09 18:22:59 2220

原创 Druid源码阅读10-DruidDataSource中的一些计数器

在Druid连接池的工作过程中,会用到一些计数器对Druid的情况进行判断。然后根据计数器的数据采取一系列操作,整理如下:1.统计类的计数器变量名类型说明connectCountlonggetConnectionInternal被调用之后就会增加,意味着连接被get的次数。closeCountlong连接调用recycle中,包括回收、关闭等情况,成功之后会增加,标识连接关闭的次数。recycleCountlong连接调用recycle成功之后才会增加,不包

2021-11-19 20:48:50 1157

原创 Druid源码阅读9-DruidDataSource和DruidConnection中的状态

DruidPooledConnection中的状态:字段类型所在类默认值说明closedvolatile booleanDruidPooledConnectionfalse关闭状态,recycle到连接池中的连接会修改为true。但是这个状态通常只在checkStateInternal中单独使用。判断连接是否关闭需要结合(closed or disable)disablevolatile booleanDruidPooledConnectionfal

2021-11-18 18:20:57 897

原创 Druid源码阅读8-DruidDataSource的removeAbandoned机制

有关于Druid的removeAbandoned机制,在getConnection源码中介绍过。removeAbandoned实际上就是Druid的泄露检测机制。主要的参数有:参数说明removeAbandoned如果连接泄露,是否需要回收泄露的连接,默认false;logAbandoned如果回收了泄露的连接,是否要打印一条log,默认false;removeAbandonedTimeoutMillis连接回收的超时时间,默认5分钟;removeAbandon

2021-11-17 18:39:18 1114

原创 Druid源码阅读7-DruidDataSource的recycle过程

Druid中的Connection在使用之后,要进行回收,而回收连接的方法就是recucle方法。回收的主要目的是将连接的状态清空/重置之后,放置到连接池的connections数组的尾部,然后发送连接池lock的notEmpty条件变量通知消息,让等待的消费者线程来获取连接。1.回收过程回收方法首先要做的是,判断回收线程是否为同一个线程。如果不是,则打印日志输出。if (logDifferentThread // && (!isAsyncCloseConnectionEna

2021-11-16 19:40:09 773

原创 Druid源码阅读6-PreparedStatementPool源码及使用场景分析

**在阅读DruidDataSource源码的过程中,发现DruidConnectionHolder有个特别的属性PreparedStatementPool statementPool。根据经验可知,这是DruidPreparedStatement进行缓存的cache。我们在使用PreparedStatement的过程中,由于PreparedStatement对sql语句的解析和参数的注入是分开的,因此,加入cache之后,可以在同一个连接上,对相同sql,不同参数的请求进行复用。1.开启参数如果要

2021-11-15 20:19:11 1557

原创 Druid源码阅读5-DruidDataSource的shrink过程

shrink方法是DestroyTask线程中回收连接的具体执行方法。首先获得锁:try { lock.lockInterruptibly();} catch (InterruptedException e) { return;}之后,要判断初始化状态是否完成,如果采用异步初始化,可能DestoryTask线程已经启动,但是连接池还没有初始化完成。if (!inited) { return;}之后对连接池中的连接进行遍历,connections中,可连接的连接数记

2021-11-13 23:23:03 925

原创 Druid源码阅读4-DruidDataSource的getConnection过程

DruidDataSource连接池实现了javaX.sql包中,DataSource接口的全部方法。getConnection也来自于javaX.sql.DataSource接口。而DruidPooledConnection也实现了接口java.sql.Connection。这样就能在各种场景中通过这个接口来获取数据库连接。1.fileter处理–责任链模式在执行getConnection方法的过程中,首先确认DataSource是否完成了初始化。由于 init方法采用了Double Check机

2021-11-11 14:38:53 1723

原创 Druid源码阅读3-DruidDataSource连接池的基本原理

DruidDataSource数据库连接池的的本质,实际上是一个利用ReentrentLock和两个Condition组成的生产者和消费者模型。1.DruidDataSource中的锁在DruidAbstractDataSource类中,定义了一个非常重要的锁,几乎所有的线程都使用到了这个锁。//可重入锁 lockprotected ReentrantLock lock;//非空条件变量protected Condition

2021-11-10 16:34:39 1779

原创 Druid源码阅读2-DruidDataSource的init过程

DruidDataSource的使用都是创建DruidDataSource对象,set配置参数之后,调用init方法。通过mock测试实例化DruidDataSource:DruidDataSource ds = new DruidDataSource();ds.setUrl("jdbc:fake:dragoon_v25masterdb");ds.setUsername("tddl5");ds.setPassword("tddl5");ds.setFilters("stat");ds.init

2021-11-09 18:24:03 1649

原创 Druid源码阅读1-DruidDataSource数据结构

DruidDataSource是DruidCP最关键的类之一,承载了连接池的启动、关闭、以及连接的获取和管理等功能。其内部关键的的数据结构如下表:nametype说明connectionsvolatile DruidConnectionHolder[]pool的关键数组,存放连接,实际上是DruidConnectionHolder的数组。Connection由DruidConnectionHolder持有evictConnectionsDruidConnectionHo

2021-11-08 20:26:42 713

原创 kafka-manager(cmak)安装及使用

1.软件下载kafka-manager 工具目前改名为cmak,下载地址为:https://github.com/yahoo/CMAK/releases/tag/3.0.0.5现在下载最新版本的cmak文件:cmak-3.0.0.5.zip将该文件下载并放置到/opt/software目录。此外,根据官网描述,要求jdk版本为jdk11。jdk-11.0.13_linux-x64_bin.tar.gz下载路径https://www.oracle.com/java/technologies/do

2021-11-04 20:10:42 3252

原创 kafka3.0集群搭建过程

1.环境说明服务器资源规划如下表:IPhostname部署资源192.168.162.201m162p201zookeeper,kafka192.168.162.202m162p202zookeeper,kafka192.168.162.203m162p203zookeeper,kafka操作系统版本(三个节点均相同):[root@m162p201 software]# lsb_release -aLSB Version: :core-4.1

2021-11-03 19:53:13 3068 3

原创 RabbitMQ在Springboot下的使用

在springboot下操作rabbitMQ。1.pom文件配置pom文件配置如下: <!-- Spring Boot --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </depen

2021-11-02 15:43:22 1234

原创 RabbitMQ 3.9.8 的rpm安装方式

文章目录1.rpm包下载2.rpm安装3.配置及启动rabbitmq4.遇到的一些常见的错误4.1 端口被占用错误4.2 增加用户报错之前采用源码的方式安装erlang,之后再来安装rabbitMQ,这种方式有一些复杂。现在参考官网,可以直接用rpm安装。本文对安装过程进行描述。官方参考Installing on RPM-based Linux (RedHat Enterprise Linux, CentOS, Fedora, openSUSE)1.rpm包下载需要安装的操作系统信息:[root@

2021-11-01 15:48:34 767

原创 Hazelcast4.2.2 集群测试百万数据下的故障转移

本文测试在Hazelcast集群中,写入百万级别的数据,对其故障转移过程进行测试。1.环境准备Hazelcast4.2.2 在springboot下配置3节点集群并测试对map的操作的基础上,搭建3节点的Hazelcast集群。springboot启动的端口为 8081、8082、8083.2.写入数据写入数据代码:package com.dhb.hazelcast.demo.client;import com.hazelcast.client.HazelcastClient;impor

2021-11-01 10:58:15 616

原创 Hazelcast4.2.2 在springboot下配置3节点集群并测试对map的操作

本文尝试在springboot下组建一个3节点的hazelcast集群。基础配置使用参考 Hazelcast4.2.2 在springboot下的使用1.pom配置需要导入的依赖jar包: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId>

2021-10-29 20:22:59 561

原创 Hazelcast4.2.2 在springboot下的使用

Hazelcast是一款由Hazelcast开发的基于jvm环境的为各种应用提供分布式集群服务的分布式缓存解决方案。可以嵌入到java、c++、.net等开发的产品中使用。其主要功能有:提供了 Map、Queue、MultiMap、Set、List、Semaphore、Atomic 等接口的分布式实现;提供了基于Topic 实现的消息队列或订阅\发布模式;提供了分布式id生成器(IdGenerator);提供了分布式事件驱动(Distributed Events);提供了分布式计算(Distr

2021-10-29 19:46:33 1154

原创 Springboot基于JMS整合ActiveMQ实现对queue和topic的操作

1.maven配置project中需要import的代码: <dependencies> <!-- Spring Boot --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId>

2021-10-28 17:10:59 661

原创 ActiveMQ 安装及使用过程

1.安装jdk在CentOS操作系统中,可以下载rpm包直接安装。[root@m161p114 ~]# lsb_release -aLSB Version: :core-4.1-amd64:core-4.1-noarch:cxx-4.1-amd64:cxx-4.1-noarch:desktop-4.1-amd64:desktop-4.1-noarch:languages-4.1-amd64:languages-4.1-noarch:printing-4.1-amd64:printing-4.1-noa

2021-10-28 14:52:48 684

原创 Redis 6.2.6 Cluster搭建过程

1.环境准备环境规划如下,准备了6个redis节点:hostnameipredis portm161p114192.168.161.1146380m161p114192.168.161.1146381m161p115192.168.161.1156380m161p115192.168.161.1156381m162p203192.168.162.2036380m162p203192.168.162.2036381每个节点的

2021-10-27 17:51:32 520

原创 Redis和Sentinel搭建一主多从高可用集群

本文将利用redis的sentinel,实现redis集群的高可用。1.服务器规划服务器资源规划如下表:机器名ipredis portredis statussentinel portm161p114192.168.161.1146379master26379m161p115192.168.161.1156379slave26379m162p203192.168.162.2036379slave26379将搭建一个redis一主两从的

2021-10-26 17:25:30 356

原创 Redis主从复制的配置过程

1.服务器信息有两个已经启动的redis节点:机器名IPportm161p114192.168.161.1146379m161p115192.168.161.1156379现在需要将上述redis节点配置为主从复制。2. 主从复制的建立在redis的配置文件中加上 slaveof 即可实现。配置前,查看m161p114中的内容如下:[root@m161p114 ~]$ redis-cli127.0.0.1:6379> keys *1) "\

2021-10-26 10:44:32 255

原创 Redis6.2.6在Centos7上的安装过程

文章目录1.系统环境2.gcc升级3.编译及安装redis4.通过install_server.sh配置servie服务5.修改配置文件1.系统环境操作系统:[root@m161p114 software]# lsb_release -aLSB Version: :core-4.1-amd64:core-4.1-noarch:cxx-4.1-amd64:cxx-4.1-noarch:desktop-4.1-amd64:desktop-4.1-noarch:languages-4.1-amd64:la

2021-10-21 11:08:22 2289

原创 在Dubbo中基于Hmily TCC实现银行转账

文章目录1.背景知识1.1 BASE 柔性事物1.2 BASE柔性事物的常见模式1.3 hmily1.4 案例说明2.数据库设计2.1 账户相关的表2.2 TCC相关的表3.Dubbo project配置3.1 project规划3.2 pom文件3.2.1 父项目的pom文件3.2.2 api的pom文件3.2.3 orm的pom文件3.2.4 bank1的pom文件3.2.5 bank2的pom文件3.2.6 client的pom文件3.3 yml配置文件3.3.1 bank1的yml配置3.

2021-10-14 13:35:05 427 1

原创 ShardingSphere-jdbc5.0实现水平拆分的两种不同拆分方法

如果有一个数据库gts中,存在一张订单表t_order_summary,这个表的数据量特别大。现在考虑对这张表进行水平拆分。具体的拆分方法有如下两种。1.按order_id字段拆分表可以将t_order_summary按order_id拆分到多个表如32个表,然后将32个表拆分到不同的数据库中。如将t_order_summary拆分之后效果如下:数据库gts01:+--------------------+| Tables_in_gts01 |+--------------------+

2021-09-24 17:30:07 353

原创 使用ShardingSphere5.0进行数据库水平拆分过程以及所踩的坑

在学习过ShardingSphere-JDBC相关的操作之后,现在使用其对数据库进行水平拆分。1.环境准备1.版本信息mysql的版本:[root@m161p114 sql]$ mysql -uroot -pmysql;mysql: [Warning] Using a password on the command line interface can be insecure.Welcome to the MySQL monitor. Commands end with ; or \g.Yo

2021-09-23 21:24:18 1446 1

原创 springboot2.0集成ShardingSphere-jdbc5.0-alpha所遇到的一些坑

在springboot 2.5.3中配置使用ShardingSphere 5.0-alpha遇到了不少的坑,现在总结如下:1.没有使用shardingsphere-jdbc-core-spring-boot-starter在使用ShardingSphere的过程中,首先参考了下快速入门:https://shardingsphere.apache.org/document/5.0.0-alpha/cn/quick-start/shardingsphere-jdbc-quick-start/这个地方有

2021-09-21 01:16:51 5555 7

原创 Springboot环境中多个DataSource基于自定义注解进行切换使用过程

前面配置了mysql数据库的主从复制模式,在数据库上实现了master-slave配置,通过这种方式可以实现一主一从,或者一主多从,从而提升系统的高可用。这是数据库层面的实现。在数据库实现了主从模式之后,我们需要考率的问题就是,在我们的应用代码中,如何将不同的数据库操作按需要分配到不同的数据库去执行。1.需要的依赖 implementation 'org.springframework.boot:spring-boot-starter' implementation 'org.sprin

2021-09-18 20:17:54 1618

原创 Mysql5.7主从复制配置全过程

mysql主从复制是最常见的高可用方式,通过主-从的方式,实现系统的高可用。在生产环境种,通常采用一主多从的方式,通过主库写数据,从库读数据,来提升系统的性能。现在就演示一下,mysql5.7之下,如何配置主从复制。1. 环境准备两台安装好mysql数据库的服务器如下:序号服务器IP主/从mysql版本1192.168.161.114主5.7.342192.168.161.115从5.7.342.主库配置查看主库log配置:mysql> sh

2021-09-17 21:03:25 844

原创 在Springboot中使用ThreadPoolExecutor线程池

在springboot项目中如果需要用到ThreadPoolExecutor线程池的话是非常方便的。比使用java并发包中的Executors都还方便很多。实际上spring中的线程池ThreadpoolExecutor只是对java并发包中的线程池的封装。这样便于在spring环境中快速使用。通过几个注解即可,降低了对代码的侵入性。1.ThreadPoolExecutor配置在本文中,将使用spring提供的ThreadPoolTaskExecutor进行配置。1.1 yml中的配置参数配置参数

2021-09-17 15:10:34 2972 1

原创 Mysql5.7在CentOS7中基于源码无错安装(亲测有效)

鉴于之前安装不带boost版本的mysql,由于boost头文件的问题,导致在编译boost的过程中出现各种各样的问题。在官网发现居然现在有在源码中带boost头文件的版本,那么现在就验证一下这个版本的安装过程。1 安环境准备1.1 操作系统操作系统信息:[root@m161p115 mysql]# lsb_release -aLSB Version: :core-4.1-amd64:core-4.1-noarch:cxx-4.1-amd64:cxx-4.1-noarch:desktop-4.1-

2021-09-16 15:39:07 377

原创 不同的数据库连接池(DBCP,C3P0,Druid,Hikari)下对mysql的随机update和insert性能对比

第二部分,对insert和update进行测试:1 环境准备分别准备了Insert和Update两种场景,其中,对于Update场景,还准备了通过索引更新和不走索引更新两种情况。1.1 Update代码如下:package com.dhb.gts.javacourse.week6.mysqltest;import com.dhb.gts.javacourse.fluent.dao.intf.OrderSummaryDao;import com.dhb.gts.javacourse.fluen

2021-09-14 17:41:30 573 1

原创 不同的数据库连接池(DBCP,C3P0,Druid,Hikari)下对mysql的insert和select性能对比

分别测试4中连接池(DBCP、C3P0、Druid、Hikari)的表现情况。1.环境准备1.1 连接池配置1.1.1 DBCPgradle导入包;implementation 'org.apache.commons:commons-dbcp2:2.9.0'application.yml配置:# DBCPspring.datasource.url: jdbc:mysql://192.168.162.49:3306/gts?useSSL=false&autoReconnect=tru

2021-09-14 11:37:41 698

原创 将MapperScan错误使用导致的BindingException问题

文章目录1.环境说明2.问题说明3.问题分析在前面的代码中,使用fluent mybatis的mapper对表进行增删改查都没有问题。但是fluent mybatis官方也说了,自动会生成dao层代码,将dao及其实现类都生成好了。因此也想尝试下生成的代码使用的效果。此外,由于不想建多个project来进行测试,因此对于不同的测试,都在src/main/java下面弄各种不同的包来进行区分。本次测试的package:com.dhb.gts.javacourse.week6.mysqltest目录。1

2021-09-13 18:20:01 518

Session Importer.7z

从SecurtCRT迁移到XShell的工具。注意缺省目录: C:\Users\Administrator\AppData\Roaming\NetSarang\Xshell\Sessions 如果在XSell中无法找到导入的session,则将上述目录中的文件copy到缺省的Session目录。

2021-07-12

阿里云技术面试红宝书.7z

阿里云技术面试红宝书,阿里云开发者社区Offer 5000独家资料。阿里云技术面试真题公开。大数据、数据库领域。

2020-09-12

mysql-8.0-en.pdf

MySQL 8.0 Reference Manual 英文版本。深入学习mysql最佳技术文档。 Including MySQL NDB Cluster 8.0

2020-07-30

spring整合cxf 实现webservice

前几天在网上找了很多资料来学习webservice 发现都很难看懂 不过终于还是搞定了 现在吧自己的心得贴出来

2010-07-27

java函数速查手册常用函数

速查java函数 常用函数都有 很方便 对java初学者很有帮助

2009-11-23

struts2-API.7z

struts2-API.7z struts2帮助文档

2009-02-06

PL_SQL基础.7z

PL_SQL基础.7z PL_SQL基础.7z

2009-02-06

Ora9iSQLRef.7z 帮助文档

Ora9iSQLRef.7z 帮助文档 7zip解压

2009-02-06

j2ee14.7z 帮助文档

j2ee14.7z 帮助文档 7zip解压

2009-02-06

Oracle九阴真经

Oracle九阴真经 chm帮助文档 7zip解压

2009-02-06

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除