- 博客(101)
- 资源 (1)
- 收藏
- 关注
原创 深入分析Mysql中limit的用法
Mysql中limit的用法:在我们使用查询语句的时候,经常要返回前几条或者中间某几行数据,这个时候怎么办呢?不用担心,mysql已经为我们提供了这样一个功能。SELECT * FROM table LIMIT [offset], rows | rows OFFSET offsetLIMIT 子句可以被用于强制 SELECT 语句返回指定的记录数。LIMIT 接受一个或两个数字参数。参数...
2019-02-22 16:33:42
28024
1
原创 SQL使用------联合查询
联合查询分类内连接(inner Join 或 Join)外连接(outer Join)左外连接(left outer Join 或 left Join)右外连接(right outer Join 或 right Join)全外连接(full outer Join 或 full Join)交叉连接 (cross Join)结果集链接 (union 和 union all...
2019-02-21 13:13:09
22970
原创 第九篇:SpringCloud之高可用的服务注册中心
文章 史上最简单的 SpringCloud 教程 | 第一篇: 服务的注册与发现(Eureka) 介绍了服务注册与发现,其中服务注册中心Eureka Server,是一个实例,当成千上万个服务向它注册的时候,它的负载是非常高的,这在生产环境上是不太合适的,这篇文章主要介绍怎么将Eureka Server集群化。一、准备工作Eureka can be made even more resilie...
2019-01-04 21:18:54
389
原创 第八篇:SpringCloud之高可用的分布式配置中心(Spring Cloud Config)
在前一篇的介绍中,客户端都是直接调用配置中心的server端来获取配置文件信息。这样就存在了一个问题,客户端和服务端的耦合性太高,如果server端要做集群,客户端只能通过原始的方式来路由,server端改变IP地址的时候,客户端也需要修改配置,不符合Spring Cloud服务治理的理念。Spring Cloud提供了这样的解决方案,我们可以考虑将配置中心做成一个微服务,将其集群化,从而达到高可...
2018-12-29 13:03:14
363
原创 第七篇:SpringCloud之分布式配置中心(Spring Cloud Config)
随着线上项目变的日益庞大,每个项目都散落着各种配置文件,如果采用分布式的开发模式,需要的配置文件随着服务增加而不断增多。某一个基础服务信息变更,都会引起一系列的更新和重启,运维苦不堪言也容易出错。配置中心便是解决此类问题的灵丹妙药。Spring Cloud Config在我们了解spring cloud config之前,我可以想想一个配置中心提供的核心功能应该有什么提供服务端和客户端支...
2018-12-29 10:50:22
363
原创 第六篇:SpringCloud之断路器聚合监控(Hystrix Turbine)
上一篇文章讲述了如何利用Hystrix Dashboard去监控断路器的Hystrix command。当我们有很多个服务的时候,这就需要聚合所以服务的Hystrix Dashboard的数据了。这就需要用到Spring Cloud的另一个组件了,即Hystrix Turbine。一、Hystrix Turbine简介看单个的Hystrix Dashboard的数据并没有什么多大的价值,要想看...
2018-12-28 11:31:14
329
原创 微服务注册中心如何承载大型系统的千万级访问?
目录:一、问题起源二、Eureka Server设计精妙的注册表存储结构三、Eureka Server端优秀的多级缓存机制四、总结一、问题起源Spring Cloud架构体系中,Eureka是一个至关重要的组件,它扮演着微服务注册中心的角色,所有的服务注册与服务发现,都是依赖Eureka的。不少初学Spring Cloud的朋友在落地公司生产环境部署时,经常会问:Eureka Se...
2018-12-28 10:26:40
275
原创 第五篇:SpringCloud之断路器监控(Hystrix Dashboard)
一、Hystrix Dashboard简介在微服务架构中为例保证程序的可用性,防止程序出错导致网络阻塞,出现了断路器模型。断路器的状况反应了一个程序的可用性和健壮性,它是一个重要指标。Hystrix Dashboard是作为断路器状态的一个组件,提供了数据监控和友好的图形化界面。二、准备工作本文的的工程栗子,来源于第一篇文章的栗子,在它的基础上进行改造。三、开始改造service-hi在...
2018-12-26 22:56:30
286
原创 第四篇:SpringCloud之熔断器Hystrix
熔断器雪崩效应在微服务架构中通常会有多个服务层调用,基础服务的故障可能会导致级联故障,进而造成整个系统不可用的情况,这种现象被称为服务雪崩效应。服务雪崩效应是一种因“服务提供者”的不可用导致“服务消费者”的不可用,并将不可用逐渐放大的过程。如果下图所示:A作为服务提供者,B为A的服务消费者,C和D是B的服务消费者。A不可用引起了B的不可用,并将不可用像滚雪球一样放大到C和D时,雪崩效应就形成...
2018-12-26 21:17:34
337
原创 第三篇:SpringCloud之服务消费(Feign)
上一篇文章,讲述了如何通过RestTemplate+Ribbon去消费服务,这篇文章主要讲述如何通过Feign去消费服务。Feign简介Feign是一种声明式、模板化的HTTP客户端,它使得写Http客户端变得更简单。使用Feign,只需要创建一个接口并注解。它具有可插拔的注解特性,可使用Feign注解和JAX-RS注解。Feign支持可插拔的编码器和解码器。Feign默认集成了Ribbon...
2018-12-25 14:21:18
330
原创 第二篇:SpringCloud之服务消费(Ribbon)
在微服务架构中,业务都会被拆分成一个独立的服务,服务与服务的通讯是基于Http RESTful的。SpringCloud有两种服务调用方式,一种是Ribbon+RESTTemplate,另一种是Feign。在这一篇文章首先讲解下基于Ribbon+REST。Ribbon简介Spring Cloud Ribbon是一个基于HTTP和TCP的客户端负载均衡工具,它基于Netflix Ribbon实...
2018-12-25 13:45:32
420
原创 第一篇:SpringCloud之服务的注册与发现(Eureka)
一、spring cloud简介SpringCloud 为开发人员提供了快速构建分布式系统的一些工具,包括配置管理、服务发现、断路器、路由、微代理、事件总线、全局锁、决策竞选、分布式会话等等。它运行环境简单,可以在开发人员的电脑上跑。另外说明SpringCloud是基于SpringBoot的,所以需要开发中对SpringBoot有一定的了解,如果不了解的话可以看看小编的专栏SpringBoot学...
2018-12-24 20:59:01
431
原创 第十四篇:Spring Boot+MyBatis配置多数据源
说起多数据源,一般都来解决那些问题呢,主从模式或者业务比较复杂需要连接不同的分库来支持业务。我们项目是后者的模式,网上找了很多,大都是根据jpa来做多数据源解决方案,要不就是老的spring多数据源解决方案,还有的是利用aop动态切换,感觉有点小复杂,其实我只是想找一个简单的多数据支持而已,折腾了两个小时整理出来,供大家参考。废话不多说直接上代码吧配置文件pom包就不贴了比较简单该依赖的就依...
2018-12-20 17:10:17
474
1
原创 第十三篇:Spring Boot之邮件服务
发送邮件应该是网站的必备功能之一,什么注册验证,忘记密码或者是给用户发送营销信息。最早期的时候我们会使用JavaMail相关api来写发送邮件的相关代码,后来spring推出了JavaMailSender更加简化了邮件发送的过程,在之后springboot对此进行了封装就有了现在的spring-boot-starter-mail,本章文章的介绍主要来自于此包。构架工程创建一个springboo...
2018-12-19 17:44:42
959
原创 第十二篇:Spring Boot之使用Spring RestTemplate访问Rest服务
RestTemplate是Spring3.0后开始提供的用于访问 Rest 服务的轻量级客户端,相较于传统的HttpURLConnection、Apache HttpClient、OkHttp等框架,RestTemplate大大简化了发起HTTP请求以及处理响应的过程。这篇文章主要介绍怎么用RestTemplate消费一个 Restful的web服务。RestTemplate支持多种的请求方式,...
2018-12-17 11:04:21
383
原创 怎样设计一个好的 RESTful API
做出一个好的API设计很难。API表达的是你的数据和你的数据使用者之间的契约。打破这个契约将会招致很多愤怒的邮件,和一大堆伤心的用户-因为他们手机上的App不工作了。而文档化只能达到一半的效果,并且也很难找到一个愿意写文档的程序员。你所能做的最重要一件事来提高服务的价值就是创建一个API。因为随着其他服务的成长,有这样一个API会使你的服务或者核心应用将有机会变成一个平台。环顾一下现有的这些大...
2018-12-13 09:17:07
338
原创 第十一篇:Spring Boot之Scheduling Tasks定时任务
几乎大部分的应用都会有定时执行任务的需求。使用Spring Boot的Scheduling Tasks能够提高您的开发效率。这篇文章将介绍怎么通过Spring Boot去做调度任务。构建工程创建一个Springboot工程,在它的程序入口加上@EnableScheduling,开启调度任务。@SpringBootApplication@EnableSchedulingpublic cla...
2018-12-12 20:36:40
414
原创 第十篇:Spring Boot整合WebSocket
WebSocket协议是基于TCP的一种网络协议。它实现了浏览器与服务器全双工通信——允许服务器主动发送信息给客户端。WebSocket是通过一个socket来实现双工异步通信的。直接使用WebSocket或者SockJS协议显得特别繁琐。使用它的子协议STOMP,它是一个更高级别的协议,STMOP协议使用一个基于帧格式来定义消息,与HTTP的Request和Response类似。依赖Spr...
2018-12-12 14:24:31
339
原创 第九篇:Spring Boot整合RabbitMQ
这篇文章带你了解怎么整合RabbitMQ服务器,并且通过它怎么去发送和接收消息。我将构建一个springboot工程,通过RabbitTemplate去通过MessageListenerAdapter去订阅一个POJO类型的消息。在开始构建项目之前,机器需要安装rabbitmq,你可以去官网下载,http://www.rabbitmq.com/download.html ,brew insta...
2018-12-11 14:59:32
284
原创 第八篇:Spring Boot使用Redis实现消息队列
这篇文章主要讲述如何在springboot中用reids实现消息队列。准备阶段安装redis,可参考我的另一篇文章,5分钟带你入门Redis。java 1.8maven 3.0idea环境依赖创建一个新的springboot工程,在其pom文件,加入spring-boot-starter-data-redis依赖: org.springframework.boot sp...
2018-12-10 17:45:16
2348
原创 第七篇:Spring Boot集成Spring Cache
为了提高性能,减少数据库的压力,使用缓存是非常好的手段之一。因此本文讲解 Spring Boot 如何集成缓存管理。声明式缓存Spring 定义 CacheManager 和 Cache 接口用来统一不同的缓存技术。例如 JCache、 EhCache、 Hazelcast、 Guava、 Redis 等。在使用 Spring 集成 Cache 的时候,我们需要注册实现的 CacheManag...
2018-12-09 21:17:22
334
原创 第六篇:Spring Boot集成Swagger2构建RESTful API文档
由于Spring Boot能够快速开发、便捷部署等特性,相信有很大一部分Spring Boot的用户会用来构建RESTful API。而我们构建RESTful API的目的通常都是由于多终端的原因,这些终端会共用很多底层业务逻辑,因此我们会抽象出这样一层来同时服务于多个移动端或者Web前端。这样一来,我们的RESTful API就有可能要面对多个开发人员或多个开发团队:IOS开发、Android...
2018-12-08 21:53:48
413
1
原创 第五篇:Spring Boot整合Redis
Redis 是一个高性能的key-value数据库它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。使用redis作为缓存技术方案,主要是redis缓存技术的特点就在于高效,因为目前涉及的数据量逐渐增多,在对于数据的存储上面和sql以及服务器资源优化上面就来的特别的重要。而redi...
2018-12-07 21:34:47
309
原创 第四篇:Spring Boot开启声明式事务
Spring支持声明式事务,即使用注解来选择需要使用事务的方法,它使用@Transactional注解在方法上表明该方法需要事务支持。当然,Spring Boot开启事务也只需要一个注解@Transactional 就可以了。准备阶段在pom文件中引入mybatis启动依赖:<dependency> <groupId>org.mybatis.
2018-12-07 15:18:01
701
原创 第三篇:Spring Boot整合MyBatis
本文主要讲解如何在Spring Boot下整合MyBatis,并访问数据库。MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。(如不了解点击前往)环境依赖修改 POM 文件,添加mybatis-spring-boot-starter依赖。值得注意的是,可以不添加spring-boot-starter-jdbc。因为,mybatis-spring-boot-st...
2018-12-07 11:06:18
272
原创 第二篇:Spring Boot配置文件详解
springboot采纳了建立生产就绪Spring应用程序的观点。 Spring Boot优先于配置的惯例,旨在让您尽快启动和运行。在一般情况下,我们不需要做太多的配置就能够让spring boot正常运行。在一些特殊的情况下,我们需要做修改一些配置,或者需要有自己的配置属性。自定义属性当我们创建一个springboot项目的时候,系统默认会为我们在src/main/java/resource...
2018-12-06 20:58:46
285
原创 Java同步关键字synchronized详解
前言多线程编程可以极大地提高了效率,但也会带来线程安全问题。比如说多个线程向数据库插入数据,就可能会导致数据库中数据重复。什么时候会引发线程安全问题首先我需要了解什么是临界资源?有这样一种资源,在某一时刻只能被一个线程所使用,这种资源可以是各种类型的的资源:一个变量、一个对象、一个文件、一个数据库表等。举个简单的例子:现在有两个线程分别从网络上读取数据,然后插入一张数据库表中,要求...
2018-12-06 15:59:37
4079
原创 第一篇:构建第一个Spring Boot工程
简介spring boot 它的设计目的就是为例简化开发,开启了各种自动装配,你不想写各种配置文件,引入相关的依赖就能迅速搭建起一个web工程。它采用的是建立生产就绪的应用程序观点,优先于配置的惯例。建构工程你需要:jdk 1.8或以上maven 3.0+Idea(注:本系列教程全部用的IDEA作为开发工具)打开Idea-> new Project ->Spri...
2018-12-06 14:02:22
348
1
原创 linux禁止root账号直接登录并修改端口号
Linux的默认管理员名即是root,只需要知道ROOT密码即可直接登录SSH。禁止Root从SSH直接登录可以提高服务器安全性不允许root直接登陆1、修改相关文件vim /etc/ssh/sshd_configSSH执行以上命令,修改sshd_config文件2、禁止root登陆查找Port 2333 后面的数字代表端口号查找“#PermitRootLogin yes”,将...
2018-12-03 10:33:47
540
1
原创 深入理解Java之线程池
我们使用线程的时候就去创建一个线程,这样实现起来非常简便,但是就会有一个问题:如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的效率,因为频繁创建线程和销毁线程需要时间。那么有没有一种办法使得线程可以复用,就是执行完一个任务,并不被销毁,而是可以继续执行其他的任务?在Java中可以通过线程池来达到这样的效果。今天我们就来详细讲解一下Ja...
2018-11-26 16:59:39
261
原创 IDEA一定要改的8条配置
自动编译开关在Eclipse中自动编译开关是开着的,如下所示那么,在IDEA中,务必要手动将其打开,非常重要!如下所示忽略大小写开关IDEA默认是匹配大小写,此开关如果未关。你输入字符一定要符合大小写。比如你敲string是不会出现代码提示或智能补充。但是,如果你开了这个开关,你无论输入String或者string都会出现代码提示或者智能补充!智能导包开关如下图所示,将自动...
2018-11-23 16:48:12
792
原创 SQL这样干,你就是给自己刨坑……
SQL是作为一个程序员接触得非常多的一种语言,但是,很多时候,我们会发现,有些SQL的执行效率异常的差,造成了数据库的负担。我们通过分析这些有问题的SQL,就可以发现很多我们平时在写SQL的时候忽略的问题。今天,我们就来讲一下这些需要改掉的坏习惯。尽量少用负向条件查询假设我们有一个Order表,表中有一个字段是Status,这个字段有4个值,分别是0=待支付、1=待发货、2=待收货、3=已完...
2018-11-14 09:20:15
254
原创 对 Java 意义重大的 7 个性能指标
本文中,小编搜集了7个最有影响的衡量标注,让你可以不依赖日志文件来了解应用程序。现在,让我们看看这些性能指标,并了解如何查看并收集它们:1.响应时间和吞吐量根据应用程序的响应时间可以知道程序完成传输数据所用的时间。也可以从HTTP请求级别,或者成为数据库级别来看。对那些缓慢的查询你需要做一些优化来缩短时间。吞吐量是另一个角度衡量传输数据的指标,是指单位时间内系统处理的客户请求的数量。我...
2018-11-12 11:47:51
381
原创 MySQL数据库设置允许外网访问
使用外部数据库服务器登录MySQL数据库服务器。执行以下查询。mysql> GRANT all ON *.* TO username@'plesk server IP' IDENTIFIED BY 'password'; mysql> FLUSH PRIVILEGES;注意: 使用实际管理员凭据替换用户名和密码,并将“plesk服务器IP”替换 为 Plesk 的实际I...
2018-11-05 14:30:37
1617
原创 Centos配置Tomcat使用https协议
1、SSL证书的创建阿里云和腾讯云均有免费的证书,当前以腾讯云为例1、点击SSL证书 -> 立即购买 -> 出现如下界面,免费快速申请2、依次填写:域名、邮箱、备注、密码,然后下一步3、两种身份验证方式,都有对应的说明,然后点击确认申请,当前选择的是手动DNS验证4、验证完成后,下载证书5、.验证完成后,下载证书2、Tomcat服务端...
2018-09-11 15:03:10
953
原创 Oracle中表被锁住及解锁方法
Oracle中表被锁住及解锁方法 当数据库表被锁住的时候,应该按照如下的步骤操作,来解锁表:查看数据库锁,诊断锁的来源及类型:SELECT OBJECT_ID, SESSION_ID, LOCKED_MODE FROM V$LOCKED_OBJECT; 找出数据库的serial#,以备杀死:SELECT T2.USERNAME, T2.SID, T2.SERIAL#...
2018-09-10 17:55:09
491
原创 CentOS7使用firewalld打开关闭防火墙与端口
CentOS7使用firewalld打开关闭防火墙与端口1、firewalld的基本使用启动: systemctl start firewalld 关闭: systemctl stop firewalld 查看状态: systemctl status firewalld 开机禁用 : systemctl disable firewalld 开机启用 : systemctl e...
2018-09-08 17:52:38
225
原创 CentOS安装ActiveMQ
1、下载ActiveMQ下载:apache-activemq-5.15.5-bin.tar.gz创建activemq目录mkdir -p /usr/local/activemq进入activemq目录cd /usr/local/activemq/使用xftp根据上传activemq安装包到activemq目录2、解压解压压缩包tar -zxvf apach...
2018-08-28 14:38:08
605
原创 CentOS安装Redis
一、Redis安装Redis是C语言开发的,安装Redis需要C语言的环境,如果你的linux系统没有安装界面,那么就需要在线安装C语言环境。这里测试使用的系统是CentOS7.4,安装了系统界面。如果你是命令行版本的CentOS,那么需要使用以下命令安装C语言环境。yum install gcc-c++接下来正式安装Redis,这里使用的是redis4.0.11版本,你可以去red...
2018-08-28 09:34:13
223
LeNote日记本
2017-07-21
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人