自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 微服务负载均衡 —— ribbon

负载均衡的基本概念 负载均衡是系统高可用、缓解网络流量和处理能力扩容的重要手段,广义的负载均衡指的是服务端负载均衡,如硬件负载均衡(F5)和软件负载均衡(Nginx)。负载均衡设备会维护一份可用的服务器的信息,当客户端请求到达负载均衡设备之后,设备会根据一定的负载均衡算法从可用的服务器列表中取出一台可用的服务器,然后将请求转发到该服务器。对应的负载均衡架构如下图所示:负...

2019-02-05 20:19:00 295

转载 微服务注册与发现 —— eureka

基础概念  在微服务系统中,服务的注册和发现是第一步,常用的有:    Eureka:https://github.com/Netflix/eureka    Zookeeper:https://zookeeper.apache.org/    Consul:https://www.consul.io/  等服务注册与发现中间件,本文以Eureka为例,讲解...

2019-01-06 16:15:00 190

转载 shiro

1. shiro概述  Apache Shiro是一个强大且易用的Java安全框架,执行身份验证、授权、密码和会话管理。使用Shiro的易于理解的API,您可以快速、轻松地获得任何应用程序,从最小的移动应用程序到最大的网络和企业应用程序。  shiro包含三个核心组件:Subject, SecurityManager 和 Realms。...

2018-12-16 20:39:00 137

转载 unix网络编程——I/O多路复用之epoll

1. 基本概念  当程序进行IO时,如果数据尚未准备好,那么IO将处于阻塞状态。当某个进程有多个打开的文件,比如socket,那么其后的所有准备好读写的文件将受到阻塞的影响而不能操作。不借助线程,单一进程无法在同一时间服务多个文件描述符。非阻挡式IO可以作为一个解决方案,但是效率并不高。首先进程需要不断发IO请求,其次,如果程序可以休眠,让出CPU将提高效率。多任务式IO是在其中任何...

2018-08-23 23:15:00 330

转载 unix网络编程——TCP套接字编程

  TCP客户端和服务端所需的基本套接字。服务器先启动,之后的某个时刻客户端启动并试图连接到服务器。之后客户端向服务器发送请求,服务器处理请求,并给客户端一个响应。该过程一直持续下去,直到客户端关闭,给服务端发送EOF(文件结束),服务器也关闭连接的服务器端,然后结束运行或者等待新的客户发起连接请求。如图1所示:图1 TCP网络套接字示意图  在图中涉及到不同的函数,接下...

2018-08-18 12:10:00 111

转载 java异常处理及自定义异常的使用

1. 异常介绍 异常机制可以提高程序的健壮性和容错性。  Throwable:Throwable是java语言所有错误或异常的超类。 有两个子类Error和Exception。1.1编译期异常  编译期异常必须处理,否则编译无法通过。AclNotFoundException, ActivationException, AlreadyBoundExc...

2018-06-17 17:47:00 113

转载 磁盘调度算法寻道问题

磁盘调度算法磁盘调度算法比较常见的有以下四种:先来先服务算法(FCFS)最短寻道时间优先算法(SSTF)扫描算法(SCAN)循环扫描算法(CSCAN)先来先服务算法(FCFS,First Come First Served)  根据进程请求访问磁盘的先后次序进行调度。此算法的优点是公平、简单,且每个进程的请求都能依次地得到处理,不会出现...

2018-03-31 21:43:00 1284

转载 关于mybatis的思考(3)——ResultMaps的使用

ResultMap元素在mybatis中非常重要,目的是告诉mybatis将从结果集中取出的数据转换为开发者需要的对象。 UserMapping.xml <!-- selectAll操作 resultType="map"表示返回的是一个map对象 --> <select id="selectAll" resul...

2018-02-26 00:17:00 104

转载 关于mybatis的思考(2)——mybatis映射文件的深入理解

1.配置文件 mybatis进行持久化操作是以SqlSessionFactory对象为基础的,这个对象是整个数据库映射关系经过编译后的内存镜像。InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml");sqlSessionFactory = new Sq...

2018-02-25 00:43:00 105

转载 关于mybatis的思考(1)——mybatis的使用实例

架构分析 MyBatis 是支持普通 SQL 查询,存储过程和高级映射的优秀持久层框架。 MyBatis 消除了几乎所有的 JDBC 代码和参数的手工设置以及对结果集的检索。MyBatis 可以使用简单的XML 或注解用于配置和原始映射,将接口和 Java 的 POJO( Plain Old Java Objects,普通的Java 对象)映射成数据库中的记...

