自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(101)
  • 收藏
  • 关注

原创 Redis(三)数据类型【巨详细用法】

Redis(三)数据类型字符串Stringset/get/del/append/strlen127.0.0.1:6379> set k1 v1OK127.0.0.1:6379> keys *1) "k1"127.0.0.1:6379> set k2 v2OK127.0.0.1:6379> keys *1) "k2"2) "k1"127.0.0.1:6379> del k2(integer) 1 #一般在redis中1代表执行成功,0代表执行失败12

2021-01-17 17:30:53 99

原创 Redis(二)安装及使用

Redis(二)安装及使用安装上传tar.gz包,并解压tar -zxvf redis-5.0.4.tar.gz安装gcc(必须有网络)yum -y install gcc忘记是否安装过,可以使用 gcc -v 命令查看gcc版本,如果没有安装过,会提示命令不存在进入redis目录,进行编译make编译之后,开始安装make install安装后的操作后台运行方式redis默认不会使用后台运行,如果你需要,修改配置文件daemonize=yes,当你后台服务启动的时

2021-01-17 14:43:32 167

原创 Redis(一)概述

Redis(一)概述互联网需求的3高高并发,高可扩,高性能Redis 是一种运行速度很快,并发性能很强,并且运行在内存上的NoSql(not only sql)数据库NoSQL数据库 和 传统数据库 相比的优势NoSQL数据库无需事先为要存储的数据建立字段,随时可以存储自定义的数据格式。而在关系数据库里,增删字段是一件非常麻烦的事情。如果是非常大数据量的表,增加字段简直就是一个噩梦Redis的常用使用场景缓存,毫无疑问这是Redis当今最为人熟知的使用场景。在提升服务器性能方面非常

2021-01-17 14:40:17 59

原创 分布式数据库CAP原理

分布式数据库CAP原理CAP简介传统的关系型数据库事务具备ACID:A:原子性C:一致性I:独立性D:持久性分布式数据库的CAP:C(Consistency):强一致性“all nodes see the same data at the same time”,即更新操作成功并返回客户端后,所有节点在同一时间的数据完全一致,这就是分布式的一致性。一致性的问题在并发系统中不可避免,对于客户端来说,一致性指的是并发访问时更新过的数据如何获取的问题。从服务端来看,则是更新如何复制分布到

2021-01-17 14:39:43 414

原创 Dubbo(六)服务降级

服务降级壁虎遇到危险会自动脱落尾巴,目的是损失不重要的东西,保住重要的服务降级,就是根据实际的情况和流量,对一些服务有策略的停止或换种简单的方式处理,从而释放服务器的资源来保证核心业务的正常运行为什么要服务降级而为什么要使用服务降级,这是防止分布式服务发生雪崩效应什么是雪崩?就是蝴蝶效应,当一个请求发生超时,一直等待着服务响应,那么在高并发情况下,很多请求都是因为这样一直等着响应,直到服务资源耗尽产生宕机,而宕机之后会导致分布式其他服务调用该宕机的服务也会出现资源耗尽宕机,这样下去将导致整个分布式

2021-01-16 15:40:11 109

原创 Dubbo(五)高可用

zookeeper宕机zookeeper注册中心宕机,还可以消费dubbo暴露的服务监控中心宕掉不影响使用,只是丢失部分采样数据数据库宕掉后,注册中心仍能通过缓存提供服务列表查询,但不能注册新服务注册中心对等集群,任意一台宕掉后,将自动切换到另一台注册中心全部宕掉后,服务提供者和服务消费者仍能通过本地缓存通讯服务提供者无状态,任意一台宕掉后,不影响使用服务提供者全部宕掉后,服务消费者应用将无法使用,并无限次重连等待服务提供者恢复测试正常发出请求关闭zookeeper:./zkSer

2021-01-16 15:38:39 71

原创 Dubbo(四)负载均衡策略

负载均衡策略负载均衡(Load Balance), 其实就是将请求分摊到多个操作单元上进行执行,从而共同完成工作任务。简单的说,好多台服务器,不能总是让一台服务器干活,应该“雨露均沾”dubbo一共提供4种策略,缺省为 random 随机分配调用修改提供者配置并启动3个提供者,让消费者对其进行访问tomcat端口8001,8002,8003provider端口20881,20882,20883<dubbo:provider timeout="2000" port="20883

2021-01-16 15:37:53 126

原创 Dubbo(三)配置说明

