- 博客(72)
- 收藏
- 关注
原创 @RequestMapping、@RequestBody、@ResponseBody、@RequestParam注解用法
RequestMapping是一个用来处理请求地址映射的注解,可用于类或方法上。用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径。一下案例是RequestMapping注释常用的两种用法。 //处在类的上面,类中所有响应请求的方法都已该(${adminPath}/smart/educlassroom)路径为父路劲@RequestMapping(value = "${adminPath}
2017-05-05 09:56:28 2387
原创 原码、反码、补码
计算机中数值运算都是用数的补码进行的,正数的原码、反码、补码都是其本身,而负数的补码比较复杂,为此特设计一案例进行说明计算器中-3+5如何进行:如何求取-3的补码:设系统为8位-3的原码为:1000 0011 第一位1表示符号位-3的反码为:1111 1100 符号位不变,其他1变0,0变1-3的补码为: 1111 1101 反码加1...
2019-03-22 13:47:39 550
原创 ActiveMQ--Broker简介
Broker是实现ActiveMQ功能的一个简单实例。 在程序中创建一个Broker,然后运行,就可以传递消息。运行流程如下:(1)启动broker(2)启动消息提供者(3)消息消费者订阅消息在本地程序中创建一个Broker,此时的访问地址为:tcp://localhost:61616 public class DefineBrokerServer { publ...
2019-03-07 15:01:03 5801
原创 ActiveMQ--(pub/sub)模型
发布订阅模式是一对多的方式。就是消息提供者提供一个Topic,可以由多个消息消费者订阅。下图是发布订阅模式的示意图: 订阅模型可以分为非持久订阅和持久订阅。当所有的消息必须接受的时候,则需要用到持久订阅,反之,则用非持久订阅非持久订阅: 消费者只能消费提供者在订阅操作之后时提供的消息。也就是说消费者启动后,提供者再提供消息,消费者能接受此时发送的消...
2019-03-07 11:50:03 553
原创 ActiveMQ--消息传递点对点方式及其可靠性机制
JMS消息之后被确认后,才会认为是被成功消费,消费者的消费包含三个阶段:客户端接受消息、客户端处理消息、消息被确认消息传递域: 点对点:1.每个消息只能有一个消息者2.消息的生产者和消费者之间没有时间上的相关性。生产者在发送消息时,无论消费者是否处在运行状态,都可以提取消息。事务性会话: 消息提供方、消息消费方 createSession()方法中第...
2019-03-06 17:27:54 386
原创 消息的发送策略
持久化消息默认情况下,生产者发送的消息是持久化的,消息发送到broker以后,producer会等待broker对这条消息的处理情况的反馈。可以设置消息发送端发送持久化消息的异步方式。 非持久化消息...
2019-02-25 09:37:50 502
原创 ActiveMQ网络连接
针对海量消息,要求ActiveMQ满足横向扩展性和系统的高可用性,ActiveMQ提供了网络连接模式的集群功能,简单来说,就是把多个不同的Broker实例连接在一起,作为一个整体对外提供服务,从而提高整体对外的消息服务能力。通过这种方式连接在一期的broker实例之间,可以共享队列和消费者列表,从而达到分布式队列的目的。NetworkConnector 主要用来配置broker...
2019-02-25 09:19:16 260
原创 ActiveMQ消息持久化存储机制
1.kahaDB默认的存储方式:消息持久化的位置:2.AMQ基于文件的存储方式 写入速度很快,容易恢复,文件大小是32M。 配置文件activemq.xml中进行配置:3.JDBC 基于数据库的存储ACTIVEMQ_ACKS:存储持久订阅的信息ACTIVEMQ_LOCK:锁表(用来做集群的时候,实现master选举的表)AC...
2019-02-25 09:18:26 406
原创 ActiveMQ支持的传输协议
client端和broker端的通讯协议:支持的协议:TCP、UDP、NIO、SSL、Http(s)、vmActiveMQ的配置文件activemq.xml中关于通讯协议的配置:
2019-02-25 09:17:27 146
原创 分布式事物--初步理解
数据库事物要满足几个要求:ACIDAtomic(原子性) 事物必须是原子的工作单元,就是事物中所有功能要么全部成功、要么全部失败Consistent(一致性)事物完成时,必须使所有数据都保持一致装状态:各种数据变化是一致的,动态平衡Isolation(隔离性)并发事物所做的修改必须和其他事物所做的修改是隔离的Duration(持久性)事物完成后,对系统的影响是永久性的Isola...
2019-02-21 16:12:29 167
原创 dubbo--配置服务的最佳实践
分包:1.服务接口、请求服务模型、异常信息都放在api里面,符合重发等价原则,共同重用原则2.api里面放入spring的应用配置,也可以放在模块的包目录下。com.gupao.vip.mic.order/**-reference.xml版本:1.每个接口都应该定义版本,为后续的兼容性提供前瞻性的考虑version(maven-snapshot)i2.建议使用两位版本号,因...
2019-02-17 21:22:12 341
原创 dubbo--负载均衡
dubbo通过注册中心实现负载均衡,一般是服务提供者进行集群,服务消费者请求消费时,通过一定算法进行寻找对应的接口地址。 本机上模拟两个服务注册到zookeeper上,实现集群。服务提供者1:端口号为20880<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.sp...
2019-02-16 11:35:15 541
原创 dubbo--服务只订阅或只注册
一、只订阅1.场景 为方便开发测试,经常会在线下共用一个所有服务可用的注册中心,如果一个正在开发中的服务提供注册,可能影响消费者不能正常运行。此时只需让正在开发的服务器只订阅(开发的服务可能依赖其他服务,获取其他服务),而不注册,通过直连测试正在开发的测试。2.配置<dubbo:registry address="10.20.153.10:9090" register=...
2019-02-14 14:07:57 384
原创 dubbo--主机绑定
在发布一个Dubbo服务的时候,会生成一个provider://192.168.19.56:20880,那么这个192.168.19.56是如何生成的呢?通过分析ServiceConfig.java的源码可以找到答案。可以发现,绑定主机的ip,是通过一层一层的判断,直到获取到合法的ip地址。第一步:从配置文件中获取host,检验host是否合理,如果合理,则直接返回,反之,...
2019-02-14 12:13:50 628
原创 dubbo--异步调用服务接口
我们知道,Dubbo缺省协议采用单一长连接,底层实现是Netty的NIO异步通讯机制,基于这种机制,Dubbo实现了以下几种调用方式。同步调用异步调用参数回调时间通知本文主要介绍客户端通过dubbo异步调用服务端接口。当服务端提供的服务耗时过长,客户端采用异步调用服务端接口,这样能有效利用客户端资源服务提供端:接口方法延迟3秒@Service(value =...
2019-02-14 11:38:18 2317
原创 dubbo--多协议使用
一个服务提供多个协议服务提供方:服务提供两个协议:dubbo、hessian<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSche...
2019-02-14 11:00:59 397
原创 dubbo配合zookeeper远程调用
一、 服务提供者:1.dubbo容器启动类import com.alibaba.dubbo.container.Main;public class App { public static void main( String[] args ) { Main.main(args); }}2.对外暴露的接口:public interf...
2019-02-13 22:47:18 562
原创 dubbo服务配置文件相关配置含义
启动服务检查如果提供方没有启动的时候,消费方会默认会去检测所依赖的服务提供方是否正常提供服务如果check为false,表示启动的时候不去检查,当服务出现循环依赖的时候,check设置为FALSEdubbo:reference 属性:check 默认值是truedubbo:consumer check=“false” 表示没有服务提供方会报错dubbo:registry c...
2019-02-13 16:40:34 180
原创 dubbo服务--点对点直连通信
dubbo直连通信是无注册中心的情况下,两进程之间的通信服务提供者:此进程有两个模块,一个模块是实现向外暴露的接口,一个模块是实现此接口的实现类:ideal中编制order-api模块,提供向外的接口public interface IOrderServices { DoOrderResponse doOrder(DoOrderRequest request);} ...
2019-02-13 09:37:50 1594
原创 zookeeper之master选举
考虑7*24小时向外提供服务系统,不能有单点故障,于是我们使用集群,采用的是Master+Slave.集群中有一台主机和多台备机,由主机向外提供服务备机监听主机状态,一旦主机宕机,备机必须迅速接管关机继续向外提供服务,在这个过程中,从备机中选出一台作为主机的过程,就是Master选举。选主的原理: zookeeper临时节点的特性:临时节点生成时,zookeeper服务都会给节点生成一个...
2019-01-31 17:26:08 142
原创 dubbo之功能理解
dubbo能解决什么问题?1.怎么去维护url通过注册中心去维护url2.F5硬件负载均衡器的单点压力比较大软负载均衡3.怎么去整理出服务之间的依赖关系自动去整理各个服务之间的依赖4.如果服务器的调用量越来越大,服务器容量问题怎么去评估,扩容的指标需要一个监控平台,可以监控调用量,响应时间Dubbo是什么?dubbo是一个分布式的服务框架,提供高性能的以及透...
2019-01-31 15:45:17 133
原创 JMS的初步理解
java消息服务(Java Message Service)是java平台中关于面向消息中间件的API,用于两个应用程序之间或者分布式系统中发送消息进行异步通信。JMS是一个与具体平台无关的API,绝大数的MOM(Message Oriented Middleware)(面向消息中间件)提供商都对JMS提供了支持什么是MOM: 面向消息的中间件,使用消息传送提供者来...
2019-01-31 10:32:54 139
原创 ActiveMQ的应用场景
ActiveMQ是Apache开源基金会研发的消息中间件,是完全支持JMS1.1和J2EE1.4规范的JMS provider实现ActiveMQ主要应用在分布式系统架构中,帮助构建高可用、高性能、可伸缩的企业级面向消息服务的系统消息队列-异步消息消息队列-应用解耦处理的性能提高了,关联不强的模块进行解耦 消息队列-流量消峰 ...
2019-01-30 17:15:07 436
原创 zookeeper之相关总结
zookeeper数据模型临时节点(有序) 持久化节点(有序)zookeeper是一个开源的分布式协调框架:数据发布订阅、负载均衡、集群、master选举原子性:要么同时成功、要么同时失败(分布式事物)单一视图:无论客户端链接到哪个服务器,所看到的模型都是一样的可靠性:一旦服务器端提交了一个事务并且获得了服务器端返回成功搞的标识,那么这个事务所引起的服务端的变更会一直保留实...
2019-01-28 17:04:49 123
原创 zookeeper之集群原理
zookeeper集群角色:leader follower observerleader是zookeeper集群的核心1.事物请求的唯一调度和处理者,保证集群事物处理的顺序性2.集群内各个服务器的调度者follower1.处理客户端非事物请求,以及转发事物请求(新增、修改、删除)给Leader服务器2.参与事物请求提议(proposal)的投票(客户端的一个事物请求...
2019-01-25 17:28:57 985
原创 zookeeper之权限设置
权限控制模式schema(授权对象):ip:192.168.1.1Digest:username passwordworld:开放式权限控制模式,数据节点的访问权限对所有用户开发super:超级用户,可以对zookeeper上的数据节点进行操作 ...
2019-01-24 16:24:41 822
原创 (一)spring源码分析
spring是什么?轻量级零配置编程、API使用简单面向Bean只需要编写非常普通的Bean松耦合充分利用aop思想万能胶与主流框架无缝集合设计模式将JaVA中经典的设计模式运用得淋漓尽致Spring则立志于全方面简化java开发,对此,他主要采取了4个关键策略:1.基于POJO的轻量级和最小侵入性编程2.通过依赖注入和面向接口松耦合3.基于...
2019-01-22 11:29:49 119
原创 Https协议
理解https协议的内涵,首先学习一些基础知识,了解各种加密算法的方案及其存在的缺陷,从而引出我们为什么采用https协议,及采用此协议的方案。基础知识:公钥密码体制分为三个部分,公钥、私钥、加密解密算法,它的加密解密过程如下:1.1公钥密码体制(public-key cryptography)加密:通过加密算法和公钥对内容(或者说明文)进行加密,得到密文。加密过程需要用到公钥。...
2018-11-12 10:21:09 527
原创 java序列化机制
什么是序列化和反序列化?把对象转化为字节序列的过程称之为对象的序列化,反之,称之为反序列化。为啥要序列化?一旦对象被序列化后,它的编码就可以从一台正在运行的虚拟机被传递到另一台虚拟机上,或者被存储到磁盘上,供以后反序列化时用。序列化技术为远程通信提供了标准的线路级对象表示法,也为JavaBeans组件结构提供了标准的持久化数据格式。如何实现?1.java本身的序列化机制:1...
2018-11-09 16:18:56 236
原创 网络协议:TCP/IP
TCP/IP(Transmission Control Protocol/Internet Protocol)是一种可靠的网络数据传输控制协议。定义了主机如何接入因特网以及数据如何在他们之间传输的标准。TCP/IP协议参考模型把所有TCP/IP系列协议归类到四个抽象层中;每一个抽象层建立在底一层提供的服务上,并且为高一层提供服务。如下图:OSI模型(开放式系统互联通信参考模型),它是由...
2018-11-07 21:52:25 201
原创 springBoot自动配置原理
springBoot最大的优势自动完成大量的功能配置,从而不需要人为的编制大量的xml文件。springBoot配置类可以从yml、properties文件中获取所需的属性值,但我们通过什么方式确定在yml文件(properties文件)中配置哪些属性值呢?因此我们要从源码中找出根源:@SpringBootApplication:启动springBoot注解,点击,进入具体的注解类。...
2018-11-05 17:19:47 304
原创 yml多文档块配置参数
实际项目测试中,需要不同的环境,例如:测试环境、运行环境、正式环境等等,不同的环境对应着不同的端口号,如何快速的转化环境,可通过配置文件来设定。yml文件通过多文档块的方式配置不同的环境。 设置配置文件:application.yml,设置三个文档块(每个文档块通过【--------】隔离生成)server: port: 8081spring: ...
2018-11-05 11:45:07 3484
原创 配置文件的占位符
SpringBoot中配置文件可使用占位符处理其值,如果没有值,可以设置默认值:设置全局配置文件application.properties:配置文件中随机生成名字、随机生成年龄、dog.name能获取主人名就直接获取,不能获取就生成默认名server.port=8081person.last-name=方新德${random.uuid}person.age=${random.i...
2018-11-05 10:45:00 645
原创 里氏替换原则的初步理解
学习里氏替换原则相关定义及解释时,给人似懂非懂的感觉,就是不能很清晰的理解此原则的内涵:书中有句话:【只要父类出现的地方,子类都可以替换他,使用者可能都不知道到底是子类还是父类】为了达到这个目的,我们需要注意以下几点:子类可以实现父类的抽象方法,但是不能覆盖父类的非抽象方法。 子类中可以增加自己特有的方法。 当子类覆盖或实现父类的方法时,方法的前置条件(即方法的形参)要比父类方法的...
2018-11-02 13:44:22 1193 1
原创 springBoot之@ImportResource的使用
@ImportResource:导入Spring的配置文件,让配置文件里面功能生效;想让Spring的配置文件生效,加载进来,@ImportResource标注在一个配置类上。@SpringBootApplication@ImportResource(locations = {"classpath:beans.xml"})public class SpringBoot02Co...
2018-11-01 17:55:13 5698
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人