2018-02-24 16:58:00 162

转载 dubbo源码分析1——负载均衡

  dubbo中涉及到的负载均衡算法只要有四种:RandomLoadBalance(随机均衡算法)、RoundRobinLoadBalance(权重轮循均衡算法)、LeastActionLoadBalance(最少活跃调用数均衡算法)、ConsistentHashLoadBalance(一致性Hash均衡算法)。  在dubbo中,首先定义了一个LoadBalance的接...

2018-01-04 00:24:00 91

转载 webService —— soap

package soupTest;import javax.jws.WebMethod;import javax.jws.WebService;import javax.xml.ws.Endpoint;@WebServicepublic class Main { public static void main(String[] args) {...

2017-12-17 01:02:00 69

转载 MD5算法

简介  MD5消息摘要算法(MD5 Message-Digest Algorithm),是一种被广泛使用的加密算法。该算法讲任意的输入处理之后,输出一个128位的数据指纹,理论上这个信息指纹是独一无二的,因此我们可以通过验证文件传输前后的MD5值是否一致来验证文件信息是否被篡改。生成MD5的过程  MD5是以512位分组来处理输入的信息,每一个分组被划分为16个32...

2017-11-19 21:35:00 124

转载 dfs

一、DFS定义    深度优先搜索算法(Depth-First-Search,简称DFS)是一种常用于遍历或搜索树或图的算法。从初始访问结点出发,初始访问结点可能有多个邻接结点,深度优先遍历的策略就是首先访问第一个邻接结点,然后再以这个被访问的邻接结点作为初始结点,访问它的第一个邻接结点,尽可能深的搜索树的分支。当节点所在边都己被探寻过,搜索将回溯到发现节点的那条边的起始节点。...

2017-10-18 15:06:00 773

转载 spring框架(3)— spring集合类的注入

1.Car.javapackage com.eniac.beans;public class Car { private String type; private String factory; private double price; public Car(){ } public Car(String type, String fa...

2017-06-01 20:53:00 75

转载 android入门 — Service

  Service完全在后台运行,没有用户界面。使用的时候先创建Service子类,然后在AndroidManifest.xml中进行注册,同时可以通过<intent-filter.../>进行限制启动的Intent。  Service中重要的方法有:  1.IBinder onBind(Intent intent):这是Service子类必须实现的方法,这个方法...

2017-05-23 18:35:00 90

转载 android入门 — 多线程(一)

  android中的一些耗时操作,例如网络请求,如果不能及时响应,就会导致主线程被阻塞,出现ANR,非常影响用户体验,所以一些耗时的操作,我们会想办法放在子线程中去完成。  android的UI操作并不是线程安全的,所以多个线程并发操作UI组件的时候,则可能导致线程安全问题。为了解决这个问题,android只允许UI线程修改UI组件。  public class M...

2017-05-22 12:15:00 71

转载 android入门 — Activity启动模式

1.standard模式  standard模式是系统的默认启动方式,每次激活Activity都会创建Activity,并放在任务栈中。  系统不会在乎活动是否已经存在于返回栈中,每次启动都会创建该活动的一个新的实例。public class MainActivity extends AppCompatActivity{ EditText editTex...

2017-05-19 20:37:00 89

转载 android入门 — Activity生命周期

    Activity总共有7个回调方法,代表着不同的生命周期的环节。1.onCreate()  在活动第一次被创建的时候调用。在这个方法中需要完成活动的初始化操作,比如说加载布局、绑定事件等。2.onStart()  这个方法在活动由不可见变为可见的时候调用。3.onResume()  这个方法在活动准备好与用户进行交互的时候调用,此时的活动一定位于返...

2017-05-18 21:21:00 76

转载 android入门 — ProgressDialog/DatePickerDialog/TimePickerDialog

  这三个Dialog都是AlertDialog的子类。①DatePickerDialog  1.创建DatePickerDialog的实例;  2.通过Calendar类获得系统时间;  3.通过DatePickDialog.OnDateSetListener()来绑定监听器;  4.通过onDateSet(DatePicker datePicker, i...

2017-05-17 18:51:00 87

转载 android入门 — PopupWindow

第一步:自定义xml文件第二步:获取LayoutInflater对象第三步:调用inflate()方法获取View对象第四步:创建PopupWindow对象第五步:调用PopupWindow的showAsDropDown或者showAsLocation方法显示对话框activity.xml<?xml version="1.0" encoding...

2017-05-16 17:06:00 64

转载 android入门 — AlertDialog对话框

  常见的对话框主要分为消息提示对话框、确认对话框、列表对话框、单选对话框、多选对话框和自定义对话框。  对话框可以阻碍当前的UI线程,常用于退出确认等方面。  在这里主要的步骤可以总结为:  1.创建AlertDialog.Builder对象;  2.调用setTitle()或setCustomTitle()方法设置标题;  3.调用setIcon()设置图标;...

2017-05-15 18:26:00 75

转载 android入门 — ListView点击事件

listView中提供了两种点击事件的处理方法,分别是OnItemClick和OnItemLongClick。OnItemClick提供的是点击操作的处理,OnItemLongClick提供的是长按操作的处理。  第一种的单次点击之后,默认跳转到了另外一个Activity,用于显示当前这一行的内容信息。public class DetailedActivity ext...

2017-05-10 11:58:00 222

转载 android入门 — ListView的优化

  ListView的运行效率是比较低的,因为在getView()中每次都会将整个布局重新加载一遍,当ListView快速滚动的时候就会成为性能瓶颈。  调用View中的findViewById()方法获取一次控件的实例,这也是一个很耗时的操作,可以进行优化。方法一:convertView参数  这个参数用于将之前加载好的布局进行缓存,以便之后进行重用。 @...

2017-05-09 15:49:00 69

转载 scrapy(1)——scrapy介绍

  Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架。 可以应用在包括数据挖掘,信息处理或存储历史数据等一系列的程序中。所谓网络爬虫,就是一个在网上到处或定向抓取数据的程序,当然,这种说法不够专业,更专业的描述就是,抓取特定网站网页的HTML数据。抓取网页的一般方法是,定义一个入口页面,然后一般一个页面会有其他页面的URL,于是从当前页面获取到这些URL加入到爬虫...

2017-05-07 10:36:00 76

转载 java — 重载和覆盖

重载(overload):对于类的方法,方法名相同,参数列表不同的方法之间构成了重载关系。   参数列表:参数的类型、参数的个数、参数的顺序。  子类从父类继承来的方法也可以发生重载。  如果多个方法有相同的名字、不同的参数,便产生了重载。编译器必须挑选出具体执行哪个方法,通过各个方法给出的参数类型与特定的方法调用所使用的值类型进行匹配来挑选出相应的方法。  如...

2017-04-26 18:53:00 68

转载 java — 静态绑定和动态绑定

  绑定:一个方法的调用与方法所在的类关联起来。java中的绑定分为静态绑定和动态绑定,又被称作前期绑定和后期绑定。  静态绑定:(final、static、private)在程序执行前已经被绑定,也就是说在编译过程中就已经知道这个方法是哪个类的方法,此时由编译器获取其他连接程序实现。  动态绑定:在运行根据具体对象的类型进行绑定。1.静态绑定  private...

2017-04-26 12:43:00 337

转载 值传递和引用传递

  java应用程序有且只有一种参数传递机制,即按值传递。  按值传递:当将一个参数传递给一个函数的时候,函数接收的是原始值的一个副本,因此,如果函数修改了该参数,仅仅修改的是参数的副本,而原始值保持不变。按引用传递一位置当一个参数传递给一个函数的时候,函数接收的是原始值的内存地址,而不是值的副本。因此,如果函数修改了该参数,调用代码中的原始值也随之改变。  1.对象是按照引...

2017-04-23 14:57:00 50

转载 static关键字

  对于static关键字的用法,主要分为三个部分,分别是静态变量、静态方法和静态类。1.静态变量  静态变量(静态域)不是类的某个具体对象所有,而是类的所有对象共有的,静态变量既能够被对象调用,也可以用类来调用。package StaticTest_4_3;public class StaticTest{ public static int ...

2017-04-22 15:42:00 48

转载 final关键字

final可以修饰非抽象类、非抽象类成员方法和变量。(1)final类:不能被继承,没有子类,final类中的方法默认是final的;(2)final方法:不能被子类的方法覆盖,但可以被继承;(3)final成员变量:表示常量,只能被赋值一次,赋值后值不再改变;(4)final不能用于修饰构造方法。(父类的private成员方法是不能被子类方法覆盖的,因此priv...

2017-04-22 15:37:00 66

转载 memcached

  许多Web应用都将数据保存到RDBMS中,应用服务器从中读取数据并在浏览器中显示。但随着数据量的增大、访问的集中,就会出现RDBMS的负担加重、数据库响应恶化、网站显示延迟等重大影响。memcached通过缓存数据库查询结果,减少数据库访问次数,以提高动态Web应用的速度、提高可扩展性。    第一次访问:从关系型数据库(RDBMS)中取得数据保存到memcached中;...

2017-04-14 16:08:00 128

转载 top K 问题

    在海量数据中找出出现频率最高的前K个数,或者从海量数据中找出最大的前K个数,这类问题被称为top K问题,例如搜索引擎中,同济最热门的10个查询词,在歌曲库中统计下载量频率最高的前10个数据。  针对这类问题,通常比较好的方案是分治+Trie树/hash+小顶堆,即将数据集按照hash方法分解成多个小数据集,然后使用Trie树或者hash统计每个小数据集中的query...

2017-04-11 15:01:00 97

转载 作业调度算法

  在多道程序环境中,主存中有着多个进程,其数目往往多于处理机数量。这就要求系统能按照某种算法动态地把处理机分配给就绪队列中的一个进程,使之执行,分配处理机的任务是由处理机调度程序完成的。处理机调度  在多道程序系统中,一个作业被提交后必须经过处理机调度后,方能获得处理机执行。对于批量型作业而言,通常需要经历作业调度(也称为高级调度)和进程调度(也称为低级调度)两...

2017-04-11 10:43:00 2680

转载 页面置换算法

    在进程运行过程中,若其所要访问的页面不在内存而需把它们调入内存,但内存中已无空闲空间时,为了保证该进程能正常运行,系统必须从内存中调出一页程序或数据到磁盘的对换区中。但应将哪个页面调出,需根据一定的算法来实现。  常见的页面置换算法有:1. 最佳置换算法(Optimal)  从内存中移除永远都不再需要的页面或者说是未来最长时间内不再被访问的页面,如果...

2017-04-10 20:44:00 109

转载 海量数据处理

  针对海量数据的处理,可以使用的方法非常多,常见的方法有hash法、Bit-map法、Bloom filter法、数据库优化法、倒排索引法、外排序法、Trie树、堆、双层桶法以及MapReduce法。1、hash法  hash法也成为散列法,它是一种映射关系,即给定一个元素,关键字是key,按照一个确定的散列函数计算出hash(key),把hash(key)作为关键字...

2017-04-09 18:51:00 73

转载 数据库索引

  在数据量非常大的情况下,在数据库中加入索引能够提升数据库查找的性能,常见的mysql索引分为以下几类:  ①普通索引  可以直接创建索引:CREATEINDEXindexNameONtable(column(length))   如果是CHAR,VARCHAR类型,length可以小于字段实际长度;如果是BLOB和TEXT类型,必须指定 length...

2017-04-09 11:02:00 65

转载 数据库索引(结合B-树和B+树)

数据库索引,是数据库管理系统中一个排序的数据结构以协助快速查询、更新数据库表中数据。索引的实现通常使用B树及其变种B+树。在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据,这样就可以在这些数据结构上实现高级查找算法。这种数据结构,就是索引。为表设置索引要付出代价的:一是增加了数据库的存储空间,二是在插入和修改数据时要花费较...

2017-04-08 14:06:00 161

转载 B树

  B树是为磁盘或其他存取的辅助存储设备而设计的一种平衡搜索树。B树类似于红黑树,但是在降低磁盘I/O方面表现很好。  B树和红黑树不同之处在于B树的节点可以有很多孩子,从数个到数千个。B树的严格高度可能比一棵红黑树的高度要小很多,因此可以使用B数在O(lgn)内完成一些动态集合的操作。  如果B树的一个内部节点x包含x.n个关键字,那么节点x就要x.n+1个孩子。节点x中的...

2017-04-07 18:22:00 72

转载 二叉查找树

1、二叉搜索树(B树)  一棵二叉搜索树(BST)是以一棵二叉树来组织的,可以用链表数据结构来表示,其中,每一个结点就是一个对象,一般地,包含数据内容key和指向孩子(也可能是父母)的指针属性。如果某个孩子结点不存在,其指针属性值为空(NIL)。二叉搜索树中的关键字key的存储方式总是满足二叉搜索树的性质:  设x是二叉搜索树中的一个结点。如果y是x左子树中的一个结点,那么会有y...

2017-04-07 16:07:00 70

转载 mysql入门 — (2)

创建表  CREATE TABLE 表名称 [IF NOT EXISTS](            字段名1 列类型[属性] [索引]            字段名2 列类型[属性][索引]            ...            字段名n 列类型[属性][索引]                         )[表类型][表字符集];  ...

2017-03-28 13:46:00 50

空空如也

空空如也

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

TA关注的人

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