配置说明启动时检查启动时会在注册中心检查依赖的服务是否可用,不可用时会抛出异常在消费方编写初始化容器的main方法启动(tomcat启动方式,必须访问一次action才能初始化spring)/** * @Program: dubbo_test2 * @Author: XiaoXing * @Create: 2021-01-16 13:35 * @Description: 启动时检查 **/public class TestCheckException { public stat

2021-01-16 15:36:27 190

原创 Dubbo(二)入门

Dubbo(二)入门注册中心Zookeeper官方推荐使用zookeeper注册中心;注册中心负责服务地址的注册与查找,相当于目录服务;服务提供者和消费者只在启动时与注册中心交互,注册中不转发请求,压力较小;Zookeeper是apache hadoop的子项目,是一个树形的目录服务,支持变更推送,适合作为dubbo的服务注册中心,工业强度较高,可用于生产环境;dubbo即是求职的人,也是招聘单位,而zookeeper就是人才市场/招聘网站;服务提供方<packaging>wa

2021-01-15 22:42:53 316 1

原创 Dubbo(一)初识

Dubbo(一)初识什么是分布式系统?《分布式系统原理与范型》定义:“分布式系统是若干独立计算机的集合,这些计算机对于用户来说就像单个相关系统”分布式系统(distributed system)是建立在网络之上的软件系统。简单来说:多个(不同职责)人共同来完成一件事!任何一台服务器都无法满足淘宝的双十一的数据吞吐量,一定是很多台服务器公共来完成的。歇后语:“三个臭皮匠赛过诸葛亮”,就是分布式系统的真实写照单一应用架构当网站流量很小时,只需要一个应用,将所有的功能部署到一起(

2021-01-13 22:54:21 80

原创 Zookeeper(五)案例模拟

Zookeeper(五)案例模拟案例-模拟美团商家上下线模拟美团服务平台,商家营业通知,商家打烊通知提前在根节点下,创建好 /meituan 节点商家服务类/** * @Program: test-zookeeper * @Author: XiaoXing * @Create: 2021-01-12 21:56 * @Description: 商家服务类 **/public class ShopServer { //zookeeper集群的IP和端口 private

2021-01-13 22:51:44 161

原创 Zookeeper(四)实战

Zookeeper(四)实战分布式安装部署集群思路:先搞定一台服务器,再克隆出两台,形成集群!配置服务器编号在/opt/zookeeper/zkData创建myid文件vim myid在文件中添加与server对应的编号:1其余两台服务器分别对应2和3配置zoo.cfg文件打开zoo.cfg文件,增加如下配置#######################cluster##########################server.1=106.75.245.83:2888:38

2021-01-13 22:50:14 247

原创 Zookeeper(三)内部原理

Zookeeper(三)内部原理选举机制半数机制:集群中半数以上机器存活,集群可用。所以Zookeeper适合安装奇数台服务器虽然在配置文件中并没有指定Master和Slave。但是,Zookeeper工作时,是有一个节点为Leader(领导),其他则为Follower(做事者),Leader是通过内部的选举机制临时产生的Server1先投票,投给自己,自己为1票,没有超过半数,根本无法成为leader,顺水推舟将票数投给了id比自己大的Server2Server2也把自己的票数投给了自己

2021-01-11 23:13:37 94 1

原创 Zookeeper(二)安装

Zookeeper(二)安装本地模式安装安装前准备安装jdk拷贝apache-zookeeper-3.6.0-bin.tar.gz到opt目录解压安装包tar -zxvf apache-zookeeper-3.6.0-bin.tar.gz重命名mv apache-zookeeper-3.6.0-bin zookeeper配置修改在/opt/zookeeper/这个目录上创建zkData和zkLog目录mkdir zkDatamkdir zkLog

2021-01-11 23:12:33 86

原创 Zookeeper(一)初识

Zookeeper(一)初识概述美团,饿了么,淘宝,58同城等等应用都是zookeeper的现实生活版我开了个饭店,如何才能让大家都能吃到我们的饭菜?需要入驻美团,这样大家就可以在美团app中看到我的饭店,下订单,从而完成一次交易Zookeeper是一个开源的分布式(多台服务器干一件事)的,为分布式应用提供协调服务的Apache项目。在大数据技术生态圈中,zookeeper(动物管理员),Hadoop(大象),Hive(蜜蜂),Pig(猪)等技术工作机制Zookeeper从设计模式角度来理解:

2021-01-11 23:10:25 99

原创 Linux安装Nginx

NGINX优点:占用内存少,并发能力强Nginx专为性能优化而开发, 在高连接并发的情况下,能够支持高达 50,000 个并发连接数的响应.Nginx支持热部署, 可以在不间断服务的情况下,对软件版本进行升级.应用场景http服务器: Nginx是一个http服务可以独立提供http服务。可以做网页静态服务器。虚拟主机: 可以实现在一台服务器虚拟出多个网站。例如个人网站使用的虚拟主机。反向代理,负载均衡 : 当网站的访问量达到一定程度后,单台服务器不能满足用户的请求时,需要用多

2021-01-10 18:45:09 172

原创 Linux安装MySQL

Linux安装MySQL创建MySQL存储路径,于存储路径下下载快照文件下载Mysql的repo源wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm安装rpm包rpm -ivh mysql57-community-release-el7-8.noarch.rpm安装Mysqlyum install mysql-server查看安装信息rpm -qa | grep mysql启动服

2021-01-09 18:32:29 81

原创 Linux配置Tomcat

Linux配置Tomcat解压Tomcattar -zxvf apache-tomcat-8.5.55.tar.gz改名mv apache-tomcat-8.5.55/ tomcat进入tomcat文件bin目录cd tomcat/bin/启动和停止tomcat./startup.sh #启动./shutdown.sh #关闭

2021-01-09 18:30:47 48

原创 Linux安装JDK

Linux安装JDK解压JDK安装包tar -zxvf jdk-11.0.7_linux-x64_bin.tar.gz重命名JDK文件夹mv jdk-11.0.7/ javajdk配置环境变量进入javajdk包下,获取当前路径cd javajdk/pwd进入配置文件vi /etc/profile进入编辑模式,在最下面添加环境变量信息export JAVA_HOME=/usr/javajdkexport PATH=$JAVA_HOME/bin:$PATH生效配

2021-01-09 18:29:38 44

原创 GIT基本操作

GIT基本配置全局设置#设置全局用户名git config --global user.name 用户名#设置邮箱git config --global user.email 邮箱–global 指定为全局设置,不使用该参数,则为当前所在仓库配置。查看配置信息git config --list本地仓库的操作创建 Git 版本库git init查看当前文件状态git statusgit status -s这个命令更加简洁的查看将文件添加(修改)到版本库#

2021-01-09 16:46:49 80

原创 初识MAVEN

MAVEN聚合工程MAVENmaven 是一个项目管理工具,主要作用是在项目开发阶段对Java项目进行依赖管理和项目构建。依赖管理:就是对jar包的管理。通过导入maven坐标,就相当于将仓库中的jar包导入了当前项目中。项目构建:通过maven的一个命令就可以完成项目从清理、编译、测试、报告、打包,部署整个过程。maven的仓库类型1.本地仓库2.远程仓库①maven中央仓库(地址:http://repo2.maven.org/maven2/)②maven私服(公司局域网内的仓库,需要

2021-01-03 18:14:46 228

原创 SpringMVC之拦截器

SpringMVC之拦截器拦截器(interceptor)的作用Spring MVC 的拦截器类似于 Servlet 开发中的过滤器 Filter,用于对处理器进行预处理和后处理。将拦截器按一定的顺序联结成一条链,这条链称为拦截器链(InterceptorChain)。在访问被拦截的方法或字段时,拦截器链中的拦截器就会按其之前定义的顺序被调用。拦截器也是AOP思想的具体实现。拦截器和过滤器区别public class MyInterceptor1 implements HandlerInterc

2021-01-02 17:54:19 72

原创 SpringMVC之异常处理

SpringMVC之异常处理异常处理的思路在Java中,对于异常的处理一般有两种方式:一种是当前方法捕获处理(try-catch),这种处理方式会造成业务代码和异常处理代码的耦合。另一种是自己不处理,而是抛给调用者处理(throws),调用者再抛给它的调用者,也就是一直向上抛。在这种方法的基础上,衍生出了SpringMVC的异常处理机制。系统的dao、service、controller出现都通过throws Exception向上抛出,最后由springmvc前端控制器交由异常处理器进行异常处

2021-01-02 17:53:16 133

原创 SpringMVC之文件上传

SpringMVC之文件上传文件上传三要素表单项 type=“file”表单的提交方式 method=“POST”表单的enctype属性是多部分表单形式 enctype=“multipart/form-data"文件上传原理当form表单修改为多部分表单时,request.getParameter()将失效。当form表单的enctype取值为 application/x-www-form-urlencoded 时,form表单的正文内容格式是: name=value&name=v

2021-01-02 17:52:25 131 2

原创 SpringMVC之RESTful

SpringMVC之RESTfulRestful是一种软件架构风格、设计风格,而不是标准,只是提供了一组设计原则和约束条件。主要用于客户端和服务器交互类的软件,基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存机制等。Restful风格的请求是使用“url+请求方式”表示一次请求目的的,HTTP 协议里面四个表示操作方式的动词如下:GET:读取(Read)POST:新建(Create)PUT:更新(Update)DELETE:删除(Delete)客户端请求原来风格URL地址

2021-01-02 17:51:11 647

原创 SpringMVC之ajax异步交互

SpringMVC之ajax异步交互Springmvc默认用MappingJackson2HttpMessageConverter对json数据进行转换,需要加入jackson的包;同时使用 <mvc:annotation-driven />@RequestBody该注解用于Controller的方法的形参声明,当使用ajax提交并指定contentType为json形式时,通过HttpMessageConverter接口转换为对应的POJO对象。 <dependency>

2021-01-02 17:50:29 166

原创 SpringMVC基本应用

SpringMVC基本应用SpringMVC简介MVC模式MVC是软件工程中的一种软件架构模式,它是一种分离业务逻辑与显示界面的开发思想。* M(model)模型:处理业务逻辑,封装实体* V(view) 视图:展示内容* C(controller)控制器:负责调度分发(1.接收请求、2.调用模型、3.转发到视图)SpringMVC概述SpringMVC 是一种基于 Java 的实现 MVC 设计模式的轻量级 Web 框架,属于SpringFrameWork 的后续产品,已经融合在 Sp

2021-01-02 17:49:46 159

原创 Spring集成Web环境

Spring集成Web环境ApplicationContext应用上下文获取方式应用上下文对象是通过 new ClasspathXmlApplicationContext(spring配置文件) 方式获取的,但是每次从容器中获得Bean时都要编写 new ClasspathXmlApplicationContext(spring配置文件) ,这样的弊端是配置文件加载多次,应用上下文对象创建多次。解决思路分析:在Web项目中,可以使用ServletContextListener监听Web应用的启动,我

2021-01-01 21:20:02 194

原创 Spring事务笔记(编码)

Spring的事务Spring中的事务控制方式Spring的事务控制可以分为编程式事务控制和声明式事务控制。编程式开发者直接把事务的代码和业务代码耦合到一起,在实际开发中不用。声明式开发者采用配置的方式来实现的事务控制,业务代码与事务代码实现解耦合,使用的AOP思想。编程式事务控制相关对象PlatformTransactionManagerPlatformTransactionManager接口,是spring的事务管理器,里面提供了我们常用的操作事务的方法。TransactionSta

2021-01-01 21:19:23 88

原创 Spring框架之JDBCTemplate学习笔记

Spring JDBCTemplateSpring的JdbcTemplateJdbcTemplate是spring框架中提供的一个模板对象,是对原始繁琐的Jdbc API对象的简单封装。JdbcTemplate jdbcTemplate = new JdbcTemplate(DataSource dataSource);核心方法int update(); 执行增、删、改语句List<T> query(); 查询多个T queryForObject(); 查询一个 new Be

2021-01-01 21:18:31 124 1

原创 Spring框架核心之AOP详解(附带案例理解及Java动态代理)

AOP无事务转账案例jdbc.driver=com.mysql.jdbc.Driverjdbc.url=jdbc:mysql://localhost:3306/spring_db?serverTimezone=GMT%2B8&useSSL=falsejdbc.username=rootjdbc.password=123<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframew

2021-01-01 21:16:10 164

原创 Spring框架核心之IOC详解

IoCSpring概述Spring是分层的 Java SE/EE应用 full-stack(全栈式) 轻量级开源框架。提供了表现层 SpringMVC和持久层 Spring JDBC Template以及 业务层 事务管理等众多的企业级应用技术,还能整合开源世界众多著名的第三方框架和类库,逐渐成为使用最多的Java EE 企业应用开源框架。两大核心:以 IOC(Inverse Of Control:控制反转)和 AOP(Aspect Oriented Programming:面向切面编程)为内核。

2021-01-01 21:13:50 280

原创 MyBatis注解开发

MyBatis注解MyBatis常用注解* @Insert:实现新增,代替了<insert></insert>* @Delete:实现删除,代替了<delete></delete>* @Update:实现更新,代替了<update></update>* @Select:实现查询,代替了<select></select>* @Result:实现结果集封装,代替了<result></re

2020-12-29 23:05:20 113 1

原创 MyBatis - 缓存

MyBatis - 缓存为什么使用缓存当用户频繁查询某些固定的数据时,第一次将这些数据从数据库中查询出来,保存在缓存中。当用户再次查询这些数据时,不用再通过数据库查询,而是去缓存里面查询。减少网络连接和数据库查询带来的损耗,从而提高我们的查询效率,减少高并发访问带来的系统性能问题。一句话概括:经常查询一些不经常发生变化的数据,使用缓存来提高查询效率。像大多数的持久化框架一样,Mybatis也提供了缓存策略,通过缓存策略来减少数据库的查询次数,从而提高性能。 Mybatis中缓存分为一级缓存,二级缓存

2020-12-29 23:04:29 69

原创 Mybatis - 延迟加载

Mybatis - 延迟加载MyBatis加载策略什么是延迟加载Mybatis中一对一,一对多,多对多关系的配置及实现,可以实现对象的关联查询。实际开发过程中很多时候我们并不需要总是在加载用户信息时就一定要加载他的订单信息。此时就是我们所说的延迟加载。延迟加载就是在需要用到数据时才进行加载,不需要用到数据时就不加载数据。延迟加载也称懒加载。一对多,多对多:通常情况下采用延迟加载一对一(多对一):通常情况下采用立即加载注意:延迟加载是基于嵌套查询来实现的实现局部延迟加载在associati

2020-12-28 23:15:55 84

原创 MyBatis复杂映射&配置文件深入

MyBatis复杂映射&配置文件深入Mybatis高级查询ResutlMap属性建立对象关系映射* resultType如果实体的属性名与表中字段名一致,将查询结果自动封装到实体类中* ResutlMap如果实体的属性名与表中字段名不一致,可以使用ResutlMap实现手动封装到实体类中public class User { private Integer id; private String usernameabc; private Date birthd

2020-12-28 23:15:24 142

原创 约定编程 - Spring AOP详解

约定编程 - Spring AOPAOP概念AOP其实是一种约定流程的编程,约定何时执行怎样的程序代码块AOP最典型的应用可以是事务,也可以应用于日志,因为代码与业务实现无关AOP可以减少大量重复代码,保持程序的整洁,但是缺点是可读性降低,不宜与理解AOP术语连接点:具体的被拦截对象,因Spring只支持方法,所以被拦截的对象往往是指特定方法切点:有时我们的切面不单单应用于单个方法,亦可是多个类的不同方法,此时可通过正则表达式和指示器的规则去定义,从而适配连接点,切点则是这样的一个功能概念通

2020-12-28 11:07:45 209

原创 MyBatis基本应用

MyBatis基本应用框架简介三层架构软件开发常用的架构是三层架构,之所以流行是因为有着清晰的任务划分。一般包括以下三层:持久层:主要完成与数据库相关的操作,即对数据库的增删改查。因为数据库访问的对象一般称为Data Access Object(简称DAO),所以有人把持久层叫做DAO层。业务层:主要根据功能需求完成业务逻辑的定义和实现。因为它主要是为上层提供服务的,所以有人把业务层叫做Service层或Business层。表现层:主要完成与最终软件使用用户的交互,需要有交互界面(UI)。

2020-12-27 16:10:00 103

原创 SpringBoot中全注解下的SpringIoC

全注解下SpringIoCSpringIoC是一个管理Bean的容器,在Spring定义中,所有IoC容器都需要实现BeanFactory,这是一个顶级容器接口public interface BeanFactory { //前缀 String FACTORY_BEAN_PREFIX = "&"; //多个getBean方法 Object getBean(String var1) throws BeansException; <T> T g

2020-12-24 10:10:52 178

原创 JSON简述及JSON与Java之间的转换

JSON简述及JSON与Java之间的转换JSON(JavaScript Object Notation) JavaScript对象表示法(JSON源于JS)。JSON的特点:JSON 是一种轻量级的数据交换格式。JSON采用完全独立于语言的文本格式,就是说不同的编程语言JSON数据是一致的。JSON易于人阅读和编写,同时也易于机器解析和生成(一般用于提升网络传输速率)。XML与JSON的区别XML : 可扩展标记语言,是一种用于标记电子文件使其具有结构性的标记语言。JSON: (JavaS

2020-12-21 22:40:30 364

空空如也

空空如也

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

TA关注的人

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