- 博客(67)
- 收藏
- 关注
原创 docker 中修改Kafka得topic配置,抛出: java.rmi.server.ExportException: Port already in use: 9999
问题笔记
2022-06-20 15:46:49 736
原创 线程池原理分析
Java中提供的线程池的APIExecutors中提供了几个线程池的工厂方法:newFixedThreadPool:该方法返回一个固定数量的线程池,线程数不变,当又一个任务提交时,若线程池中空闲,则立即执行,没有,就被展示缓存到一个任务队列中,等待有空闲到线程去执行。newSingleThreadPool:创建一个线程的线程池,若空闲则执行,若没有空闲线程则暂缓在任务队列中。newCachedThreadPool:返回一个可根据实际情况调整线程个数的线程池,不限制最大线程的数量,若有空闲的线
2022-05-15 11:08:13 126
原创 一、JVM内存模型,调优操作
JDK官网:https://docs.oracle.com/javase/8/JVM有两种模式 Client模式和server模式client模式使用的是轻量级的编译器,server模式使用的是重量级的编译器,server模式下编译器在编译的时候相对而言更加的彻底,服务启动之后性能更高,但是启动的时候比较耗时,速度较慢;在JDK安装完成之后,输入命令Java -version 就可以查看信息:(默认mixed mode混合模式--由jdk自己进行选择,通常是server模式)➜ /.
2022-01-09 13:08:29 1036
原创 二、调优案例分析
1、高性能的硬件上的程序部署策略1.1、目前主要有两种方式:1.1.1、通过64位JDK来使用大内存利:可以减少FUll GC对频率 弊:内存回收导致的长时间停顿、相同的程序在64位的JDK中消耗的内存普遍高于32位的JDK(由于指针膨胀和数据类型对齐填充等因素导致)、需要保证程序足够稳定,因为这种应用如果产生了堆溢出几乎无法产生堆转存储快照(因为要产生十几GB乃至更大的Dump文件),就算产生了快照几乎无法进行分析;1.1.2、使用若干个32位虚拟机建立逻......
2022-01-09 13:05:58 1149
原创 理解Spring Application
我们在创建一个Spring boot应用的时候,通常都是使用SpringApplication或者SpringApplicationBuilder API,通过执行run方法进行启动Spring Boot应用;我们可以将整体的生命周期总结为以下几个阶段:SpringApplication的初始化阶段SpringApplication的运行阶段SpringApplication的结束阶段Spring Boot应用的退出大致结构如下:以上几个阶段又有细化的步骤,我们一起来分析下.
2021-12-28 10:53:38 689
原创 MySQL --全文索引
全文索引官网说明:全文索引只能在text,char , varchar类型字段上创建全文索引;创建:CREATETABLE`article`( `id`int(10)unsignedNOTNULLAUTO_INCREMENT, `title`varchar(200)DEFAULTNULL, `content`text, PRIMARYKEY(`id`), FULLTEXTKEY`fulltext_article`(`title`,...
2021-03-11 16:17:49 322
原创 分布式服务治理-dubbo_简单的源码分析1
一、dubbo 的衍生随着服务技术架构的发展,大部分公司都从单体架构发展到了分布式架构,而单体架构与分布式架构最大的区别就是分布式架构需要进行服务的远程通讯;然而随着服务的复杂度增大,我们对分布式架构的要求就不仅仅局限于远程通讯,传统的RPC框架已经无法满足现在的需求;我们需要对集群中每个节点的服务进行监控;并且需要对大规模的服务集群进行服务的注册和发现;还需要对大规模的客服端的访问进行请求的分发(负载均衡);当服务之间产生了网络异常,为了避免大规模的系统故障,还需要增加容错机制。现在很多的公司都有了自
2021-03-11 10:40:21 205 1
原创 MySQL中SQL执行流程与架构
一、数据SQL的执行流程我们操作数据库的方式:在服务器中中使用命令行来操作,数据库工具Navicat,JDBC API或者ORM框架在这些操作方式向服务器发起数据操作的之后,MySQL服务器又是如何执行接收到的SQL语句呢?SQL语句在MySQL中的执行流程:1、通信方式MySQL 支持多种的通信协议,支持长连接和短连接,支持同步/异步的方式;查看当前的连接数量:show global status like 'Thread%'查询的结果为:+---------.
2021-03-11 10:37:48 243 1
原创 MySQL 数据为NULL造成的问题
如果表table中某列 column_nam存在null值;other_name不存在null值;1、count() 在进行count(column_name) 会存在数据丢失的问题,解决方案使用:count(*)进行统计count(*) 会统计值为 NULL 的行,而 count(列名) 不会统计此列为 NULL 值的行。2、distinct distinct(column_name,other_name) 数据丢失;other_name 10条数据,结果distinct输....
2021-03-11 10:35:52 2056 1
原创 ZooKeeper基本概念和基本操作
一、Zookeeper的应用场景1、维护配置信息2、分布式锁服务3、集群管理4、生成分布式唯一ID二、Zookeeper的数据结构:树状节点组成,如下图所示:节点可以分为临时节点和持久化节点,临时节点只存在创建的会话有效期内,并且当服务器停掉之后,临时节点也会消失持久化节点:在创建之后,即便是会话结束,服务器停掉了,节点也不会消失,直到使用删除命令进行删除三、操作节点创建节点持久化节点:create /Hadoop "test"持久化有序节点:cr..
2020-12-27 22:51:33 332
原创 Docker基本架构,概念,相关命令操作
使用Replica Set 的方式部署mongodb,这里我们部署一个primary,两个secondary,一个client:首先搭建一个network bridgedocker network create mongo-network然后再运行3个mongo容器,创建的集群名称是:mongo-repdocker run --rm -itd --name mongo-primary --net=mongo-network mongo --replSet mongo-repdoc...
2020-09-23 17:00:58 499
原创 使用docker进行mongodb集群部署
使用Replica Set 的方式部署mongodb,这里我们部署一个primary,两个secondary,一个client:首先搭建一个network bridgedocker network create mongo-network然后再运行3个mongo容器,创建的集群名称是:mongo-repdocker run --rm -itd --name mongo-primary --net=mongo-network mongo --replSet mongo-repdocker
2020-09-23 17:00:01 2093
转载 Unable to connect to the Docker Container from the host browser on MacOS
原文参考:https://github.com/docker/for-mac/issues/2670https://www.haoyizebo.com/posts/fd0b9bd8/
2020-09-23 15:57:55 232
原创 docker
docker 踩坑记录:1、docker 在创建容器之后,容器中默认是没有安装vim,所以在编辑文件执行vi / vim 操作的时候就会抛出:bash: vi: command not found因此我们需要安装vim,安装命令如下:apt-get update apt-get install vim...
2020-08-25 16:14:30 116
原创 Linux 创建ssh密钥对
先检查一下服务器的ssh配置文件/etc/ssh/sshd_configRSAAuthentication yes # 启用 RSA 认证默认为 yesPubkeyAuthentication yes # 启用公钥认证,默认为yes执行命令创建公私钥:ssh-keygen -t rsa查看创建好对公钥:cat ~/.ssh/id_rsa.pub查看创建好对私钥:cat ~/.ssh/id_rsa查看保存对服务器公钥:cat ~/.ssh/authorized_keys..
2020-08-20 15:18:10 1363
原创 在linux中安装zookeeper
1、安装jdk2、拷贝zookeeper安装包到/usr/local/server目录下3、解压到当前目录:tar -zxvf zookeeper-3.4.14.tar.gz4、配置修改:将/usr/local/server/zookeeper-3.4.14/conf路径下的zoo_sample.cfg修改名称为 zoo.cfgmv zoo_sample.cfg zoo.cfg编辑zoo.cfg vim zoo.cfg更改dataDir的路径:dataD...
2020-05-12 15:05:12 198
原创 Linux 中安装JDK并配置环境变量
1、在/usr/local路径下创建server文件夹,并将下载好的jdk存入路径:/usr/local/server2、解压tar -zxvfjdk-8u221-linux-x64.tar.gz解压到当前的路径,并生成文件夹:jdk1.8.0_2213、配置环境变量vim/etc/profile在第一行添加配置数据:export JAVA_HOME=/usr/local/server/jdk1.8.0_221export CLASSPATH=$JA...
2020-05-12 14:37:41 260
原创 redis基础
String字符串类型SDS是什么?为什么Redis要用SDS实例?embstr和raw的区别?embstr是只读的什么时候转化?binary-safe strings【二进制安全的】数据类型 dict hashtable dictEntrykey 使用SDS存储value使用redisObject ---->SDSSt...
2020-04-21 15:10:56 324 1
原创 rabbitMQ 消息中间件 【简单的学习示例】
RabbitMQ Tutorialswww.rabbitmq.com/getstarted.html订阅模式模型一个生产者多个消费者每个消费者都有自己的队列生产者没有直接吧消息发送到消息队列,而是发送到了交换机,转发器每个队列都要绑定到交换机上生产者发送发的消息 经过交换机 到达队列 就能实现一个消息被多个消费者消费...
2020-04-06 21:32:31 223
原创 spring security oauth2--基于JDBC存储令牌
基于JDBC存储令牌1、添加相关的数据库连接的依赖<dependency> <groupId>com.zaxxer</groupId> <artifactId>HikariCP</artifactId> <version>3.4.2</ve...
2020-03-08 22:03:31 1389
原创 Spring Security oAuth2---基于内存方式
基于内存存储令牌1、创建认证服务器,需要继承AuthorizationServerConfigurerAdapter,实现configure(ClientDetailsServiceConfigurer clients)方法,在这个方法里面设置相关的参数,客户端id,密钥,认证方式,范围,重定向到哪里;@Configuration@EnableAuthorizationServerp...
2020-03-08 22:03:11 1601
原创 Spring Aop初体验
AOP是OOP的延续,是Aspect Oriented Programming的缩写,意思是面向切面编程,可以通过预编译方式和运行期动态代理实现在不修改源代码的情况下给程序动态统一添加功能的一种技术。AOP设计模式追求的是调用者和被调用者之间的解耦,AOP也是这种目标的一种实现。适用场景:日志、事务、安全等都会写在业务代码中(非业务类横切于业务类),这些代码一般都是重复,所以AOP就实现了...
2020-03-08 22:00:43 159
原创 Spring自动装配之依赖注入
依赖注入发生的时间 当Spring IOC容器完成了Bean资源的定位、载入和解析注册之后,IOC容器中已经管理了Bean定义的相关数据,但是此时IOC容器还没有对所管理的Bean进行依赖注入。依赖注入发生的场景 1、用户第一次使用getBean()方法时,IOC容器触发依赖注入。 2、当用户在配置文件将<bean>元素配置了lazy-init=...
2020-03-08 21:59:24 239
原创 Spring 核心原理
Java Bean (java bean 是由Applet Bean演变而来) ------------> EJB(Enterprise java beans)--------->POJO(plain ordinary java Obect,简单的java bean)Spring 简化开发的四个基本策略1、基于POJO的轻量级和最小侵入性编程2、通过依赖注入和面向......
2020-03-08 21:58:20 2694
原创 设计模式总结分析总结
容易混淆的模式对比:单例模式与工厂模式工厂类一般就是被设计为单例(ApplicationContext)工厂模式与策略模式工厂模式包含工厂方法和抽象工厂,属于创建型模式,而策略模式属于行为型模式工厂模式主要目的是封装好创建逻辑,策略模式接收工厂创建好的对象,从而实现不同的行为策略模式与委派模式策略模式是委派模式内部的一种实现形式,策略模式关注的是结果是否能相...
2020-03-08 21:57:01 371
原创 了解Spring中常见的设计模式-------------------代理模式
代理模式(Proxy Pattern)指为其他对象提供一种代理,以控制对这个对象的访问。代理对象在客服端和目标对象之间起到中介作用属于结构型设计模式。适用场景:保护目标对象,增强目标对象静态代理:显示声明被代理对象动态代理:动态配置和替换被代理对象 无法代理final修饰的方法静态代理代理类与被代理类属于(1:1)一对...
2019-12-20 17:17:08 186 1
原创 了解Spring中常见的设计模式-------------------委派模式,策略模式
委派模式(Delegate Pattern)基本作用:负责任务的调度和分配任务,跟代理模式很像,可以看作是一种特殊情况下的静态代理的全权代理,但是代理模式更加注重过程,而委派模式更加注重结果不属于GOF 23中设计模式之一属于行为行模型简单示例:(注册模式+工厂模式+委派模式)public interface Coder { public void coding();...
2019-12-20 17:16:52 202
原创 了解Spring中常见的设计模式-------------------单例模式
单例模式优点:内存中只有一个实例,减少内存开销;可以避免对资源的多重占用;设置全局访问点,严格控制访问缺点:没有接口难以扩展,如需要扩展只有修改代码设计重点:1、私有化构造器2、延迟加载3、保证线程安全4、防止序列化与反序列化攻击5、防止反射攻击饿汉式单例在单例类首次被加载的时候就创建实例,重写readResolve()方法可以防止序列化与反...
2019-12-20 17:16:44 189 1
原创 了解Spring中常见的设计模式-------------------原型模式
原型模式(Prototype Pattern)是指原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象;调用者不需要知道任何创建的细节,不调用构造函数;属于创建型模式;适用场景:类初始化消耗资源较多;new 产生的一个对象需要非常繁琐的过程(数据准备、访问权限等);构造函数比较复杂;循环体中生成大量的对象;代码示例:BeanUtils.copy();JSO...
2019-12-20 17:16:31 302
原创 了解Spring中常见的设计模式-------------------工厂模式
常见的设计模式:工厂模式、单例模式、原型模式、代理模式、策略模式、委派模式、适配器模式、装饰器模式、观察者模式SpringIOC:工厂模式、单例模式、装饰器模式SpringAOP:代理模式,观察者模式SpringMVC:委派模式,适配器模式SpringJDBC:模版方法1、工厂模式1.1简单工厂模式:适用于:创建的对象较少,客户端只关心传入工厂类的参数,...
2019-12-20 17:16:22 200
原创 了解Spring中常见的设计模式-------------------模版模式,适配器模式
模版模式(Template Method)指定义一个算法的骨架,并允许子类为一个或者多个步骤提供实现模版方法使得子类可以在不改变算法结构的情况下,重新定义算法的某些步骤属于行为性设计模式适用场景:1、一次性实现一个算法的不变的部分,并将可变的行为留给子类来实现。2、各子类中公共的行为被提取出来并集中到一个公共的父类中,从而避免代码的重复。优点:1、提高代码的复...
2019-12-20 17:16:07 176
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人