JAVA
文章平均质量分 79
mufengmozi
这个作者很懒,什么都没留下…
展开
-
分布式系统
dubbo的工作原理Zookeeper1、分布式协调2、分布式锁3、元数据、配置数据的管理4、HA高可用性redis和zk的分布式锁redis在定义key的时候可以加一个随机值,lua删除锁的时候会判断是否成功zk锁临时节点zk基于临时顺序节点的锁分布式事务1、两阶段提交方案XA方案XA方案多个库的情况下不适用,但是按照微服务的架构、都得是多个库...原创 2020-01-08 20:38:45 · 124 阅读 · 0 评论 -
MQ相关
1为什么使用消息队列啊?消息队列的常见使用场景,比较核心的3个:解耦、异步、削峰2、RabbitMQ的高可用性镜像集群模式RabbitMQ只能实现主从架构集群,无法实现分布式集群。也就是每个结点存放一模一样的queue队列负债均衡机制:轮询法随机法源地址哈希法:获取的客户端IP地址,进行hash取余3、kafka的高可用性kafka一个最基本的架构认识:多个broker组成,...原创 2020-01-07 23:23:35 · 123 阅读 · 0 评论 -
分布式缓存总结
分布式缓存1、redis的线程模型redis单线程、nio。异步的模型文件时间处理器模型:单线程模型效率高1、纯内存操作【文件处理器部分】2、非阻塞的io多路复用【io多路复用程序】3、单线程反而避免了多线程的上下文切换的问题Redis的过期策略:1、定期删除、和惰性删除定期删除:redis每100毫秒。对过期的key随机删除掉一部分惰性删除:查询的时候。发现是过期ke...原创 2020-01-07 22:15:50 · 255 阅读 · 0 评论 -
分布式搜索引擎
1、2、写入和查询的工作流程客户端插入数据。选择一个机器作为(协调节点),通过hash协调到对应的primary shard中。primary再同步到replica。写入变化:1、写入primary时,先写入buff内存中。同时写一个translog日志文件2、buff快慢了。或者一定时间(一般为1秒),会通过refresh来刷新到segmentfile中。不过首先会写入到oscache...原创 2020-01-07 15:52:01 · 210 阅读 · 0 评论 -
java面试总结篇
HashCode下面这段话摘自Effective Java一书:在程序执行期间,只要equals方法的比较操作用到的信息没有被修改,那么对这同一个对象调用多次,hashCode方法必须始终如一地返回同一个整数。如果两个对象根据equals方法比较是相等的,那么调用两个对象的hashCode方法必须返回相同的整数结果。如果两个对象根据equals方法比较是不等的,则hashCode方法不一...原创 2019-12-27 15:42:05 · 123 阅读 · 0 评论 -
kafka
定义kafka是一个分布式的基于发布订阅的消息队列、主要应用于大数据实时处理领域消息队列的好处:解耦、削峰消息队列的两种模式1、点对点:(1对1,消费者主动拉取数据、消息收到后消息消除)2、发布订阅:(1对多,消费者消费数据后不会消除消息)发布者、将消息发布到topic。同时多个消息消费者(订阅)消费该消息、和点对点不同、发布到topic的消息会被所有订阅者消费。...原创 2020-01-16 15:43:10 · 147 阅读 · 0 评论 -
Mycat
MyCat1、为什么分库分表2、分库分表怎么分3、分库分表怎么操作4、解决我们实战过程中的一些问题2、分库分表怎么分schema.xml文件其中schema就是数据库,一个逻辑数据库,DataNode是相关的具体数据库dataHost是具体数据库的配置信息heartbeat是心跳检测包Writehost和readhost就是读写分离的配置datahost的节点name:...原创 2019-12-19 14:37:22 · 108 阅读 · 0 评论 -
ActiveMQ
ActiveMQ扩展出:API 接受发送MQ 的高可用MQ 的集群容错配置MQ 的持久化延时发送签收机制Spring/SpringBoot 整合等// MQ 都需要满足的技术MQ : 消息中间件/消息队列 为什么要使用 MQ ?解决了耦合调用、异步模型、抵御洪峰流量,保护了主业务,消峰。二、安装ActiveMQdocker环境下安装[root@...原创 2019-12-16 21:14:49 · 193 阅读 · 0 评论 -
Redis
Nosqlnot only sql,意思:不仅仅是sql泛指非关系型的数据库、随着互联网web2.0兴起。传统的关系型数据库在应付2.0网站,特别是超大规模和高并发的SNS类型的纯动态网站已经显得力不从心,暴露了很多难以克服的问题。而非关系型的数据库则是由于其本身的特点得到了非常迅速的发展,nosql数据库的产生就是为了解决大规模数据集合多重数据种类带来的挑战,尤其是大数据应用的难题,包括超大...原创 2019-12-15 23:37:44 · 166 阅读 · 0 评论 -
jvm GC
GCROOTJVM的参数配置三个参数类型标配参数:X参数:混合类型、执行、编译XX参数Boolen类型jps -l得到一个程序的进程号jinfo -flag PrintGCDetails 进程号可以查看某一个参数是否激活KV设置类型jinfo -flags 进程号可以得到所有的消息其中Non-default VM flag系统默认的commad line...原创 2019-12-13 22:01:44 · 169 阅读 · 0 评论 -
JVM
亮色:存在垃圾回收,线程共享暗色:线程私有类装载器ClassLoader负责加载class文化、class文件在文件开头有特定的文件标识,将class文件字节码内容加载到内存中、并将这些内容转换成方法区中的运行时数据结构。并且classloader只负责class文件的加载,至于它是否可以运行。则由ExecutionEngine决定启动类加载器(Bootstrap)扩展类加载器(Ex...原创 2019-12-12 23:05:51 · 175 阅读 · 0 评论 -
mysql
sql的解析顺序原创 2019-12-12 16:40:01 · 141 阅读 · 0 评论 -
Ribbon、 Feign、Hystrix、 Zuul
Spring Cloud Ribbon是基于Netflix Ribbon实现的一套客户端 负载均衡的工具。简单的说,Ribbon是Netflix发布的开源项目,主要功能是提供客户端的软件负载均衡算法,将Netflix的中间层服务连接在一起。Ribbon客户端组件提供一系列完善的配置项如连接超时,重试等。简单的说,就是在配置文件中列出Load Balancer(简称LB)后面所有的机...原创 2019-12-11 19:27:25 · 292 阅读 · 0 评论 -
SpringCloud
微服务但通常而言, 微服务架构是一种架构模式或者说是一种架构风格,它提倡将单一应用程序划分成一组小的服务,每个服务运行在其独立的自己的进程中,服务之间互相协调、互相配合,为用户提供最终价值。服务之间采用轻量级的通信机制互相沟通(通常是基于HTTP的RESTful API)。每个服务都围绕着具体业务进行构建,并且能够被独立地部署到生产环境、类生产环境等。另外,应尽量避免统一的、集中式的服务管理机制...原创 2019-12-10 20:02:34 · 200 阅读 · 1 评论 -
JAVA面试第二季
Volatile是什么相关包Package java.ytil.concurrent(并发包)Package java.ytil.concurrent.atomic(原子性)AtomicInteger,原子引用Volatile是jvm提供的轻量级的同步机制三大特性:1保证可见性、2、不保证原子性、3禁止指令重拍JMM(java内存模型)由于JVM运行程序的实体是线程、而每个线程创建时...原创 2019-12-06 19:50:38 · 127 阅读 · 0 评论 -
面试小姿势总结
mybatis中驼峰命名规则的处理方式1、在sql语句中起别名2、在mybatis的全局配置文件中开启驼峰命名规则3、在Mapper映射文件中使用resultMap来自定义规则映射linux的基本操作service注册在系统中的标准化程序有方便统一的管理方式(常用的方法)centos(6)service 服务名 startservice 服务名 stopservice 服务名...原创 2019-12-04 18:49:21 · 104 阅读 · 0 评论 -
JAVASSM面试
SpringBeanbean的作用域在Spring中、可以在bean元素的scope属性里设置bean的作用域、以决定这个bean的单实例还是多实例的。默认情况下、spring之为每个在ioc容器里声明的bean创建唯一一个实例、整个ioc容器范围内都能共享该实例:所有后续的getBean()调用和bean引用都将返回这个唯一的bean实例、该作用域被城作为singleton,它是所有bea...原创 2019-12-04 15:35:50 · 236 阅读 · 0 评论 -
JAVASE面试总结篇
单利设计模式1)构造器私有化2)用一个静态私有变量保存这个唯一的实例3)提供一个静态方法、获取这个实例对象最基本的单例:线程不安全。public class Singleton1 { private static Singleton1 instance; private Singleton1(){} public static Singleton1 getInst...原创 2019-12-03 17:44:19 · 119 阅读 · 0 评论 -
SoringCloud Eureka
SpringCloudspringcloud是一个分布式的整体解决方案、springcloud为开发者提供了在分布式系统(配置管理、服务发现、熔断、路由、微代理、控制总线、一次性token、全局锁、leader选举、分布式session、集群状态)中快速构建的工具。SpringCloud分布式开发五大常用组件服务发现–Netflix Eureka客服端负载均衡–Netflix Ribbo...原创 2019-12-10 20:27:25 · 190 阅读 · 0 评论 -
分布式应用
分布式应用zookeeperZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。简单来说zookeeper=文件系统+监听通知机制1、 文件系统Zookeeper维护一个类似文件系统的数据结构...原创 2019-11-26 17:40:08 · 512 阅读 · 0 评论 -
Es在SpringBoot中的使用
新建<!-- SpringBoot默认使用SpringData ElasticSearch模块进行操作--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-s...原创 2019-11-06 17:14:22 · 800 阅读 · 0 评论 -
SpringBoot与ElasticSearch
ElasticSearch全文搜索是目前全文搜索引擎的首选,是一个分布式搜索服务,提供RestfulAPI。底层基于lucene,采用shard的方式保证数据安全,并且提供自动reSharding功能。Elasticsearch的关键点记录:反向索引又叫倒排索引,是根据文章内容中的关键字建立索引。搜索引擎原理就是建立反向索引。Elasticsearch 在 Lucene 的基础上进行封装...原创 2019-11-05 16:53:42 · 170 阅读 · 0 评论 -
SpringBoot与rabbitMQ
新项目新建一个项目,引入web和rabbitMQ可以看到rabbitMQ引入的pom包<dependency> <groupId>org.springframework.amqp</groupId> <artifactId>spring-rabbit-test</artifactId>...原创 2019-10-12 18:48:21 · 137 阅读 · 0 评论 -
SpringBoot与消息
基本的消息中间件JMS,AMQP,RabbitMQ1、消息的基本内容1、用来提升系统的异步能力、扩展解耦。2、消息代理(message broker)和目的地(destination):当消息发送后,由消息代理接管,消息代理保证消息传递到指定目的地。3、消息队列主要有两种形式的目的地1)、队列(queue):点对点消息通信:消息发送者发送消息、消息代理把其放入一个队列中,消息接受者从队列...原创 2019-10-12 14:23:10 · 327 阅读 · 0 评论 -
Spring-Boot拦截器实现
1 首先我们简单的定义一个Controller类@RestControllerpublic class LoginController { @PostMapping("/login") public String Login(@RequestParam("Username") String username, @RequestP...原创 2019-09-05 14:33:08 · 145 阅读 · 0 评论 -
SpringMVC原理探究
s原创 2019-09-04 16:20:43 · 131 阅读 · 0 评论 -
WEB开发
1、使用SpringBoot使用SpringBoot:1)创建SpringBoot应用,选中我们需要的模块;2)SpringBoot已经默认将这些场景配置好了,只需要在配置文件中指定少量的配置就可以运行起来。3)自己填写业务代码最重要的一点,我们需要了解自动配置的原理。在引用的时候,我们要知道SpringBoot帮我们配置了什么,能不能修改,能修改哪些,能不能扩展,。。。总结一下...原创 2019-09-03 20:04:00 · 86 阅读 · 0 评论 -
SpringBoot日志记录
SpringBoot日志记录1、基本市场上的日志类型日志门面(日志的抽象层)日志实现JCL(jakata Commons logging) 、SLF4j(Simple Logging Facade for java)、jboss-loggingLog4j 、JUL(java.util.logging) ,log4j2 ,logback左边选择一个门面(抽象层),右边...原创 2019-09-03 17:06:42 · 645 阅读 · 0 评论 -
SpringBoot自动配置原理
SpringBoot自动配置原理自动配置原理:根据上一篇文章Spring-Boot学习(一)我们可以快速定位到spring-boot-autoconfigure-2.1.7.RELEASE.jar下的META-INF中的spring.factories里# Auto Configureorg.springframework.boot.autoconfigure.EnableAuto...原创 2019-09-03 15:37:15 · 111 阅读 · 0 评论 -
SpringBoot配置文件
SpringBoot配置文件SpringBoot使用一个全局的配置文件,配置文件名是固定的application.propertiesapplication.yaml配置文件的作用:修改SpringBoot自动配置的默认值,底层自动关联YAML(YAML Ain’t MarkupLanguage)标记语言:曾经的配置文件都是XML的,YAML是以数据为中心,比json、XML更适合...原创 2019-09-02 21:03:26 · 187 阅读 · 0 评论 -
RestfulCRUD与自定义异常处理机制
1RestfulCRUD1)RestfulCRUD:CRUD满足Restful风格URI:资源名称/资源标识 HTTP请求方式区别对资源CRUD的操作普通CRUDRestfulCRUD:CRUD查询getEmpemp–GET添加addEmp?xxxemp–POST修改modifyEmp?id=XXX&XXX=XXXemp{id}–...原创 2019-09-06 10:51:00 · 217 阅读 · 0 评论 -
配置嵌入式Servlet容器
配置嵌入式Servlet容器SpringBoot默认使用的是嵌入式的Servlet容器版本也可以看到1)那么如何定制和修改Serverlet容器1修改Server有关的配置public class ServerProperties { private Integer port; private InetAddress address; @NestedCon...原创 2019-09-06 11:12:55 · 152 阅读 · 0 评论 -
SpringBoot 与 Docker
Docker1、简介Docker是一个开源的应用容器引擎。2、核心docker主机(Host):安装了docker的程序的机器(安装在操作系统之上)docker客户端(client):客户端通过命令行护着其他工具来使用dockerdocker仓库(Register):用来保存各种打包好的镜像docker镜像(image):软件打包好的镜像,放在docker仓库中docker容器(C...原创 2019-09-06 21:10:01 · 131 阅读 · 0 评论 -
SpringBoot与数据库访问
SpringBoot与数据库访问JDBC1、引入start我们创建一个SpringBoot项目,引入jdbc以及mysql,在pom文件中可以看到引入的包 <dependency> <groupId>org.springframework.boot</groupId> <artifact...原创 2019-09-12 16:44:42 · 116 阅读 · 0 评论 -
SpringBoot Mybatis使用和简述
Mybatis引入Mybatis maven <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> ...原创 2019-09-12 18:25:26 · 245 阅读 · 0 评论 -
SpringBoot与JPA
JPA1)简介2)整合SpringDataJPAjpa-orm(Object Relational Mapping)1、编写一个JPA实体类//使用JPA注解配置映射关系@Entity//告诉JPA这是一个实体类(和数据表映射的类)@Table(name="tbl_user")//@table 来指定和那个数据表对应,如果省略就是类名小写public class User { ...原创 2019-09-17 15:23:19 · 126 阅读 · 0 评论 -
SpringBoot的自定义starter
自定义starterstarter:1、这个场景需要的依赖是什么?2、如何编写自动配置启动流程1、创建SpringApplication对象2、如何编写自动配置@Configuration//指定这是一个配置类@ConditionalOnXXX//指定条件成了的情况下自动配置类生效@AutoConfigureOrder//指定自动配置类的顺序@Bean//在容器中添加组件@...原创 2019-09-17 20:39:19 · 142 阅读 · 0 评论 -
SpringBoot与缓存
SpringBoot与缓存JSR-107、Spring缓存抽象、整合redis@EnableCaching开启缓存@Cacheable在Spring Cache注解属性中(比如key,condition和unless),Spring的缓存抽象使用了SpEl表达式,从而提供了属性值的动态生成及足够的灵活性。下面的代码根据用户的userCode进行缓存,对于key属性,使用了表达式自定义键...原创 2019-09-20 15:28:31 · 220 阅读 · 0 评论 -
SpringBoot与Redis
一、安装RedisRedis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。 它支持多种类型的数据结构,如 字符串(strings), 散列(hashes), 列表(lists), 集合(sets), 有序集合(sorted sets) 与范围查询, bitmaps, hyperloglogs 和 地理空间(geospatial) 索引半径查询。 Re...原创 2019-10-09 18:22:35 · 407 阅读 · 0 评论 -
Spring-Boot学习(一)
Spring-Boot学习(一)最基础的maven+springBoot的pom设置<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-inst...原创 2019-09-02 17:46:30 · 97 阅读 · 0 评论