3 草木世

尚未进行身份认证

我要认证

暂无相关简介

等级
TA的排名 8w+

5、Quartz定时任务

业务需求说明:如果用户提交了订单.在30分钟之内没有完成支付,则将订单的状态由1改为6.定时任务QuartzQuartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,它可以与J2EE与J2SE应用程序相结合也可以单独使用。Quartz可以用来创建简单或为运行十个,百个,甚至是好几万个Jobs这样复杂的程序。Jobs可以做成标准的Java组件或 EJBs。调度器 负责任务管理.内部有时钟监控触发器 当调度器需要执行任务时,通过触发器启动新的线程去执行.JO

2020-08-11 08:34:41

4、用户登录信息动态获取(3种方式及对比,request、session、ThreadLocal)

业务需求当用户登录成功后,动态获取用户信息.之后将userId值在业务层中灵活使用.实现方案方案一:利用request对象获取数据利用拦截器,将数据保存到request域中controller动态获取,必须在controller方法中传递request对象才能获取到public List< Cart> findCartListByUserId(Long userId,HttpServletRequest request)方案二:利用拦截器获取用户登录信息,将信息存入sess

2020-08-11 08:28:35

3、访问权限控制(拦截器)

业务需求当用户没有登录条件下.不允许访问购物车/订单/支付/物流等相关涉密操作.如何实现:AOP: 主要实现了业务层解耦.但是无法直接获取request/response对象拦截器: 由于需要通过url地址判断用户是否有权限.所以拦截器是首选.实现思路利用SpringMVC的拦截器.判断用户是否登录.如果用户已经登录则拦截器放行用户请求.同时将用户信息传递到后端使所有服务都能进行访问如果用户没有登录,应该重定向到用户登录页面.拦截器工作原理及实现拦截器@Componentp

2020-08-11 08:08:18

2、Dubbo(RPC框架)+Zookeeper(注册中心)实现微服务架构项目创建

Zookeeper(注册中心)ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。ZooKeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。总结:zookeeper是服务的协调调度服务器!!!Zookeeper环境搭建下载软件解压文件、创建集群文件

2020-08-11 01:59:54

1、微服务架构(SOA思想、RPC协议、OSI模型、注册中心)

微服务的概念在分布式的基础之上.服务可以独立的运行.当服务发生故障时,可以实现故障的自动化迁移.用户无需关注SOA思想面向服务的架构(SOA)是一个组件模型,它将应用程序的不同功能单元(称为服务)进行拆分,并通过这些服务之间定义良好的接口和契约联系起来。接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言。这使得构建在各种各样的系统中的服务可以以一种统一和通用的方式进行交互。RPC协议RPC(Remote Procedure Call)远程过程调用,它是一种通过网络

2020-08-11 01:13:54

14、请求跨域问题(伪静态、jsonp跨域访问)

伪静态伪静态是相对真实静态来讲的,通常我们为了增强搜索引擎的友好面,都将文章内容生成静态页面,但是有的朋友为了实时的显示一些信息。或者还想运用动态脚本解决一些问题。不能用静态的方式来展示网站内容。但是这就损失了对搜索引擎的友好面。怎么样在两者之间找个中间方法呢,这就产生了伪静态技术。就是展示出来的是以html一类的静态页面形式,但其实是用ASP一类的动态脚本来处理的。总结:以html形式展现动态页面效果前提:搜索引擎(百度/360)一般只会收录HTML页面信息搜索引擎工作原理:倒排索引规则:根据

2020-08-09 10:30:29

13、springboot封装HTTPClient请求方法(get/post)

1、springboot整合HTTPClient2、封装请求方法get/postpackage pers.yezi.utils;import org.apache.http.NameValuePair;import org.apache.http.client.config.RequestConfig;import org.apache.http.client.entity.UrlEncodedFormEntity;import org.apache.http.client.methods.C

2020-08-08 19:14:34

12、springboot整合HTTPClient

HTTPClientHTTP 协议可能是现在 Internet 上使用得最多、最重要的协议了,越来越多的 Java 应用程序需要直接通过 HTTP 协议来访问网络资源。虽然在 JDK 的 java net包中已经提供了访问 HTTP 协议的基本功能,但是对于大部分应用程序来说,JDK 库本身提供的功能还不够丰富和灵活。HttpClient 是 Apache Jakarta Common 下的子项目,用来提供高效的、最新的、功能丰富的支持 HTTP 协议的客户端编程工具包,并且它支持 HTTP 协议最新的版

2020-08-08 13:01:37

10、Redis集群工作原理

