- 博客(121)
- 收藏
- 关注
原创 Kafka
慢慢道来……原来,对于Linkin这样的互联网企业来说,用户和网站上产生的数据有三种:需要实时响应的交易数据,用户提交一个表单,输入一段内容,这种数据最后是存放在关系数据库(Oracle, MySQL)中的,有些需要事务支持。活动流数据,准实时的,例如页面访问量、用户行为、搜索情况,这些数据可以产生啥?广播、排序、个性化推荐、运营监控等。这种数据一般是前端服务器先写文件,然后通过批...
2015-11-24 15:58:59
190
原创 Kafka 对比 ActiveMQ
Kafka 是LinkedIn 开发的一个高性能、分布式的消息系统,广泛用于日志收集、流式数据处理、在线和离线消息分发等场景。虽然不是作为传统的MQ来设计,在大部分情况,Kafaka 也可以代替原先ActiveMQ 等传统的消息系统。Kafka 将消息流按Topic 组织,保存消息的服务器称为Broker,消费者可以订阅一个或者多个Topic。为了均衡负载,一个Topic 的消息又可以划分到...
2015-11-24 15:31:56
315
原创 Java应用一般架构原理
当我们架设一个系统的时候通常需要考虑到如何与其他系统交互,所以我们首先需要知道各种系统之间是如何交互的,使用何种技术实现。 1. 不同系统不同语言之间的交互 现在我们常见的不同系统不同语言之间的交互使用WebService,Http请求。WebService,即“Web 服务”,简写为 WS。从字面上理解,它其实就是“基于 Web 的服务”。而服务却是双方的,有服务需求方,就有服务提供方。服务提...
2015-11-12 09:51:09
212
原创 cookie与seesion的关系及集群服务器下的共享问题
一 cookie与seesion的关系为什么会有cookie呢,大家都知道,http是无状态的协议,客户每次读取web页面时,服务器都打开新的会话,而且服务器也不会自动维护客户的上下文信息,那么要怎么才能实现网上商店中的购物车呢,session就是一种保存上下文信息的机制,它是针对每一个用户的,变量的值保存在服务器端,通过 SessionID来区分不同的客户,session是以cookie或UR...
2015-11-11 17:12:44
360
原创 缓存概述
1.1 分布式缓存的特性 分布式缓存具有如下特性: 1) 高性能:当传统数据库面临大规模数据访问时,磁盘I/O 往往成为性能瓶颈,从而导致过高的响应延迟.分布式缓存将高速内存作为数据对象的存储介质,数据以key/value 形式存储,理想情况下可以获得DRAM 级的读写性能; 2) 动态扩展性:支持弹性扩展,通过动态增加或减少节点应对变化的数据访问负载,提供可预测的性...
2015-11-11 16:01:25
143
原创 JVM 运行时数据区简介及堆与栈的区别
1、JVM运行时数据区分类程序计数器 (Program Counter (PC) Register)JVM栈 (Java Virtual Machine Stacks)堆内存 (Heap Memory)方法区 (Method Area)运行时常量池 (Run-time Constant Pool)本地方法栈 (Native M...
2015-11-04 11:20:25
193
原创 http://www.cnblogs.com/xing901022/p/4084944.html
http://www.cnblogs.com/xing901022/p/4084944.html
2015-09-25 10:08:19
208
原创 JVM学习笔记(四)------------内存调优
首先需要注意的是在对JVM内存调优的时候不能只看操作系统级别Java进程所占用的内存,这个数值不能准确的反应堆内存的真实占用情况,因为GC过后这个值是不会变化的,因此内存调优的时候要更多地使用JDK提供的内存查看工具,比如JConsole和Java VisualVM。对JVM内存的系统级的调优主要的目的是减少GC的频率和Full GC的次数,过多的GC和Full GC是会占用很多的系统资源...
2015-09-23 10:20:50
96
原创 博客精选
--------------------------Spring、数据结构、设计架构、笔试等等----------------------------------------------1、http://uule.iteye.com/blog/2094609
2015-09-18 10:28:54
129
原创 Dubbo实现的源码分析
------invoker解释----------------------------------提供者端的invoker封装了服务实现类、URL、Type,状态均是只读,线程安全,是Dubbo中核心模型,Dubbo中的是实体域,其他所有模型都向它靠拢或转化成它,是一个可执行体,通过发起invoke来具体调用服务类,它可能是个本地实现类,也可能是个远程实现类,也可能是个集群实现invoke...
2015-09-17 14:51:20
121
原创 远程通信(RPC,Webservice,RMI,JMS、EJB、JNDI的区别)对比
RPC(Remote Procedure Call Protocol) RPC使用C/S方式,采用http协议,发送请求到服务器,等待服务器返回结果。这个请求包括一个参数集和一个文本集,通常形成“classname.methodname”形式。优点是跨语言跨平台,C端、S端有更大的独立性,缺点是不支持对象,不支持异步调用,无法在编译器检查错误,只能在运行期检查。 Web...
2015-09-17 14:33:35
166
原创 Dubbo框架应用之(三)--Zookeeper注册中心、管理控制台的安装及讲解
我是在linux下使用dubbo-2.3.3以上版本的zookeeper注册中心客户端。Zookeeper是Apache Hadoop的子项目,强度相对较好,建议生产环境使用该注册中心。Dubbo未对Zookeeper服务器端做任何侵入修改,只需安装原生的Zookeeper服务器即可,所有注册中心逻辑适配都在调用Zookeeper客户端时完成。Zooleeper安装 下载解压...
2015-09-17 14:30:09
158
原创 Dubbo框架应用之(二)--服务治理
Dubbo服务治理全貌图 当我们现有ITOO平台系统的业务随着用户的逐渐增大,设计的业务越来越广,系统会异常的复杂,在大规模服务之前,我们可以采用的是RMI或Hessian等工具,暴露和引用远程服务,通过配置URL地址和JNDI地址进行调用,使用Apache httpd复杂均衡插件或F5服务器进行负载均衡 存在以下问题和如何解决呢? ...
2015-09-17 14:29:33
112
原创 Junit测试
package com.hyxt;import com.hyxt.cash.core.repository.ShopsInfoRepository;import com.hyxt.cash.core.repository.ShopsInfoTempRepository;import com.hyxt.cash.core.repository.ShopsLoginRepository;imp...
2015-09-17 14:12:13
111
原创 远程通信(RPC,Webservice,RMI,JMS、EJB、JNDI的区别)对比
RPC(Remote Procedure Call Protocol) RPC使用C/S方式,采用http协议,发送请求到服务器,等待服务器返回结果。这个请求包括一个参数集和一个文本集,通常形成“classname.methodname”形式。优点是跨语言跨平台,C端、S端有更大的独立性,缺点是不支持对象,不支持异步调用,无法在编译器检查错误,只能在运行期检查。 Web...
2015-09-11 09:22:29
168
原创 Dubbo框架应用之(四)--Dubbo基于Zookeeper实现分布式实例
入门实例解析第一:provider-提供服务和相应的接口 创建DemoService接口[java] view plaincopyprint?<span style="font-size:18px;">package com.unj.dubbotest.provider; import java.util.List; ...
2015-09-11 09:21:07
192
原创 Dubbo框架应用之(一)--服务体系
Dubbo 是阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能的 RPC 实现服务的输出和输入功能,可以和 Spring框架无缝集成,也是一个非常全面的SOA基础框架。其是阿里巴巴SOA服务化治理方案的核心框架,每天为2,000+个服务提供3,000,000,000+次访问量支持,并被广泛应用于阿里巴巴集团的各成员站点. 以下的四个阶段可以用官方的Dubbo架构路线图来概...
2015-09-10 18:55:29
109
原创 Hibernate缓存机制
一、为什么要用hibernate缓存机制 Hibernate是一个持久层框架,经常访问物理数据库。为了降低应用程序对物理数据源访问的频次,从而提高应用程序的运行性能。缓存内的数据是对物理数据源中的数据的复制,应用程序在运行时从缓存读写数据,在特定的时刻或事件会同步缓存和物理数据源的数据。 二、Hibernate缓存原理是怎样的? 1.Hibernate一级缓存又称为“Session的缓存”。...
2015-09-06 11:49:30
93
原创 10个实用的但偏执的Java编程技术
1.将String字符串放在最前面 为了防止偶发性的NullPointerException 异常,我们通常将String放置在equals()函数的左边来实现字符串比较,如下代码: Java代码 // Bad if (variable.equals("literal")) { ... } // Good if ("literal".equals(var...
2015-09-01 17:50:49
159
原创 深入解析spring中用到的九种设计模式
spring中常用的设计模式达到九种,我们举例说明:第一种:简单工厂又叫做静态工厂方法(StaticFactory Method)模式,但不属于23种GOF设计模式之一。 简单工厂模式的实质是由一个工厂类根据传入的参数,动态决定应该创建哪一个产品类。 spring中的BeanFactory就是简单工厂模式的体现,根据传入一个唯一的标识来获得bean对象,但是否是在传入参数后创建还是传入参数前...
2015-08-26 10:10:24
94
原创 Spring加载自定义配置文件内容
一:bean的XML配置文件如下:<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:sche...
2015-08-20 16:01:23
243
原创 JVM学习笔记(三)------内存管理和垃圾回收
JVM内存组成结构JVM栈由堆、栈、本地方法栈、方法区等部分组成,结构图如下所示:1)堆所有通过new创建的对象的内存都在堆中分配,其大小可以通过-Xmx和-Xms来控制。堆被划分为新生代和旧生代,新生代又被进一步划分为Eden和Survivor区,最后Survivor由From Space和To Space组成,结构图如下所示:新生代。新建的对象都是用新生代分配内存...
2015-08-14 15:42:26
77
原创 JVM学习笔记(二)------------JAVA代码编译和执行的整个过程
Java代码编译是由Java源码编译器来完成,流程图如下所示:Java字节码的执行是由JVM执行引擎来完成,流程图如下所示: Java代码编译和执行的整个过程包含了以下三个重要的机制:Java源码编译机制类加载机制类执行机制Java源码编译机制Java 源码编译由以下三个过程组成:分析和输入到符号表注解处理语义分析和生成class文件...
2015-08-14 15:42:12
73
原创 JAVA优化代码策略(一)
在Java程序中,性能问题的大部分原因并不在于Java语言,而是在于程序本身。所以养成好的代码编写习惯非常重要。下面我们就来具体地分析一下: 1、尽量重用对象比如:String 对象的使用中,出现字符串连接情况时应用StringBuffer 代替。由于系统不仅要花时间生成对象,以后可能还需花时间对这些对象进行垃圾回收和处理。因此,生成过多的对象将会给程序的性能带来很大的影响。 ...
2015-08-14 15:41:48
114
原创 实现AOP------Spring AOP
AOP系列文章: Spring AOP:http://ray-yui.iteye.com/blog/2024759 CGLIB:http://ray-yui.iteye.com/blog/2026426 Javassist:http://ray-yui.iteye.com/blog/2029261 什么是AOP? AO...
2015-08-12 16:36:07
89
原创 Socket编程 (连接,发送消息) (Tcp、Udp)
Socket编程 (连接,发送消息) (Tcp、Udp) 本篇文章主要实现Socket在Tcp\Udp协议下相互通讯的方式。(服务器端与客户端的通讯) 1.基于Tcp协议的Socket通讯类似于B/S架构,面向连接,但不同的是服务器端可以向客户端主动推送消息。 使用Tcp协议通讯需要具备以下几个条件: (1).建立一个套接字(Socket) (2).绑定服务器...
2015-08-11 13:52:16
257
原创 设计模式之spring分析
-------------spring 后置处理器BeanFactoryPostProcessor-------------------------- 设计模式之spring分析 Spring已经在java的世界里横行很多年了,但是阅读起来并不那么容易。特别是接口概念的广泛使用,更增加了分析的难度,本文从设计模式的角度来对其进行分析,会忽略实现的具体细节。...
2015-08-11 11:19:49
119
原创 JAVA学习总结心得
1、单例模式中的单例懒汉式单例记得要加synchronized关键字,如果不加synchronized关键字,线程不安全。如果一个A执行到Java代码 singleton2 = new Singleton2(); singleton2 = new Singleton2();,但还没有获得对象(对象初始化是需要时间的),第二个线程B也在执行,执行到Java代码 singl...
2015-08-11 11:02:41
435
原创 Spring Boot,Spring Data JPA多数据源支持
1 配置文件 Properties代码 wisely.primary.datasource.driverClassName=oracle.jdbc.OracleDriver wisely.primary.datasource.url=jdbc\:oracle\:thin\:@192.168.1.103\:1521\:xe wisely.prima...
2015-08-06 14:52:07
103
原创 Spring Boot 负载均衡之外置session状态保存
在使用spring boot做负载均衡的时候,多个app之间的session要保持一致,这样负载到不同的app时候,在一个app登录之后,而打到另外一台服务器的时候,session丢失。 常规的解决方案都是使用:如apache使用mod_jk.conf。 在开发spring boot app的时候可以借助 spring session 和redis,用外置的redis来...
2015-08-06 14:51:25
234
原创 并发编程---------初解线程池
并发编程系列文章: 初解线程池:http://ray-yui.iteye.com/blog/2072463 详解线程池:http://ray-yui.iteye.com/blog/2075311 并发数据类型:http://ray-yui.iteye.com/blog/2080454 并发数据结构:http://ray-yui.iteye.com...
2015-08-06 11:56:42
97
原创 jvm学习笔记(一)------------基本结构
从Java平台的逻辑结构上来看,我们可以从下图来了解JVM:从上图能清晰看到Java平台包含的各个逻辑模块,也能了解到JDK与JRE的区别对于JVM自身的物理结构,我们可以从下图鸟瞰一下:对于JVM的学习,在我看来这么几个部分最重要:Java代码编译和执行的整个过程JVM内存管理及垃圾回收机制下面将这两个部分进行详细学习...
2015-08-06 09:56:15
73
原创 Tomcat配置域名和多域名映射同一IP(Windows环境)
Tomcat配置域名和多域名映射同一IP(Windows环境)时间 2015-05-27 11:02:00 BlogJava-专家区 原文 http://www.blogjava.net/jackiesmith/archive/2015/05/27/425325.html主题 Windows Tomcat 背景:在本地环境配置,不同域名访问对...
2015-08-04 16:45:11
474
原创 01点睛Spring4.1-依赖注入
01点睛Spring4.1-依赖注入博客分类:点睛Spring4.1 1.1 声明bean使用上例建立的testMavenSpring项目,将pom.xml文件中的 <spring-framework.version>3.2.3.RELEASE</spring-framework.version>修改为4.1.5.RELE...
2015-08-03 10:59:49
92
原创 00点睛Spring4.1-环境搭建
0.1 前置条件Spring 4.1提倡基于Java Config和注解的配置,所以本教程通篇不会采用任何和xml配置相关的内容;本教程默认读者有一定的Java Web及Spring使用基础;本教程采用点睛的形式展现Spring各个知识点,不会深入到各个知识点的方方面面,目的是为了初学者快速掌握Spring的各方面知识;Spring的官方开发的示例都使用maven和g...
2015-08-03 10:52:38
117
原创 Spring Boot使用redis做数据缓存
1 添加redis支持 在pom.xml中添加 Xml代码 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-redis</a...
2015-07-31 16:31:58
93
原创 Spring Boot使用自定义的properties
Spring Boot使用自定义的properties博客分类:spring-boot spring boot使用application.properties默认了很多配置。但需要自己添加一些配置的时候,我们应该怎么做呢。 若继续在application.properties中添加如: Properties代码 ...
2015-07-31 15:18:49
102
原创 PropUtil
/** * */package com.yulong.util;import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.UnsupportedEncodingException;import java.net.Malforme...
2015-07-24 11:29:49
568
原创 深入理解Java:注解(Annotation)自定义注解入门
注解的作用: 1、生成文档。这是最常见的,也是java 最早提供的注解。常用的有@see @param @return 等 2、跟踪代码依赖性,实现替代配置文件功能。比较常见的是spring 2.5 开始的基于注解配置。作用就是减少配置。现在的框架基本都使用了这种配置来减少配置文件的数量。以后java的程序开发,最多的也将实现注解配置,具有很...
2015-07-23 18:47:05
91
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人