12 2017 档案
摘要:在tomcat的access中打印出请求的情况可以帮助我们分析问题,通常比较关注的有访问IP、线程号、访问url、返回状态码、访问时间、持续时间。 在Spring boot中使用了内嵌的tomcat,可以通过server.tomcat.accesslog配置tomcat 的access日志,这里就以
阅读全文
摘要:官方文档,它是spring session项目的redis相关的一个子文档:https://docs.spring.io/spring-session/docs/2.0.0.BUILD-SNAPSHOT/reference/html5/guides/boot-redis.html 在spring b
阅读全文
摘要:AtomicInteger介绍 AtomicInteger是一个提供原子操作的Integer类,通过线程安全的方式操作加减。 AtomicInteger使用场景 AtomicInteger提供原子操作来进行Integer的使用,因此十分适合高并发情况下的使用。 AtomicInteger源码部分讲解
阅读全文
摘要:1.默认的Favicon Spring Boot提供了一个默认的Favicon,每次访问应用的时候都能看到,如图所示。 2.关闭Favicon 我们可以在application.properties中设置关闭Favicon,默认为开启。 3.设置自己的Favicon 若需要设置自己的Favicon,
阅读全文
摘要:http://blog.csdn.net/timliang18601860/article/details/7104485
阅读全文
摘要:http://www.cnblogs.com/franson-2016/p/5557259.html
阅读全文
摘要:我想这个问题需要根据自己的系统具体架构来分别讨论,这边拿一个车联网的系统举例。 拆除GPS这个功能接口需要分几个步骤实现(不涉及数据更新的步骤略去了): ①更改GPS设备状态(设备管理服务) ②更改工单状态(工单管理服务) 假设调用拆除GPS这个接口的时候,由于各种原因②不能工作了。 架构1:普通的
阅读全文
摘要:http://blog.csdn.net/zhangchao19890805/article/details/53893735
阅读全文
摘要:一、什么是Rest? REST不是"rest"这个单词,而是几个单词缩写 -- REpresentational State Transfer 直接翻译:表现层状态转移,但这个翻译正常人根本看不懂,找到的一种最好理解的说法是,URL定位资源,用HTTP动词(GET,POST,DELETE,DETC)
阅读全文
摘要:微服务架构强调的第一个重点就是业务系统需要彻底的组件化和服务化,原有的单个业务系统会拆分为多个可以独立开发,设计,运行和运维的小应用。这些小应用之间通过服务完成交互和集成。每个小应用从前端web ui,到控制层,逻辑层,数据库访问,数据库都完全是独立的一套。在这里我们不用组件而用小应用这个词更加合适
阅读全文
摘要:http://blog.csdn.net/walkerjong/article/details/7946109/
阅读全文
摘要:http://blog.csdn.net/wxwzy738/article/details/24742495
阅读全文
摘要:HTTP:超文本传输协议,首先它是一个协议,并且是基于TCP/IP协议基础之上的应用层协议。TCP/IP协议是传输层协议,主要解决数据如何在网络中传输,HTTP是应用层协议,主要解决如何包装数据。HTTP协议详细规定了浏览器与服务器之间相互通信的规则,是万维网交换信息的基础。HTTP是基于请求-响应
阅读全文
摘要:http://blog.csdn.net/u013161399/article/details/47297781
阅读全文
摘要:https://www.cnblogs.com/fnng/archive/2011/07/26/2117600.html
阅读全文
摘要:在高并发、对稳定性要求极高的系统中,高可用的是必不可少的,当然ActiveMQ也有自己的集群方案。从ActiveMQ 5.9开始,ActiveMQ的集群实现方式取消了传统的Master-Slave方式,增加了基于ZooKeeper + LevelDB 的 Master-Slave 实现方式。 相关文
阅读全文
摘要:最近在做数据对接的工作,用到了activemq,我需要从activemq中接收消息并处理,但是我处理数据的步骤稍微复杂,渐渐的消息队列中堆的数据越来越多,就想到了我这边多开几个线程来处理消息。 可是会发现,服务器占用的网络带宽变的异常的高,仔细分析发现,mq入队时并没有异常高的网络流量,仅仅在出队时
阅读全文
摘要:http://blog.csdn.net/dly1580854879/article/details/68945997
阅读全文
摘要:为了避免意外宕机以后丢失信息,需要做到重启后可以恢复消息队列,消息系统一般都会采用持久化机制。 ActiveMQ的消息持久化机制有JDBC,AMQ,KahaDB和LevelDB,无论使用哪种持久化方式,消息的存储逻辑都是一致的。 就是在发送者将消息发送出去后,消息中心首先将消息存储到本地数据文件、内
阅读全文
摘要:一、简介 消息消费者有没有接收到消息,需要有一种机制让消息提供者知道,这个机制就是消息确认机制。 ACK(Acknowledgement)即确认字符,在数据通信中,接收站发给发送站的一种传输类控制字符。表示发来的数据已确认接收无误。 二、ACK_MODE有几类 我们在开发JMS应用程序的时候,会经常
阅读全文
摘要:一、简介 在使用activemq消息中间件进行消息队列传输时,总会由于各种原因导致消息失败。 一个经典的场景是一个生成者向Queue中发消息,里面包含了一组邮件地址和邮件内容。而消费者从Queue中将消息一条条读出来,向指定邮件地址发送邮件。消费者在发送消息的过程中由于种种原因会导致失败,比如网络超
阅读全文
摘要:慢查询日志概念 MySQL的慢查询日志是MySQL提供的一种日志记录,它用来记录在MySQL中响应时间超过阀值的语句,具体指运行时间超过long_query_time值的SQL,则会被记录到慢查询日志中。long_query_time的默认值为10,意思是运行10S以上的语句。默认情况下,Mysql
阅读全文
摘要:数据库事务transanction正确执行的四个基本要素。 ACID 原子性(Atomicity) 原子性:整个事务中的所有操作,要么全部完成,要么全部不完成,不可能停滞在中间某个环节。事务在执行过程中发生错误,会被回滚(Rollback)到事务开始前的状态,就像这个事务从来没有执行过一样。 一致性
阅读全文
摘要:799 799 java里有伪随机型和安全型两种随机数生成器,伪随机生成器根据特定公式将seed转换成新的伪随机数据的一部分,安全随机生成器在底层依赖到操作系统提供的随机事件来生成数据。 安全随机生成器 需要生成加密性强的随机数据的时候才用它 生成速度慢 如果需要生成大量的随机数据,可能会产生阻塞需
阅读全文
摘要:一、概述 数据库锁定机制简单来说,就是数据库为了保证数据的一致性,而使各种共享资源在被并发访问变得有序所设计的一种规则。对于任何一种数据库来说都需要有相应的锁定机制,所以MySQL自然也不能例外。MySQL数据库由于其自身架构的特点,存在多种数据存储引擎,每种存储引擎所针对的应用场景特点都不太一样,
阅读全文
摘要:在本文中,GetDate()获得的日期由两部分组成,分别是今天的日期和当时的时间: Select GetDate() 用DateName()就可以获得相应的年、月、日,然后再把它们连接起来就可以了: Select Datename(year,GetDate())+'-'+Datename(month
阅读全文
摘要:字符转换为日期时,Style的使用 --1. Style=101时,表示日期字符串为:mm/dd/yyyy格式SELECT CONVERT(datetime,'11/1/2003',101)--结果:2003-11-01 00:00:00.000 --2. Style=101时,表示日期字符串为:d
阅读全文
摘要:HTTP只负责把数据传送过去,不会管这个数据是XML、HTML、图片、文本文件或者别的什么。而SOAP协议则定义了怎么把一个对象变成XML文本,在远程如何调用等,怎么能够混为一谈。 这样说两种协议: HTTP就是邮局的协议,他们规定了你的信封要怎么写,要贴多少邮票等。。。。 SOAP就是你们之间交流
阅读全文
摘要:摘要: 实现:git->eclipse的,eclipse->git双向 1.安装egit插件 在Eclipse中选择help->Eclipse Marketplace,在search中输入egit,找到后安装即可 2.导入github项目 2.1.在github上找到你要导入的源码项目,比如: ht
阅读全文
摘要:http://blog.csdn.net/u011955252/article/details/52912571
阅读全文
摘要:现有启动器Starter目录 Spring Boot应用启动器基本的一共有44种,具体如下: 1)spring-boot-starter 这是Spring Boot的核心启动器,包含了自动配置、日志和YAML。 2)spring-boot-starter-actuator 帮助监控和管理应用。 3)
阅读全文
摘要:默认情况下,spring的IOC容器中lazy-init是false的,即没有打开懒加载模式。 如果你没有看到这个lazy-init 的参数设置就说明是false啦。 那么什么是懒加载? 懒加载 就是我们在spring容器启动的是先不把所有的bean都加载到spring的容器中去,而是在当需要用的时
阅读全文
摘要:描述 大家都知道Java读普通文件是通过Basic I/O 中的InputStream、OutStream、Reader、Writer 等实现的。在spring 框架中,它是怎样识别xml这个配置文件的呢? 这就要靠IoC容器的两个接口BeanFactory 和ApplicationContext:
阅读全文
摘要:外键约束对子表的含义: 如果在父表中找不到候选键,则不允许在子表上进行insert/update 外键约束对父表的含义: 在父表上进行update/delete以更新或删除在子表中有一条或多条对应匹配行的候选键时,父表的行为取决于:在定义子表的外键时指定的on update/on delete子句,
阅读全文
摘要:http://hellosure.iteye.com/blog/1130176
阅读全文
摘要:在配置文件redis.conf中,默认的bind 接口是127.0.0.1,也就是本地回环地址。这样的话,访问redis服务只能通过本机的客户端连接,而无法通过远程连接,这样可以避免将redis服务暴露于危险的网络环境中,防止一些不安全的人随随便便通过远程连接到redis服务。如果bind选项为空的
阅读全文
摘要:http://www.cnblogs.com/zlcxbb/p/5757173.html
阅读全文
摘要:MyBatis 配置文件基本结构 在使用mybatis框架时,首先导入其对应的jar包,并进行相应的配置,所以得对配置文件的每个参数都得了解。一个完全的mybatis配置文件结构如下: 注意顺序写的时候也要按这个顺序来配置。 properties properties元素主要是用来定义配置外在化,比
阅读全文
摘要:http://blog.csdn.net/reliveit/article/details/47325189
阅读全文
摘要:1、采用MapperScannerConfigurer,它将会查找类路径下的映射器并自动将它们创建成MapperFactoryBean。 spring-mybatis.xml: UserMapper.xml: dao类: service类: 2、采用接口org.apache.ibatis.sessi
阅读全文
摘要:http://www.cnblogs.com/fangjian0423/p/mybatis-interceptor.html
阅读全文
摘要:MyBatis 真正的力量是在映射语句中。这里是奇迹发生的地方。对于所有的力量,SQL 映射的 XML 文件是相当的简单。当然如果你将它们和对等功能的 JDBC 代码来比较,你会发现映射文件节省了大约 95%的代码量。MyBatis 的构建就是聚焦于 SQL 的,使其远离于普通的方式。 SQL 映射
阅读全文
摘要:http://www.cnblogs.com/selene/p/4631244.html http://blog.csdn.net/eson_15/article/details/51668523
阅读全文
摘要:MyBatis缓存分为一级缓存和二级缓存 一级缓存 MyBatis的一级缓存指的是在一个Session域内,session为关闭的时候执行的查询会根据SQL为key被缓存(跟mysql缓存一样,修改任何参数的值都会导致缓存失效) 1)单独使用MyBatis而不继承Spring,使用原生的MyBati
阅读全文
摘要:HTTP响应由三个部分组成: 1、状态码(Status Code): 描述了响应的状态。可以用来检查是否成功的完成了请求。请求失败的情况下,状态码可用来找出失败的原因。如果Servlet没有返回状态码,默认会返回成功的状态码HttpServletResponse.SC_OK。 2、HTTP头部(HT
阅读全文
摘要:HTTP请求报头: Authorization HTTP响应报头: WWW-Authenticate HTTP认证 基于 质询 /回应( challenge/response)的认证模式。 ◆ 基本认证 basic authentication ← HTTP1.0提出的认证方法 客户端对于每一个re
阅读全文
摘要:mysql数据库有多种安装方式,本文只介绍在Linux服务器上最实用、最快捷的mysql server安装方法。一、Linux服务器yum安装(CentOS6.3 64位)所有在服务器上执行的命令,都在 # 后面1、命令安装mysql# yum install mysql mysql-server
阅读全文
摘要:from: http://stackoverflow.com/questions/10604298/spring-component-versus-bean http://stackoverflow.com/questions/27091553/are-bean-and-component-anno
阅读全文
摘要:https://jingyan.baidu.com/article/acf728fd49519ff8e410a361.html
阅读全文
摘要:一、下载安装包 1.在官网下载MySQL5.7安装包 mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz。 下载地址:https://dev.mysql.com/downloads/mysql/ 由于安装包比较大,五六百M吧,再加上官网下载速度很慢,如果你等不急,可
阅读全文
摘要:MySQL索引原理及慢查询优化 http://blog.jobbole.com/86594/ 细说mysql索引 https://www.cnblogs.com/chenshishuo/p/5030029.html MySQL的btree索引和hash索引的区别 https://www.cnblog
阅读全文
摘要:命令手册网址 http://doc.redisfans.com/ Redis数据类型 l String l Hash l List l Set l Sorted Set Redis中还有3种特殊的数据类型 BitMap BitMap 就是通过一个 bit 位来表示某个元素对应的值或者状态, 其中的
阅读全文
摘要:在非分布式系统中要实现锁的机制很简单,利用java.util.concurrent.locks包下的Lock和关键字synchronized都可以实现。但是在分布式系统中,如何实现各个单独的微服务需要共享某个资源的时候进行有效的锁的保护机制呢?这边使用Redisson来实现。 一、Redisson简
阅读全文
摘要:@RestController注解相当于@ResponseBody + @Controller合在一起的作用
阅读全文
摘要:伸缩性是指在不改变原有架构设计的基础上,通过添加/减少硬件(服务器)的方式,提高/降低系统的处理能力。 应用层:对应用进行垂直或水平切分。然后针对单一功能进行(nginx)负载均衡(DNS,HTTP[反向代理http://blog.csdn.net/lishaojun0115/article/det
阅读全文
摘要:可以方便的进行功能模块的新增/移除,提供代码/模块级别良好的可扩展性。 模块化,组件化:高内聚,内耦合,提高复用性,扩展性。 稳定接口:定义稳定的接口,在接口不变的情况下,内部结构可以“随意”变化。 设计模式:应用面向对象思想,原则,使用设计模式,进行代码层面的设计。 消息队列:模块化的系统,通过消
阅读全文
摘要:之前处理工程异常,代码中最常见的就是try-catch-finally,有时一个try,多个catch,覆盖了核心业务逻辑 @ExceptionHandler:统一处理某一类异常,从而能够减少代码重复率和复杂度 当这个Controller中任何一个方法发生异常,一定会被这个方法拦截到。然后,输出日志
阅读全文
摘要:SpringCLoud中的“Discovery Service”有多种实现,比如:eureka, consul, zookeeper。 1,@EnableDiscoveryClient注解是基于spring-cloud-commons依赖,并且在classpath中实现; 2,@EnableEure
阅读全文
摘要:在pom.xml中没有声明的加入这个plugin时,是按照1.3来进行编译的。我们肯定不想用这么低的JDK版本
阅读全文
摘要:@EnableTransactionManagement表示开启事务支持,在springboot项目中一般配置在启动类上,效果等同于xml配置的<tx:annotation-driven />。开启事务支持后,然后在访问数据库的Service方法上添加注解 @Transactional 便可。
阅读全文
摘要:@ConditionalOnMissingBean注解作用在@bean定义上,它的作用就是在容器加载它作用的bean时,检查容器中是否存在目标类型(ConditionalOnMissingBean注解的value值)的bean了,如果存在这跳过原始bean的BeanDefinition加载动作。
阅读全文
摘要:最近做一个小项目,需要对一批数据进行缓存,且要求持久化到磁盘。使用ehcache非常简单和直观,一般来说只需要配置ehcache.xml文件,接着直接使用@Cacheable, @Cacheput, @CacheEvict即可。 三个注解的意思也很简单,这里就不说了。 ehchche.xml的配置非
阅读全文
摘要:@EnableDiscoveryClient(autoRegister=false)或者在配置文件里spring.cloud.service-registry.auto-registration.enabled=false
阅读全文
摘要:如果发现报这个错误 试试注入RestOperations或者加上spring.aop.proxyTargetClass=true
阅读全文
摘要:(一)对称加密(Symmetric Cryptography) 对称加密是最快速、最简单的一种加密方式,加密(encryption)与解密(decryption)用的是同样的密钥(secret key)。对称加密有很多种算法,由于它效率很高,所以被广泛使用在很多加密协议的核心当中。 对称加密通常使用
阅读全文
摘要:一、前言 spring-boot-devtools是一个为开发者服务的一个模块,其中最重要的功能就是自动应用代码更改到最新的App上面去。原理是在发现代码有更改之后,重新启动应用,但是速度比手动停止后再启动还要更快,更快指的不是节省出来的手工操作的时间。其深层原理是使用了两个ClassLoader,
阅读全文
摘要:一、springboot缓存简介 在 Spring Boot中,通过@EnableCaching注解自动化配置合适的缓存管理器(CacheManager),Spring Boot根据下面的顺序去侦测缓存提供者: * Generic * JCache (JSR-107) * EhCache 2.x *
阅读全文
摘要:首先maven要引入spring-boot-starter-test这个包。 先看一段代码 1、@RunWith(SpringRunner.class) 告诉JUnit运行使用Spring的测试支持。SpringRunner是SpringJUnit4ClassRunner的新名字,这个名字只是让名字
阅读全文
摘要:@EnableWebMVC注解用来开启Web MVC的配置支持。也就是写Spring MVC时的时候会用到。
阅读全文
摘要:1. Controller, RestController的共同点 都是用来表示Spring某个类的是否可以接收HTTP请求 2. Controller, RestController的不同点 @Controller标识一个Spring类是Spring MVC controller处理器 @Rest
阅读全文
摘要:springboot对logback的支持是非常好的,不需要任何配置,只需要在resource下加logback.xml就可以实现功能直接贴代码: 其中值得注意的是:你配置文件中的包名要能够扫描到你的所有类,包括启动类。 否则,你的日志文件是生成了,但是不会向里面写入内容 启动程序打印日志,日志成功
阅读全文
摘要:ehcache直接在jvm虚拟机中缓存,速度快,效率高;但是缓存共享麻烦,集群分布式应用不方便。redis是通过socket访问到缓存服务,效率比ecache低,比数据库要快很多,处理集群和分布式缓存方便,有成熟的方案。 如果是单个应用或者对缓存访问要求很高的应用,用ehcache。如果是大型系统,
阅读全文
摘要:项目里的接口都是用springmvc写的,其中在@requestmapping接口中定义了consumes="application/json",也就是该接口只接受ContentType为application/json的请求。 接口写好用工具测试接口都是可以正常请求,但是在浏览器中用ajax请求就
阅读全文
摘要:Spring boot默认是/ ,这样直接通过http://ip:port/就可以访问到index页面,如果要修改为http://ip:port/path/ 访问的话,那么需要在Application.properties文件中加入server.context-path = /你的path,比如:s
阅读全文
摘要:@SpringBootApplication包含三个有用的注解,包括 @SpringBootConfiguration:看源码其实就是@Configuration,表示当前类是一个配置类,就像xml配置文件,而现在是用java配置文件,效果是一样的,一般和@Bean一起使用。 @EnableAuto
阅读全文
摘要:1、在web.xml添加filter 2、filter实现
阅读全文
摘要:1. 什么是跨域 跨域,即跨站HTTP请求(Cross-site HTTP request),指发起请求的资源所在域不同于请求指向资源所在域的HTTP请求。 2. 跨域的应用情景 当使用前后端分离,后端主导的开发方式进行前后端协作开发时,常常有如下情景: 3. 通过注解的方式允许跨域 非常简单,我们
阅读全文
摘要:背景: AJAX向后台(springmvc)发送请求,报错:已阻止交叉源请求:同源策略不允许读取 http://127.0.0.1:8080/DevInfoWeb/getJsonp 上的远程资源。可 以将资源移动到相同的域名上或者启用 CORS 来解决这个问题。 百度一下,发现是遇到了跨域请求请求问
阅读全文
摘要:如果你执行过mvn test或者执行其他maven命令时跑了测试用例,你就已经用过maven-surefire-plugin了。maven-surefire-plugin是maven里执行测试用例的插件,不显示配置就会用默认配置。这个插件的surefire:test命令会默认绑定maven执行的te
阅读全文
摘要:Spring+MyBatis开发过程中,在xxMapper.xml配置文件进行select查询时resultType="map",如果要查询的字段是空值,在返回的map中会出现找不到这个字段对应的属性。要解决这个问题需要指定 callSettersOnNulls 属性
阅读全文
摘要:org.apache.maven.plugins maven-resources-plugin UTF-8
阅读全文
摘要:有的时候我们把java bean 转换成json的时候,希望屏蔽掉某个属性,这时可以在java bean的属性上加上@JsonIgnore注解,在com.fasterxml.jackson.annotation包下 反过来json转java bean 也适用
阅读全文
摘要:springmvc中的@RequestMapping注解是用来处理请求地址映射的,如果某个接口我们只接受请求的提交内容类型(Content-Type)为application/json或text/html,那可以用@RequestMapping中的consumes来定义,同样还有个produces是
阅读全文
摘要:RBAC是Role-BasedAccess Control的英文缩写,意思是基于角色的访问控制。RBAC认为权限授权实际上是Who、What、How的问题。在RBAC模型中,who、what、how构成了访问权限三元组,也就是“Who对What(Which)进行How的操作,也就是“主体”对“客体”
阅读全文
摘要:BufferedInputStream是带缓冲区的输入流,默认缓冲区大小是8M,能够减少访问磁盘的次数,提高文件读取性能;BufferedOutputStream是带缓冲区的输出流,能够提高文件的写入效率。BufferedInputStream与BufferedOutputStream分别是Filt
阅读全文
摘要:通过Eclipse MarketPlace安装Jetty插件。 Jetty下载 1、 2、3、4、5、 注:在使用Jetty的时候,同一个Project中,不可以同时存在两个版本的库,否则会出现找不到jar的情况。或者运行异常。而且,如果高版本和低版本同时存在,高版本会影响低版本。 这一点,千万小心
阅读全文
摘要:杀wnTKYg病毒分两步,第一是找到它的来源,切断入口,第二步,找到它的守护进程并杀死,然后再去杀死病毒进程,有的守护进程很隐蔽,唤醒病毒之后,自动消亡,这时候top就看不到了,要留心。 最近项目在做性能测试,发现CPU使用率异常,无人访问时CPU也一直保持75%,然后在xShell上top了一下,
阅读全文
摘要:修改防火墙配置需要修改 /etc/sysconfig/iptables 这个文件,如果要开放哪个端口,在里面添加一条。 -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 1521 -j ACCEPT 就可以了,其中 1
阅读全文
摘要:一、下载:apache-activemq-5.14.0-bin.tar.gz http://activemq.apache.org/activemq-5140-release.html 二、安装activemq 1、gz文件拷贝到/usr/local/src目录 2、解压启动 tar -zxvf a
阅读全文
摘要:linux系统为Centos 64位 准备目录 下载 从http://nginx.org/download/上下载相应的版本(或者wget http://nginx.org/download/nginx-1.5.9.tar.gz直接在Linux上用命令下载) 解压 解压 tar -zxvf ngin
阅读全文
摘要:一、下载windows版本的Redis 去官网找了很久,发现原来在官网上可以下载的windows版本的,现在官网以及没有下载地址,只能在github上下载,官网只提供linux版本的下载 官网下载地址:http://redis.io/download github下载地址:https://githu
阅读全文
摘要:RPC(Remote Procedure Call Protocol) RPC使用C/S方式,采用http协议,发送请求到服务器,等待服务器返回结果。这个请求包括一个参数集和一个文本集,通常形成“classname.methodname”形式。优点是跨语言跨平台,C端、S端有更大的独立性,缺点是不支
阅读全文
摘要:1.首先确认服务器出于安全的状态,也就是没有人能够任意地连接MySQL数据库。 因为在重新设置MySQL的root密码的期间,MySQL数据库完全出于没有密码保护的 状态下,其他的用户也可以任意地登录和修改MySQL的信息。可以采用将MySQL对 外的端口封闭,并且停止Apache以及所有的用户进程
阅读全文
摘要:-- 3000 page(从1开始) 10 pagesize -- 方法1(效率不高): SELECT TOP 10 * FROM [xxx].[oooo] WHERE id NOT IN (SELECT TOP (10*(3000-1)) id FROM [xxx].[oooo] ORDER BY
阅读全文
摘要:1. 什么是聚合索引(clustered index) / 什么是非聚合索引(nonclustered index)? 可以把索引理解为一种特殊的目录。微软的SQL SERVER提供了两种索引:聚集索引(clustered index,也称聚类索引、簇集索引)和非聚集索引(nonclustered
阅读全文
摘要:bean的scope属性有prototype,singleton,request, session几个属性 spring和struts2整合的时候,struts2的action要配置成scope="prototype",这是为了线程安全, 下面是struts2+hibernate+spring配置文
阅读全文
摘要:随着一个网站的业务不断扩展,数据不断增加,数据库的压力也会越来越大,对数据库或者SQL的基本优化可能达不到最终的效果,我们可以采用读写分离的策略来改变现状。读写分离现在被大量应用于很多大型网站,这个技术也不足为奇了。ebay就做得非常好。ebay用的是oracle,听说是用Quest Share P
阅读全文
摘要:一、为什么要分库分表 数据库中的数据量是在不断增加的,在未进行分库分表的情况下,随着时间和业务的发展,库中的表会越来越多,表中的数据量也会越来越大,相应地,数据操作,增删改查的开销也会越来越大;另外,由于无法进行分布式部署,而一台服务器的资源(CPU、磁盘、内存、IO等)是有限的,最终数据库所能承载
阅读全文
摘要:线程池ThreadPoolExecutor的使用 并发容器之CopyOnWriteArrayList 并发容器之CopyOnWriteArraySet 数据结构之ConcurrentHashMap,区别于HashMap的非线程安全,比HashTable更高效 数据结构之ConcurrentSkipL
阅读全文
摘要:我们在Spring Cloud(七):使用SVN存储分布式配置中心文件和实现refresh中讲到,如果需要客户端获取到最新的配置信息需要执行refresh,我们可以利用webhook的机制每次提交代码发送请求来刷新客户端,当客户端越来越多的时候,需要每个客户端都执行一遍,这种方案就不太适合了。使用S
阅读全文
摘要:在前两篇的介绍中,客户端都是直接调用配置中心的server端来获取配置文件信息。这样就存在了一个问题,客户端和服务端的耦合性太高,如果server端要做集群,客户端只能通过原始的方式来路由,server端改变IP地址的时候,客户端也需要修改配置,不符合springcloud服务治理的理念。sprin
阅读全文
摘要:国内很多公司都使用的svn来做代码的版本控制,我们先介绍以下如何使用svn+Spring Cloud Config来做配置中心。 svn版本 同样先示例server端的代码,基本步骤一样。 1、添加依赖 需要多引入svnkitr包 2、配置文件 和git版本稍有区别,需要显示声明subversion
阅读全文
摘要:Hystrix-dashboard是一款针对Hystrix进行实时监控的工具,通过Hystrix Dashboard我们可以在直观地看到各Hystrix Command的请求响应时间, 请求成功率等数据。但是只使用Hystrix Dashboard的话, 你只能看到单个应用内的服务信息, 这明显不够
阅读全文
摘要:熔断器 雪崩效应 在微服务架构中通常会有多个服务层调用,基础服务的故障可能会导致级联故障,进而造成整个系统不可用的情况,这种现象被称为服务雪崩效应。服务雪崩效应是一种因“服务提供者”的不可用导致“服务消费者”的不可用,并将不可用逐渐放大的过程。 如果下图所示:A作为服务提供者,B为A的服务消费者,C
阅读全文
摘要:上一篇文章我们介绍了eureka服务注册中心的搭建,这篇文章介绍一下如何使用eureka服务注册中心,搭建一个简单的服务端注册服务,客户端去调用服务使用的案例。 案例中有三个角色:服务注册中心、服务提供者、服务消费者,其中服务注册中心就是我们上一篇的eureka单机版启动既可,流程是首先启动注册中心
阅读全文
摘要:前言 Eureka 作为一个云端负载均衡,本身是一个基于REST的服务,在 Spring Cloud 中用于发现和注册服务。 那么当成千上万个微服务注册到Eureka Server中的时候,Eureka Server 的负载将会很大,这样一旦Eureka Server服务挂掉了,整个微服务架构也就瘫
阅读全文
摘要:这几天在为公司项目搭建一个后台框架,使用的是eclipse-Mars自带的maven插件,在maven进行编译的时候,出现Fatal error compiling: 无效的目标发行版: 1.8 -> [Help 1] 的 错误。而我在pom文件中已经指定了maven编译时使用jdk8来编译,那为什
阅读全文
摘要:1 //创建工作薄(excel) 2 Workbook wb = new HSSFWorkbook(); 3 //创建sheet 4 Sheet createSheet = wb.createSheet("sheet1"); 5 6 //设置标题字体 7 Font fo...
阅读全文
摘要:一、简介 在分布式系统中,由于服务数量巨多,为了方便服务配置文件统一管理,实时更新,所以需要分布式配置中心组件。市面上开源的配置中心有很多,BAT每家都出过,360的QConf、淘宝的diamond、百度的disconf都是解决这类问题。国外也有很多开源的配置中心Apache的Apache Comm
阅读全文
摘要:用spring cloud sidecar的整合异构语言,以前做过没有做笔记,现在再做由于各种坑又浪费了一天,这里记一下 首先是官网:http://cloud.spring.io/spring-cloud-static/spring-cloud-netflix/1.3.1.RELEASE/ 官网上面
阅读全文
摘要:一、消息队列概述 消息队列中间件是分布式系统中重要的组件,主要解决应用耦合,异步消息,流量削锋等问题。实现高性能,高可用,可伸缩和最终一致性架构。是大型分布式系统不可缺少的中间件。 目前在生产环境,使用较多的消息队列有ActiveMQ,RabbitMQ,ZeroMQ,Kafka,MetaMQ,Roc
阅读全文
摘要:1、设置ActiveMQ的访问密码,以提高ActiveMQ的安全性 2、在ActiveMQ的conf目录的activemq.xml中添加账号密码 2.1 添加的代码如下 2.2 添加在active.xml的位置如下 3、利用设置的账号,密码,访问ActiveMQ
阅读全文
摘要:原文链接:http://tutorials.jenkov.com/java-nio/socketchannel.html 在Java NIO体系中,SocketChannel是用于TCP网络连接的套接字接口,相当于Java网络编程中的Socket套接字接口。创建SocketChannel主要有两种方
阅读全文
摘要:Java8是一个较大改变的版本,包含了API和库方面的修正,它还对我们常用的API进行很多微小的调整, 下面我会带你了解字符串、集合、注解等新方法。 字符串 经常会遇到这样一种情况, 需要将一组字符串按特定格式拼接起来。 之前的写法 Java 8的join写法 String message = St
阅读全文
摘要:try-with-resources 这个特性是在JDK7中出现的,我们在之前操作一个流对象的时候大概是这样的: try { // 使用流对象 stream.read(); stream.write(); } catch(Exception e){ // 处理异常 } finally { // 关闭
阅读全文
摘要:原文链接:http://tutorials.jenkov.com/java-nio/channel-to-channel-transfers.html 在Java NIO中如果一个channel是FileChannel类型的,那么他可以直接把数据传输到另一个channel。这个特性得益于FileCh
阅读全文
摘要:原文链接:http://tutorials.jenkov.com/java-nio/scatter-gather.html Java NIO发布时内置了对scatter / gather的支持。scatter / gather是通过通道读写数据的两个概念。 Scattering read指的是从通道
阅读全文
摘要:一、为什么要分表? 当一张的数据达到几百万时,你查询一次所花的时间会变多,如果有联合查询的话,有可能会死在那儿了。分表的目的就在于此,减小数据库的负担,缩短查询时间。根据个人经验,mysql执行一个sql的过程如下:1、接收到sql; 2、把sql放到排队队列中;3、执行sql; 4、返回执行结果。
阅读全文
摘要:经常会遇到这样的问题,调用一个方法得到了返回值却不能直接将返回值作为参数去调用别的方法。我们首先要判断这个返回值是否为null,只有在非空的前提下才能将其作为其他方法的参数。 新版本的Java,比如Java 8引入了一个新的Optional类。Optional类的Javadoc描述如下: 这是一个可
阅读全文
摘要:我们知道在JDK6甚至之前的时候,我们想要读取一个文本文件也是非常麻烦的一件事,而现在他们都变得简单了, 这要归功于NIO2,我们先看看之前的做法: 读取一个文本文件 BufferedReader br = null; try { new BufferedReader(new FileReader(
阅读全文
摘要:我们知道 Java 8 增加了一些很有用的 API, 其中一个就是 Optional. 如果对它不稍假探索, 只是轻描淡写的认为它可以优雅的解决 NullPointException 的问题, 于是代码就开始这么写了 Optional<User> user = ……if (user.isPresen
阅读全文
摘要:原文链接:http://tutorials.jenkov.com/java-nio/channels.html Java NIO Channel通道和流非常相似,主要有以下几点区别: 通道可以读也可以写,流一般来说是单向的(只能读或者写)。 通道可以异步读写。 通道总是基于缓冲区Buffer来读写。
阅读全文
摘要:原文链接:http://tutorials.jenkov.com/java-nio/buffers.html Java NIO Buffers用于和NIO Channel交互。正如你已经知道的,我们从channel中读取数据到buffers里,从buffer把数据写入到channels. buffe
阅读全文
摘要:NIO包含下面几个核心的组件: Channels Buffer Selector 整个NIO体系包含的类远远不止这几个,但是在笔者看来Channels,Buffer和Selector组成了这个核心的API。其他的一些组件,比如Pipe和FileLock仅仅只作为上述三个的负责类。因此在概览这一节中,
阅读全文
摘要:Java NIO是java 1.4之后新出的一套IO接口,这里的新是相对于原有标准的Java IO和Java Networking接口。NIO提供了一种完全不同的操作方式。 NIO中的N可以理解为Non-blocking,不单纯是New Java NIO: Channels and Buffers
阅读全文
摘要:大型网站应该在任何时候都可以正常访问。正常提供对外服务。因为大型网站的复杂性,分布式,廉价服务器,开源数据库,操作系统等特点。要保证高可用是很困难的,也就是说网站的故障是不可避免的。 如何提高可用性,就是需要迫切解决的问题。首先,需要从架构级别,在规划的时候,就考虑可用性。行业内一般用几个9表示可用
阅读全文
摘要:什么样的系统架构算是高性能的呢?我的理解是它是以用户为中心,提供快速的网页访问体验。主要参数有较短的响应时间,较大的并发处理能力,较高的吞吐量,稳定的性能参数。 具体优化的方向可分为前端优化,应用层优化,代码层优化,存储层优化。 一、前端优化 1.浏览器访问优化 ①减少http请求. 在服务器端,每
阅读全文
摘要:一、基础设施安全 这个不用多说,服务器、操作系统都要用正规的高质量的,安装杀毒软件防火墙,使用攻击检测系统。 二、应用系统安全 开发程序的时候,应当事先知道并在代码层面处理大部分常见的安全问题。 1.sql注入 mybatis就使用#比使用$能规避掉很多sql注入攻击。 2.csrf(跨站请求伪造)
阅读全文
摘要:什么是Spring Cloud? Spring Cloud是一个基于Spring Boot实现的云应用开发工具,它为基于JVM的云应用开发中的配置管理、服务发现、断路器、智能路由、微代理、控制总线、全局锁、决策竞选、分布式会话和集群状态管理等操作提供了一种简单的开发方式。 微服务是可以独立部署、水平
阅读全文