05 2018 档案

摘要:1.二维数组中的查找 题目描述 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 思路: 利用二维数组由上到下,由左到右递增的规律, 那么选取右上角a[row][col]与targe 阅读全文
posted @ 2018-05-24 22:54 开拖拉机的蜡笔小新 阅读(787) 评论(0) 推荐(0) 编辑
摘要:Spring Boot理念是约定优于配置,它通过实现了自动配置(大多数用户平时习惯设置的配置作为默认配置)的功能来为用户快速构建出标准化的应用。Spring Boot的特点可以概述为如下几点: 内置了嵌入式的Tomcat、Jetty等Servlet容器,应用可以不用打包成War格式,而是可以直接以J 阅读全文
posted @ 2018-05-19 16:20 开拖拉机的蜡笔小新 阅读(384) 评论(0) 推荐(0) 编辑
摘要:在SpringBoot中是不需要配置web.xml的,那么原来在web.xml中配置的Servlet、Filter、Listener现在怎么弄呢? SpringBoot提供了三种Bean FilterRegistrationBean、ServletRegistrationBean、ServletLi 阅读全文
posted @ 2018-05-19 12:03 开拖拉机的蜡笔小新 阅读(997) 评论(0) 推荐(0) 编辑
摘要:有时候有这样子的情景,我们想把配置文件的信息,读取并自动封装成实体类,这样子,我们在代码里面使用就轻松方便多了, 这时候,我们就可以使用@ConfigurationProperties,它可以把同类的配置信息自动封装成实体类. 首先在配置文件里面,这些信息是这样子滴 它有两种用法: 1.注解在类上 阅读全文
posted @ 2018-05-19 11:34 开拖拉机的蜡笔小新 阅读(271) 评论(0) 推荐(0) 编辑
摘要:除非你有一个很特别的原因去使用 NULL 值,你应该总是让你的字段保持 NOT NULL。这看起来好像有点争议,请往下看。 所谓的NULL就是什么都没有,连\0都没有,\0在字符串中是结束符,但是在物理内存是占空间的,等于一个字节,而NULL就是连这一个字节都没有。在数据库里是严格区分的,任何数跟N 阅读全文
posted @ 2018-05-17 18:00 开拖拉机的蜡笔小新 阅读(1164) 评论(0) 推荐(0) 编辑
摘要:在微服务架构下,微服务被拆分成多个微小的服务,每个微小的服务都部署在不同的服务器实例上,当我们定位问题,检索日志的时候需要依次登录每台服务器进行检索。 这样是不是感觉很繁琐和效率低下。所以我们还需要一个工具来帮助集中收集、存储和搜索这些跟踪信息。 集中化管理日志后,日志的统计和检索又成为一件比较麻烦 阅读全文
posted @ 2018-05-16 17:18 开拖拉机的蜡笔小新 阅读(3457) 评论(0) 推荐(0) 编辑
摘要:随着业务的发展,系统规模也会越来越大,各微服务间的调用关系也越来越错综复杂。 通常一个客户端发起的请求在后端系统中会经过多个不同的微服务调用来协同产生最后的请求结果, 在复杂的微服务架构系统中,几乎每一个前端请求都会形成一条复杂的分布式服务调用链路,在每条链路中任何一个依赖服务出现延迟过高或错误的时 阅读全文
posted @ 2018-05-16 15:29 开拖拉机的蜡笔小新 阅读(11420) 评论(1) 推荐(0) 编辑
摘要:前言在微服务架构中,我们将系统拆分成了一个个的服务单元,各单元应用间通过服务注册与发现的方式互相依赖。 由于每个单元都在不同的进程中运行,依赖通过远程调用的方式执行,这样就有可能因为网络原因或是依赖服务自身问题出现调用故障或延迟, 而这些问题会直接导致调用方的对外服务也出现延迟,若此时调用方的请求不 阅读全文
posted @ 2018-05-12 10:13 开拖拉机的蜡笔小新 阅读(2394) 评论(0) 推荐(0) 编辑
摘要:@RequestBody和@ResponseBody两个注解,分别完成请求报文到对象和对象到响应报文的转换。 @RequestBody 1、@requestBody注解常用来处理content-type不是默认的application/x-www-form-urlcoded编码的内容, 比如说:ap 阅读全文
posted @ 2018-05-09 20:41 开拖拉机的蜡笔小新 阅读(7671) 评论(0) 推荐(0) 编辑
摘要:我们在提交表单的时候,form表单参数中会有一个enctype的参数。 EncType表明提交数据的格式,用 Enctype 属性指定将数据发到服务器时浏览器使用的编码类型。 enctype指定了HTTP请求的Content-Type。application/x-www-form-urlencode 阅读全文
posted @ 2018-05-09 18:41 开拖拉机的蜡笔小新 阅读(831) 评论(0) 推荐(0) 编辑
摘要:一、使用JSON Web Token的好处? 1.性能问题。 JWT方式将用户状态分散到了客户端中,相比于session,可以明显减轻服务端的内存压力。 Session方式存储用户id的最大弊病在于Session是存储在服务器端的,所以需要占用大量服务器内存, 对于较大型应用而言可能还要保存许多的状 阅读全文
posted @ 2018-05-08 22:25 开拖拉机的蜡笔小新 阅读(39728) 评论(2) 推荐(2) 编辑
摘要:一、基于session的身份认证方案 1.方案图示 2.比较通用的鉴权流程实现如下: 在整个流程中有两个拦截器。 第一个拦截器AuthInteceptor是为了每一次的请求的时候都先去session中取user对象,如果session中有,就放user对象到threadlocal中。这是为了业务处理 阅读全文
posted @ 2018-05-08 21:18 开拖拉机的蜡笔小新 阅读(9262) 评论(0) 推荐(2) 编辑
摘要:在单体中对于key信息和用户信息是放在内存中放的,通过session进行管理。 微服务是要放在分布式缓存中,以实现服务的无状态化。 阅读全文
posted @ 2018-05-08 19:47 开拖拉机的蜡笔小新 阅读(4604) 评论(0) 推荐(0) 编辑
摘要:对服务器程序来说,究竟是有状态服务,还是无状态服务,其判断依旧——两个来自相同发起者的请求在服务器端是否具备上下文关系。 状态化请求,服务器端一般都要保存请求的相关信息,每个请求可以默认地使用以前的请求信息。 无状态请求,服务器端所能够处理的过程必须全部来自于请求所携带的信息,以及其他服务器端自身所 阅读全文
posted @ 2018-05-08 19:33 开拖拉机的蜡笔小新 阅读(25684) 评论(0) 推荐(0) 编辑
摘要:Eureka服务治理 在Eureka服务治理的框架中,有三种角色,服务注册中心、服务提供者、服务消费者。 1. 服务注册中心 Eureka服务端,支持高可用配置,能够集群部署,在Eureka服务治理设计中,所有节点既是服务提供方,也是服务消费方,服务注册中心也不例外。不同注册中心相互注册,以实现服务 阅读全文
posted @ 2018-05-08 16:29 开拖拉机的蜡笔小新 阅读(1908) 评论(0) 推荐(0) 编辑
摘要:1.服务注册与发现基础架构 注册中心: 接受服务提供者的注册、存储服务提供者的服务信息 ,比如ip 端口号 服务名这些信息; 并且与微服务保持心跳,如果心跳不能保持则注销该实例。 所以注册中心主要提供服务提供者信息的存储,另外与服务提供者保持心跳以监控服务提供者的存活。 服务提供者: 向注册中心提供 阅读全文
posted @ 2018-05-07 21:15 开拖拉机的蜡笔小新 阅读(3359) 评论(0) 推荐(0) 编辑
摘要:1.微服务技术选型图如下图所示: 2.如何进行微服务架构设计: 深入业务功能, 满足功能性需求 非功能性需求关注扩展性,稳定性。可维护性,伸缩性,高可用,高性能 坚持kiss原则,防止简单问题复杂化 注: 可伸缩性是指系统通过增加或减少硬件水平从而提升或降低系统性能的难易程度。可伸缩性分为scale 阅读全文
posted @ 2018-05-07 16:21 开拖拉机的蜡笔小新 阅读(792) 评论(0) 推荐(0) 编辑
摘要:在微服务架构下,每个服务对应一个数据库,这就出现了原来单体中对同一个库的操作变成了跨服务数据库的操作。 遇到有事务约束的场景,比如转账汇款、订单状态和库存扣减,就从本地事务过渡到分布式事务来了。 可以用利用最终一致性解决这个问题 最终一致性:不同服务节点再一段时间后,节点间的数据会最终达到一致的状态 阅读全文
posted @ 2018-05-02 19:31 开拖拉机的蜡笔小新 阅读(1065) 评论(0) 推荐(0) 编辑
摘要:一、服务拆分的三个维度 三个维度拆分后,微服务的架构图就如下图所示: API GATEWAY服务网关: 身份认证、权限管理、服务动态路由、数据的聚合(比如房产详情页就有详情、评论、推荐,这些都属于不同的服务,这些我们就需要在服务网关中去做) Service Register:注册中心 服务的注册与发 阅读全文
posted @ 2018-05-02 19:21 开拖拉机的蜡笔小新 阅读(10376) 评论(2) 推荐(0) 编辑
摘要:一.单体架构和微服务架构的比较 1.单体架构的优势和不足 单体架构的优势:在项目的初期便于开发、便于测试、便于部署 单体架构的不足: 复杂性高-代码难以理解,难以修改和重构 交付效率低-项目整体部署耗时长、难以定位问题、影响范围广、风险大、发布频次低 伸缩性差-单体只能按整体进行横向扩展,无法分模块 阅读全文
posted @ 2018-05-02 18:51 开拖拉机的蜡笔小新 阅读(580) 评论(0) 推荐(0) 编辑
摘要:REST API风格 就是用URL定位资源,用HTTP描述操作。 看Url就知道要什么看http method就知道干什么看http status code就知道结果如何 主要是针对资源进行资源定位和资源操作。 资源定位:url的格式,url中不带参数。参数从url的路径中获得。 资源操作:使用ht 阅读全文
posted @ 2018-05-02 16:33 开拖拉机的蜡笔小新 阅读(497) 评论(0) 推荐(1) 编辑
摘要:动态规划 矩阵的总路径数 题目描述:统计从矩阵左上角到右下角的路径总数,每次只能向右或者向下移动。 思路: 我们可以把棋盘的左下角看做二维坐标的原点(0,0),把棋盘的右上角看做二维坐标(M,N)(坐标系的单位长度为小方格的变长) 用f(i,j)表示移动到坐标f(i,j)的走法总数,其中0=<i,j 阅读全文
posted @ 2018-05-02 10:08 开拖拉机的蜡笔小新 阅读(298) 评论(0) 推荐(0) 编辑
摘要:DozerBeanMapper是JavaBean的映射工具,可以进行对象之间相同属性名赋值 关于PO、DTO、VO在分层模型之间的关系:首先在持久层由DAO访问数据库将数据对象封装成PO,然后在service层将PO映射成DTO对象并进行进一步处理,处理完之后DTO传到表现层,接着在表现层映射成VO 阅读全文
posted @ 2018-05-01 21:04 开拖拉机的蜡笔小新 阅读(384) 评论(0) 推荐(0) 编辑