Redis集群工作原理数据存储原理分片数据存储原理: 根据hash一致性算法实现数据存储.Hash一致性运算发生在服务器端.在存储数据前已经计算完成存储到哪台redis服务器中.分片中存在的问题:分片的数据是用户通过服务器程序计算进行存储.用户也可以利用redis的客户端进行非法的操作.修改分片中的数据集群数据存储原理:虚拟槽分区算法这个槽是用来存放缓存信息的单位,在 Redis 中将存储空间分成了 16384 个槽,也就是说 Redis Cluster 槽的范围是 0 -16383(2^4

2020-08-07 22:11:11

9、Redis集群搭建

Redis集群搭建一般最小集群为3个主节点,从节点不做要求本次测试搭建配置为一主一从,也就是共3台主机,3台从机共6台机器:192.168.1.11:6379192.168.1.11:6380192.168.1.11:6381192.168.1.11:6382192.168.1.11:6383192.168.1.11:68341、准备集群文件夹mkdir -p /usr/local/redis/cluster/6379mkdir -p /usr/local/redis/cluster

2020-08-07 17:02:41

8、Redis高可用(主从同步、哨兵模式)

3台Redis缓存服务器192.168.1.11:6379192.168.1.11:6380192.168.1.11:63811、主从同步将6379设置为主服务,6380、6381为从服务命令配置的主从模式,当服务重启时会失效,可以直接将命令写入配置文件中永久有效进入6380、6381分别配置主服务地址redis-cli -p 6380 进入6380服务slaveof 192.168.1.11 6379 设置主服务地址INFO replication 查看配置是否生效redis-c

2020-08-07 13:16:05

7、Redis持久化缓存策略、内存机制

Redis持久化策略Redis中的数据都在内存中,如果断电宕机则内存数据丢失.其中数据应该持久化保存.不允许丢失.持久化策略:RDB模式AOF模式持久化工作原理按照配置的时间,定期将内存数据保存到redis中的持久化文件中.当redis服务器宕机之后重启时,首先读取指定的持久化文件,恢复内存数据,方便用户使用.RDB模式RDB模式是Redis中默认的持久化策略.保存的是redis的内存快照.占用的资源少.持久化效率最高的.特点:RDB模式能够定期持久化,但是有丢失数据的风险.

2020-08-06 23:03:14

6、Redis分片

分片机制Redis单台问题使用redis单台时内存会明显不足.如果一味的扩容内存,则运行的效率低.如果redis单台服务器宕机.Redis分片(分区)介绍核心特点:实现了redis内存的扩容.说明:使用多个redis节点,共同为用户提供服务.内存空间翻倍. 用户使用时当做一个整体.并且内存保存的数据不一.分片搭建多节点环境搭建Hash一致性算法概念:同一个字符串hash值是一致的.个人理解:Hash一致性算法的目的是为了在多节点的缓存中,尽可能的将数据平均分配到每

2020-08-06 22:26:44

5、AOP缓存案例(商品类目的缓存)

1、定义枚举类型public enum KEY_ENUM { AUTO, //自动生成key EMPTY; //使用用户自定义key}2、定义缓存切入点注解@Retention(RetentionPolicy.RUNTIME)@Target(ElementType.METHOD)public @interface Cache_Find { String key() default ""; //接收用户自定义key KEY_ENUM keyType() default KEY

2020-08-06 21:38:38

4、对象与Json互转工具类

public class ObjectMapperUtil { public static final ObjectMapper MAPPER = new ObjectMapper(); //对象转json public static String toJson(Object o) { String json = null; try { json = MAPPER.writeValueAsString(o); } catch (Exception e) { e.printSt

2020-08-06 21:31:05

3、Redis使用(springboot项目)

1、添加依赖 <!--spring整合redis --> <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> </dependency> <dependency> <groupId>org.springfra

2020-08-06 21:27:30

2、Redis常用命令(String、Hash、List、事务)

String类型操作Hash类型操作可以用散列类型保存对象和属性值List类型操作Redis中的List集合是双端循环列表,分别可以从左右两个方向插入数据.List集合可以当做队列使用,也可以当做栈使用队列:存入数据的方向和获取数据的方向相反栈:存入数据的方向和获取数据的方向相同事务操作redis中操作可以添加事务的支持.一项任务可以由多个redis命令完成,如果有一个命令失败导致入库失败时.需要实现事务回滚....

2020-08-06 21:07:56

1、Redis基础入门(软件安装、多节点搭建)

1、什么是缓存缓存机制引入缓存实际上就是降低了用户访问数据的频次.同时缓存中的数据就是数据库中的数据,将来要保证数据的一致性.提高了用户查询的效率.实现缓存需要考虑的问题存储结构 k-v key不能重复开发语言 C缓存数据都保存到内存中将内存中的数据定期持久化到本地磁盘中定期对内存数据优化LRU算法:可以将内存中不经常使用的数据提前删除LFU算法:可以将内存中使用次数最少的数据提前删除2、Redis介绍Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以

2020-08-06 20:58:55

springboot分布式项目中无法扫描到子项目中的@common,@service,@controller等注解

在spring boot分布式项目中如果子项目B中没有启动类,但是部分类上还有spring的注解,需要交给spring容器管理,例如:@common,@service,@controller等子项目A中需要引用子项目B的功能,但是无法自动访问到子项目B中含有spring注解的类,例如:在子项目B中需要给子项目A提供AOP功能,这时A项目在运行时,无法访问到B的切面方法解决方法在子项目A中的启动类上,添加子项目B的相关注解类扫描@ComponentScan(basePackages={"pers

2020-08-06 14:43:28

Linux常用文件编辑、查看命令

文件编辑按i,在光标前开始编辑按a,在光标后开始编辑按o,在当前行的下一行开始编辑按u 撤销之前的操作:/world 从当前光标处,向上查找world关键字:?world 从当前光标处,向后查找world关键字文件查看cat 输出文件所有的内容more 输出文档所有的内容,分页输出,空格浏览下一屏,q退出less 用法和more相同,只是通过PgUp、PgOn键来控制tail 用于显示文件后几号,使用频繁tail -10 nginx.conf 查看nginx.conf的最后10行

2020-08-04 18:53:32

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv4
    勤写标兵Lv4
    授予每个自然周发布9篇以上(包括9篇)原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。