摘要:
1、Dubbo协议(官方推荐协议) 优点: 采用NIO复用单一长连接,并使用线程池并发处理请求,减少握手和加大并发效率,性能较好(推荐使用) 缺点: 大文件上传时,可能出现问题(不使用Dubbo文件上传) 2、RMI(Remote Method Invocation)协议 优点: JDK自带的能力。 阅读全文
posted @ 2019-10-15 18:34
燕十三丶
阅读(1159)
评论(0)
推荐(0)
摘要:
Dubbo执行流程? 0 start: 启动Spring容器时,自动启动Dubbo的Provider 1、register: Dubbo的Provider在启动后自动会去注册中心注册内容.注册的内容包括: 1.1 Provider的 IP 1.2 Provider 的端口. 1.3 Provider 阅读全文
posted @ 2019-10-15 18:23
燕十三丶
阅读(1965)
评论(0)
推荐(0)
摘要:
Dubbo在安全机制方面是如何解决的 Dubbo通过Token令牌防止用户绕过注册中心直连,然后在注册中心上管理授权。Dubbo还提供服务黑白名单,来控制服务所允许的调用方。 Dubbo在安全机制方面是如何解决的 Dubbo通过Token令牌防止用户绕过注册中心直连,然后在注册中心上管理授权。Dub 阅读全文
posted @ 2019-10-15 18:22
燕十三丶
阅读(2565)
评论(0)
推荐(0)
摘要:
registry 注册中心. 是用于发布和订阅服务的一个平台.用于替代SOA结构体系框架中的ESB服务总线的。 发布 开发服务端代码完毕后, 将服务信息发布出去. 实现一个服务的公开. 订阅 客户端程序,从注册中心下载服务内容 这个过程是订阅. 订阅服务的时候, 会将发布的服务所有信息,一次性下载到 阅读全文
posted @ 2019-10-15 17:53
燕十三丶
阅读(1203)
评论(0)
推荐(0)
摘要:
drop直接删掉表 truncate删除表中数据,再插入时自增长id又从1开始 delete删除表中数据,可以加where字句。 (1) DELETE语句执行删除的过程是每次从表中删除一行,并且同时将该行的删除操作作为事务记录在日志中保存以便进行进行回滚操作。TRUNCATE TABLE 则一次性地 阅读全文
posted @ 2019-10-15 17:48
燕十三丶
阅读(402)
评论(0)
推荐(0)
摘要:
java8不是用红黑树来管理hashmap,而是在hash值相同的情况下(且重复数量大于8),用红黑树来管理数据。 红黑树相当于排序数据。可以自动的使用二分法进行定位。性能较高。 在ConcurrentHashMap中,就是把Map分成了N个Segment,put和get的时候,都是现根据key.h 阅读全文
posted @ 2019-10-15 16:45
燕十三丶
阅读(2634)
评论(0)
推荐(0)
摘要:
Java提供了只包含一个compareTo()方法的Comparable接口。这个方法可以个给两个对象排序。具体来说,它返回负数,0,正数来表明输入对象小于,等于,大于已经存在的对象。 Java提供了包含compare()和equals()两个方法的Comparator接口。compare()方法用 阅读全文
posted @ 2019-10-15 16:42
燕十三丶
阅读(727)
评论(0)
推荐(0)
摘要:
CSRF攻击防御方法 目前防御 CSRF 攻击主要有三种策略: 1、 验证 HTTP Referer 字段; 根据 HTTP 协议,在 HTTP 头中有一个字段叫 Referer,它记录了该 HTTP 请求的来源地址。对于每一个请求验证其 Referer 值 2、在请求地址中添加 token 并验证 阅读全文
posted @ 2019-10-15 16:36
燕十三丶
阅读(2372)
评论(0)
推荐(0)
摘要:
Collection是一个接口,它是Set、List等容器的父接口;Collections是个一个工具类,提供了一系列的静态方法来辅助容器操作,这些方法包括对容器的搜索、排序、线程安全化等等。 阅读全文
posted @ 2019-10-15 16:33
燕十三丶
阅读(276)
评论(0)
推荐(0)
摘要:
Class类是Java 反射机制的起源和入口,用于获取与类相关的各种信息,提供了获取类信息的相关方法。Class类继承自Object类 Class类是所有类的共同的图纸。每个类有自己的对象,好比图纸和实物的关系;每个类也可看做是一个对象,有共同的图纸Class,存放类的 结构信息,能够通过相应方法取 阅读全文
posted @ 2019-10-15 16:32
燕十三丶
阅读(1070)
评论(0)
推荐(0)
摘要:
CAS是英文单词Compare And Swap的缩写,翻译过来就是比较并替换。 CAS机制当中使用了3个基本操作数:内存地址V,旧的预期值A,要修改的新值B。 CAS的缺点: 1.CPU开销较大 在并发量比较高的情况下,如果许多线程反复尝试更新某一个变量,却又一直更新不成功,循环往复,会给CPU带 阅读全文
posted @ 2019-10-15 16:29
燕十三丶
阅读(1045)
评论(0)
推荐(0)
摘要:
有如下八个方面的不同:1.硬件环境不同:C/S 一般建立在专用的网络上, 小范围里的网络环境, 局域网之间再通过专门服务器提供连接和数据交换服务.B/S 建立在广域网之上的, 不必是专门的网络硬件环境,例与电话上网, 租用设备. 信息自己管理. 有比C/S 更强的适应范围, 一般只要有操作系统和浏览 阅读全文
posted @ 2019-10-15 16:26
燕十三丶
阅读(350)
评论(0)
推荐(0)
摘要:
BIO(Blocking I/O)同步阻塞I/O 这是最基本与简单的I/O操作方式,其根本特性是做完一件事再去做另一件事,一件事一定要等前一件事做完,这很符合程序员传统的顺序来开发思想,因此BIO模型程序开发起来较为简单,易于把握。 NIO (New I/O) 同步非阻塞I/O 关于NIO,国内有很 阅读全文
posted @ 2019-10-15 16:22
燕十三丶
阅读(129)
评论(0)
推荐(0)
摘要:
1.ArrayList和Vector的区别 第一句话:ArrayList和Vector底层都是数组实现的,初始容量都为10;在ArrayList的底层,是通过定义一个DEFAULT_CAPACITY的常量来指定的,而Vector的底层,是直接在空参构造中,通过写死了一个this(10)来指定的; 第 阅读全文
posted @ 2019-10-15 16:14
燕十三丶
阅读(121)
评论(0)
推荐(0)
摘要:
AOP 全称 Aspect Oriented Programming,面向切面编程,和 OOP 一样也是一种编程思想。AOP 出现的原因是为了解决 OOP 在处理 侵入性业务上的不足。 代理模式分为静态代理和动态代理两种。 静态代理:通常用于对原有业务逻辑的扩充。创建一个代理类实现和方法相同的方法, 阅读全文
posted @ 2019-10-15 16:11
燕十三丶
阅读(194)
评论(0)
推荐(0)
摘要:
匿名的内部类是没有名字的内部类。不能extends(继承) 其它类,但一个内部类可以作为一个接口,由另一个内部类实现 阅读全文
posted @ 2019-10-15 16:06
燕十三丶
阅读(240)
评论(0)
推荐(0)
摘要:
.说一下spring中Bean的作用域 singleton: Spring IoC容器中只会存在一个共享的Bean实例,无论有多少个Bean引用它,始终指向同一对象。Singleton作用域是Spring中的缺省作用域。 prototype: 每次通过Spring容器获取prototype定义的be 阅读全文
posted @ 2019-10-15 15:46
燕十三丶
阅读(701)
评论(0)
推荐(0)
摘要:
a) 选择合适的字段,比如邮箱字段可以设为char(6),尽量把字段设置为notnull,这样查询的时候数据库就不需要比较null值b) 使用关联查询( left join on)查询代替子查询c) 使用union联合查询手动创建临时表d) 开启事物,当数据库执行多条语句出现错误时,事物会回滚,可以 阅读全文
posted @ 2019-10-15 15:44
燕十三丶
阅读(182)
评论(0)
推荐(0)
摘要:
a) 事物具有原子性,一致性,持久性,隔离性b) 原子性:是指在一个事物中,要么全部执行成功,要么全部失败回滚。c) 一致性:事物执行之前和执行之后都处于一致性状态d) 持久性:事物多数据的操作是永久性e) 隔离性:当一个事物正在对数据进行操作时,另一个事物不可以对数据进行操作,也就是多个并发事物之 阅读全文
posted @ 2019-10-15 15:29
燕十三丶
阅读(143)
评论(0)
推荐(0)
摘要:
了解一点高并发性问题,比如一W人抢一张票时,如何保证票在没买走的情况下所有人都能看见这张票,显然是不能用同步机制,因为synchronize是锁同步一次只能一个人进行。这时候可以用到锁机制,采用乐观锁可以解决这个问题。乐观锁的简单意思是在不锁定表的情况下,利用业务的控制来解决并发问题,这样即保证数据 阅读全文
posted @ 2019-10-15 15:24
燕十三丶
阅读(108)
评论(0)
推荐(0)
摘要:
a) 遇到一个新类时,会进行类的加载,定位到class文件b) 对所有静态成员变量初始化,静态代码块也会执行,而且只在类加载的时候执行一次c) New 对象时,jvm会在堆中分配一个足够大的存储空间d) 存储空间清空,为所有的变量赋默认值,所有的对象引用赋值为nulle) 根据书写的位置给字段一些初 阅读全文
posted @ 2019-10-15 15:13
燕十三丶
阅读(117)
评论(0)
推荐(0)
摘要:
遇到一个新的类时,首先会到方法区去找class文件,如果没有找到就会去硬盘中找class文件,找到后会返回,将class文件加载到方法区中,在类加载的时候,静态成员变量会被分配到方法区的静态区域,非静态成员变量分配到非静态区域,然后开始给静态成员变量初始化,赋默认值,赋完默认值后,会根据静态成员变量 阅读全文
posted @ 2019-10-15 14:56
燕十三丶
阅读(115)
评论(0)
推荐(0)
摘要:
a) 内存优化:主要是对Tomcat启动参数进行优化,我们可以在Tomcat启动脚本中修改它的最大内存数等等。b) 线程数优化:Tomcat的并发连接参数,主要在Tomcat配置文件中server.xml中配置,比如修改最小空闲连接线程数,用于提高系统处理性能等等。c) 优化缓存:打开压缩功能,修改 阅读全文
posted @ 2019-10-15 14:47
燕十三丶
阅读(394)
评论(0)
推荐(0)
摘要:
a) 单例模式:单例模式核心只需要new一个实例对象的模式,比如数据库连接,在线人数等,一些网站上看到的在线人数统计就是通过单例模式实现的,把一个计时器存放在数据库或者内存中,当有人登陆的时候取出来加一再放回去,有人退出登陆的时候取出来减一再放回去,但是当有两个人同时登陆的时候,会同时取出计数器,同 阅读全文
posted @ 2019-10-15 14:44
燕十三丶
阅读(439)
评论(0)
推荐(0)
摘要:
a)一个进程是一个独立的运行环境,可以看做是一个程序,而线程可以看做是进程的一个任务,比如QQ是一个进程,而一个QQ窗口是一个线程。b)在多线程程序中,多线程并发可以提高程序的效率,cpu不会因为某个线程等待资源而进入空闲状态,它会把资源让给其他的线程。c)用户线程就是我们开发程序是创建的线程,而守 阅读全文
posted @ 2019-10-15 14:25
燕十三丶
阅读(126)
评论(0)
推荐(0)
摘要:
a) 父类静态代码块b) 子类静态代码块c) 父类构造方法d) 子类构造方法e) 子类普通方法f) 重写父类的方法,则打印重写后的方法 阅读全文
posted @ 2019-10-15 14:08
燕十三丶
阅读(466)
评论(0)
推荐(0)
摘要:
都是实现list接口的列表,arraylist是基于数组的数据结构,linkedlist是基于链表的数据结构,当获取特定元素时,ArrayList效率比较快,它通过数组下标即可获取,而linkedlist则需要移动指针。当存储元素与删除元素时linkedlist效率较快,只需要将指针移动指定位置增加 阅读全文
posted @ 2019-10-15 13:54
燕十三丶
阅读(150)
评论(0)
推荐(0)
摘要:
springMVC是由dispatchservlet为核心的分层控制框架。首先客户端发出一个请求web服务器解析请求url并去匹配dispatchservlet的映射url,如果匹配上就将这个请求放入到dispatchservlet,dispatchservlet根据mapping映射配置去寻找相对 阅读全文
posted @ 2019-10-15 11:32
燕十三丶
阅读(152)
评论(0)
推荐(0)
摘要:
客户端发出http请求,web服务器将请求转发到servlet容器,servlet容器解析url并根据web.xml找到相对应的servlet,并将request、response对象传递给找到的servlet,servlet根据request就可以知道是谁发出的请求,请求信息及其他信息,当serv 阅读全文
posted @ 2019-10-15 11:23
燕十三丶
阅读(187)
评论(0)
推荐(0)
摘要:
Hibernate的核心思想是ROM对象关系映射机制。它是将表与表之间的操作映射成对象与对象之间的操作。也就是从数据库中提取的信息会自动按照你设置的映射要求封装成特定的对象。所以hibernate就是通过将数据表实体类的映射,使得对对象的修改对应数据行的修改 阅读全文
posted @ 2019-10-15 11:20
燕十三丶
阅读(241)
评论(1)
推荐(0)
摘要:
a) IOC:Spring是开源框架,使用框架可以使我们减少工作量,提高工作效率并且它是分层结构,即相对应的层处理对应的业务逻辑,减少代码的耦合度。而spring的核心是IOC控制反转和AOP面向切面编程。IOC控制反转主要强调的是程序之间的关系是由容器控制的,容器控制对象,控制了对外部资源的获取。 阅读全文
posted @ 2019-10-15 11:00
燕十三丶
阅读(265)
评论(2)
推荐(1)
摘要:
经常会用到以下四种算法:随机(random)、轮训(round-robin)、一致哈希(consistent-hash)和主备(master-slave)。 阅读全文
posted @ 2019-10-15 10:46
燕十三丶
阅读(228)
评论(0)
推荐(1)
摘要:
本质上来说,分布式事务就是为了保证不同数据库的数据一致性。 事务的ACID特性 原子性 一致性 隔离性 持久性 消息事务+最终一致性 CC提供了一个编程框架,将整个业务逻辑分为三块:Try、Confirm和Cancel三个操作。以在线下单为例,Try阶段会去扣库存,Confirm阶段则是去更新订单状 阅读全文
posted @ 2019-10-15 10:44
燕十三丶
阅读(429)
评论(0)
推荐(0)
摘要:
dubbo在调用服务不成功时,默认会重试2次。 Dubbo的路由机制,会把超时的请求路由到其他机器上,而不是本机尝试,所以 dubbo的重试机器也能一定程度的保证服务的质量。 但是如果不合理的配置重试次数,当失败时会进行重试多次,这样在某个时间点出现性能问题,调用方再连续重复调用, 系统请求变为正常 阅读全文
posted @ 2019-10-15 10:40
燕十三丶
阅读(405)
评论(0)
推荐(0)
摘要:
dubbo在调用服务不成功时,默认会重试2次。 Dubbo的路由机制,会把超时的请求路由到其他机器上,而不是本机尝试,所以 dubbo的重试机器也能一定程度的保证服务的质量。 但是如果不合理的配置重试次数,当失败时会进行重试多次,这样在某个时间点出现性能问题,调用方再连续重复调用, 系统请求变为正常 阅读全文
posted @ 2019-10-15 10:38
燕十三丶
阅读(415)
评论(0)
推荐(0)
摘要:
dubbo启动时默认有重试机制和超时机制。 超时机制的规则是如果在一定的时间内,provider没有返回,则认为本次调用失败, 重试机制在出现调用失败时,会再次调用。如果在配置的调用次数内都失败,则认为此次请求异常,抛出异常。 阅读全文
posted @ 2019-10-15 10:28
燕十三丶
阅读(2283)
评论(0)
推荐(0)
摘要:
为了解决消息丢失问题,我们引入了一些重发机制,但也带来的另外一个问题:消息重复,我们来看下都有哪些情况会导致消息重复: 消息发送超时,处于不确定状态,导致重试发送消息,有可能之前的消息已经发送成功,会出现消息重复的情况。解决的思路是,每个消息生成一个消息id,如果发送的消息Broker已经存在了,则 阅读全文
posted @ 2019-10-15 10:23
燕十三丶
阅读(1876)
评论(0)
推荐(0)
摘要:
幂等的意思是同一个操作,重复执行多次,跟执行一次结果一致。消息幂等,即消息发送操作对于消息消费来说是幂等。也就是相同的消息发送多次,跟发送一次是一样的,这个消息只会被消费一次。 阅读全文
posted @ 2019-10-15 10:20
燕十三丶
阅读(744)
评论(0)
推荐(0)
摘要:
首先先获取zk的配置信息,然后获取需要暴露的url,然后调用registry.register方法将url注册到zookeeper上去 阅读全文
posted @ 2019-10-15 10:18
燕十三丶
阅读(1395)
评论(0)
推荐(0)
摘要:
–高性能和透明化的RPC远程服务调用方案 –SOA服务治理方案 Dubbo缺省协议采用单一长连接和NIO异步通讯, 适合于小数据量大并发的服务调用,以及服务消费者机器数远大于服务提供者机器数的情况 阅读全文
posted @ 2019-10-15 10:10
燕十三丶
阅读(2157)
评论(0)
推荐(0)
摘要:
redis 内存数据集大小上升到一定大小的时候,就会施行数据淘汰策略。redis 提供 6种数据淘汰策略: voltile-lru:从已设置过期时间的数据集(server.db[i].expires)中挑选最近最少使用的数据淘汰 volatile-ttl:从已设置过期时间的数据集(server.db 阅读全文
posted @ 2019-10-15 10:09
燕十三丶
阅读(485)
评论(0)
推荐(0)
摘要:
当你调用 start() 方法时,它会新建一个线程然后执行 run() 方法中的代码。如果直接调用 run() 方法,并不会创建新线程,方法中的代码会在当前调用者的线程中执行 阅读全文
posted @ 2019-10-15 09:54
燕十三丶
阅读(497)
评论(0)
推荐(0)
摘要:
Thread 类的 join 方法实现 阅读全文
posted @ 2019-10-15 09:35
燕十三丶
阅读(487)
评论(0)
推荐(0)
摘要:
Set里的元素是不能重复的,那么用iterator()方法来区分重复与否。 equals()是判读两个Set是否相等。 equals()和==方法决定引用值是否指向同一对象equals()在类中被覆盖,为的是当两个分离的对象的内容和类型相配的话,返回真值。 阅读全文
posted @ 2019-10-15 09:23
燕十三丶
阅读(538)
评论(0)
推荐(0)

浙公网安备 33010602011771号