【Java】-- 技术类
java技术类
木子松的猫
为了毫不费力,所以必须努力。
展开
-
java日志框架梳理
如果是在一个新的项目中建议使用Slf4j与Logback组合,Slf4j实现机制决定Slf4j限制较少,使用范围更广。Logback拥有更好的性能。原创 2020-07-15 09:03:01 · 359 阅读 · 0 评论 -
高并发系统降级常用方法攻略
防止雪崩,保证了系统的稳定性,可用性。原创 2020-07-07 08:59:54 · 1206 阅读 · 0 评论 -
创建多少线程合适呢-----见过最好的多线程文章
为什么要使用多线程?防止并发编程出错最好的办法就是不写并发程序既然多线程编程容易出错,为什么它还经久不衰呢?A:那还用说,肯定在某些方面有特长呗,比如你知道的【它很快,非常快】我也很赞同这个答案,但说的不够具体并发编程适用于什么场景?如果问你选择多线程的原因就是一个【快】字,面试也就不会出那么多幺蛾子了。你有没有问过你自己并发编程在所有场景下都是快的吗? 知道它很快,何为快?怎样度量?想知道这两个问题的答案,我们需要一个从【定性】到【定量】的分析过程使用多.转载 2020-07-01 10:19:45 · 257 阅读 · 0 评论 -
高并发系统限流常用方法攻略
限制系统的输入、输出流量,保证系统稳定运行。原创 2020-06-29 09:52:53 · 956 阅读 · 0 评论 -
【并发编程】- 乐观锁,悲观锁
并发原创 2019-05-26 21:47:26 · 153 阅读 · 1 评论 -
【JVM】- 分代、GC算法
一、分代左图是运行时数据区逻辑图,右图是分代逻辑图,右图中上边部分是JDK1.8之前的,下图是JDK1.8之后的;两张图中相同颜色代表相同的区域。从图中我们可以得出,新生代和老年代是属于堆的;在JDK1.8之前,方法区也称为老年代,JDK1.8之后,取消了老年代,取而代之的是元空间Meta Space,也即是1.8后,方法区的实现方式有老年代变为了元空间。设计元空间的目的,一是规避...原创 2019-06-02 09:13:40 · 1182 阅读 · 1 评论 -
Spring IOC
目录IOC控制反转控制反转依赖注入IOC是谁控制了谁,反转了什么?依赖注入是谁依赖谁,注入了什么?IOC和DI的对比IOC容器概念组件Bean概念作用域组件Bean注册基于XML基于java配置自动装配IOC控制反转控制反转IOC称为控制反转,是说一个对象如何获取他所依赖的对象的引用,而对象由容器控制,而不是由我们主动去...原创 2019-06-25 09:30:18 · 177 阅读 · 0 评论 -
Spring AOP
目录为什么实现AOP硬编码OOPAOPAspectJspring AOP基于注解的spring aop开发基于XMl的开发Spring AOP的实现过程AOP实现原理JDK动态代理CGLib动态代理什么是AOP面向切面编程是一种思想,其编程思想就是把散布于不同业务但功能相同的代码从业务逻辑中抽取出来,封装成独立的模块,这些独立的模块被称...原创 2019-06-25 09:31:37 · 1048 阅读 · 1 评论 -
Mycat+druid+zk实现多租户
前言Mycat的应用场景之一就是实现多租户,多租户应用,每个应用一个库,但应用程序只连接 Mycat,从而不改造程序本身,实现多租户化;接下来我们使用mycat,结合druid拦截sql添加注释头,利用zk修改mycat配置文件中的schema、dataNode节点等信息,来实现多租户。三种实现方案多租户在数据存储上存在三种主要的方案,分别是:独立数据库这种方案一个租户一个数据...原创 2019-07-07 08:09:09 · 2992 阅读 · 3 评论 -
Mycat实战
目录配置详解server.xmlschemal.xmlrule.xmlmycat实战单库大表拆分跨库分表读写分离第一种方式第二种方式配置详解server.xml<!DOCTYPE mycat:server SYSTEM "server.dtd"><mycat:server xmlns:mycat="http://...原创 2019-06-30 21:32:43 · 396 阅读 · 1 评论 -
Mycat
目录概述为什么用mycat优势数据库分片垂直拆分垂直分库垂直分表水平拆分大数据表拆分成小表常用策略拆分带来的问题1、跨库JOIN的问题,导致查询失败2、跨分片数据排序分页3、全局序列问题4、分布式事务问题MyCAT重要概念概述一个开源的数据库中间件,前端用户可以把它看做一个数据库代理,可用mysql客户端工具和命令...原创 2019-06-30 21:32:26 · 888 阅读 · 2 评论 -
session一致性问题及token实现
目录cookie出现之前cookiesession概述工作原理集群session丢失session一致性问题解决方法基于IP-hash处在均衡服务器session复制session统一缓冲三种session一致性问题解决方法的适用情况session的不足tokentoken的实现原理token实现思路实践cookie出现之前c...原创 2019-07-14 21:42:41 · 733 阅读 · 2 评论 -
Maven项目配置tomcat插件
tomcat插件如下:<build> <plugins> <plugin> <groupId>org.apache.tomcat.maven</groupId> <artifactId>tomcat7-maven-pl...原创 2019-05-30 11:40:12 · 930 阅读 · 2 评论 -
CGLib动态代理
在spring AOP中,通常会用cglib动态代理来生成AOProxy对象。cglib动态代理和JDk动态代理的不同之处在于cglib动态代理是通过继承被代理类,生成的动态代理类是被代理类的子类,然后通过重写业务方法来实现代理。1、定义被代理类public class cglibPerson { public void findLove(){ System.out....原创 2019-04-21 19:19:01 · 271 阅读 · 1 评论 -
Maven依赖
Maven是什么服务于java平台的自动化构建工具,依赖管理工具,和项目信息管理工具。构建以“jave源文件”,“框架配置文件”、“JSP”、“HTML”、“等资源为原材料”,去“生产”(编译、部署、搭建)一个可以运行的项目的过程依赖管理在这个开源的时代里,几乎任何java应用都会借用一些第三方的开源类库,这些类库都可以通过依赖的方式引入到项目中。随着依赖的增多,版本不一致、版本冲突、...原创 2019-02-10 19:03:22 · 871 阅读 · 0 评论 -
Dubbo+ZK
什么是dubbo简单理解,dubbo就是个服务框架,如果没有分布式的需求,其实是不需要用的,只有在分布式的时候,才有dubbo这样的分布式服务框架的需求。官方说Dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。说白了就是个远程服务调用的分布式框架(告别Web Service模式中的WSdl,以服务者与消费者的方式在dubbo上注册)为...原创 2018-08-27 20:33:09 · 401 阅读 · 11 评论 -
Redis-粗浅理解
什么是redis典型的NoSql数据库服务器,在很多时候,人们只是将Redis视为Key/Value数据库服务器,然而事实并非如此,在目前的版本中,Redis除了Key/Value之外还支持List、Hash、Set和Ordered Set等数据结构,因此它的用途也更为宽泛。通常的用法就是将数据存放到内存到,由于内存存取速度快,官方称读取速度会达到30万次每秒,写速度在10万次每秒,所以red...原创 2018-08-24 11:15:39 · 198 阅读 · 8 评论 -
HttpClient实现远程调用
简单理解 远程调用,是我们在做项目的时候经常遇到的。EJB可以实现远程调用;Dubbo+ZK可以实现远程调用;Spring Cloude中使用Resttemplate和Feign均可实现远程调用。今天要总结的是HttpClient,他也可以实现远程调用。而且爬虫就是用HttpClient来访问互联网,然后将数据保存到本地,然后用jsonp来提取需要的信息。使用 引用httpclient的依...原创 2018-08-22 21:01:51 · 1111 阅读 · 6 评论 -
Shiro入门
什么是shiro?一句话概括就是,shiro是Apache的一个开源安全框架,可以替我们完成身份认证、对用户执行访问控制,如判断用户是否具有某个角色,判断用户是否拥有访问的资源权限、加密解密、单点登录及Remember Me服务 等等。认证、授权认证和授权是shiro的两个非常重要的概念。认证就是登录的时候判断你的用户名和密码是否正确以及是否完全匹配。授权就是在认证的基础上给用户进行角色...原创 2018-09-30 11:55:35 · 397 阅读 · 10 评论 -
Shiro身份认证
身份验证,即在应用中谁能证明他就是他本人。一般提供如他们的身份ID一些标识信息来表明他就是他本人,如提供身份证,用户名/密码来证明。原创 2018-09-30 18:53:32 · 291 阅读 · 4 评论 -
rocketMQ使用实践
利用定时器将消息发送到mq利用定时器,定时扫描数据库是否有符合条件的数据,一分钟执行一次,有数据就发送到mq。 /** * 查询未发送的消息 1分钟执行一次 */ @Scheduled(cron = "0 1/1 * * * ? ") public void queryNotSendMessage(){ MessageGroupSen...原创 2018-10-30 15:31:12 · 454 阅读 · 12 评论 -
Shiro权限
什么是授权授权就是在认证的基础上给用户进行角色和权限的授予。权限定义了一个用户是否可以执行某个操作。角色是一组权限的集合,我们通常把一组权限绑定到一种角色上,再吧一个或者多个角色赋给一个用户,这样就是实现了权限的控制。Shiro授权核心概念权限 : 即操作资源的权利,比如访问某个页面,以及对某个模块的数据的添加,修改,删除,查看的权利角色 : 是权限的集合,一种角色可以包含多种权限用户 ...原创 2018-11-06 16:51:28 · 4277 阅读 · 2 评论 -
【用户行为分析】-何为埋点
什么是埋点埋点就是在正常的功能逻辑中(比如前端click事件,后端controller中)添加统计逻辑来收集相应数据,然后调用第三方接口,将数据发送到服务器。埋点和埋雷类似,用户只要触发,数据就会被采集。怎么埋点根据‘埋雷’的做法,对某一个地方(标签)埋下一颗地雷‘标记’,最好的埋雷是不让敌人发现,不知不觉的触发。埋点一样,不过前端在某个标签做个标记不让用户看见很简单,我们更需要追求最好的不...原创 2018-11-23 17:22:27 · 1907 阅读 · 3 评论 -
【用户行为分析】-Java端埋点
需求在Java后端登录处埋点,获取的事件属性包括:是否成功,登录方式以及神策预置属性。并进行用户ID的打通,使用神策接口把用户匿名ID和登录ID进行打通。什么是用户ID打通?用户有时会再注册或登录之前,会在页面进行一些操作,此时会获取一个匿名ID(设备Id或其他)作为用户标识;在用户登录后,会用登录ID作为用户标识;在用户ID打通后,也就是匿名ID和登录ID成功关联后,这两个Id发生的所有行...原创 2018-11-23 17:25:24 · 13720 阅读 · 13 评论 -
【用户行为分析】-JS端埋点
需求在用户购买会员卡时埋点,获取的事件属性包括:神策预置属性、卡类型、卡名称、购卡支付金额等数据。事件设计实现引入Js SDK将获取到的代码放入html 的 head 里面,靠前的位置处。JS SDK获取方式,参考神策官网:https://www.sensorsdata.cn/manual/js_sdk.html。&amp;amp;amp;amp;lt;script&amp;amp;amp;amp;gt; //神策数据接入原创 2018-11-23 17:23:55 · 3457 阅读 · 3 评论 -
【程序安全】- 接口地址隐藏
理解:比如秒杀或抢购场景中,如果用户提前知道了接口地址,就可能出现狂刷接口的现象,为了防止这种情况发生,最好的方法就是不让用户获取到秒杀接口地址。有一种实现方式就是隐藏接口地址,所谓的隐藏是指,秒杀地址每次都是不同的,而且在地点秒杀按钮后,会先调用后端接口获取一个pathId,然后传回前端,拼接在秒杀接口上,再请求秒杀接口地址,这样每次点击按钮后,才会生成真正的秒杀接口地址。好处:可以防止接口泄...原创 2019-02-01 17:37:25 · 6916 阅读 · 2 评论 -
单点登录简单实现
什么是单点登录单点登录全称Single Sign On(以下简称SSO),是指在多系统应用群中登录一个系统,便可在其他所有系统中得到授权而无需再次登录。实现机制当用户第一次访问应用系统的时候,因为还没有登录,会被引导到SSO的认证系统中进行登录;根据用户提供的登录信息,认证系统进行身份校验,如果通过校验,应该返回给用户一个认证的凭据--token;用户再访问别的应用的时候,就会将这...原创 2018-08-30 17:08:56 · 919 阅读 · 9 评论