![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JAVA
文章平均质量分 92
cjf_wei
这个作者很懒,什么都没留下…
展开
-
基于Protobuf协议的Dubbo与SpringBoot的结合
文章目录工程概况父pomdubbo-provider通过proto3定义服务打包发布服务dubbo-provider-service实现服务dubbo-provider-web提供服务dubbo-consumerdubbo-consumer-apidubbo-consumer-servicedubbo-consumer-web提供服务这里使用Protobuf作为IDL 定义Dubbo服务,并于SpringBoot相结合,搭建最原始的服务提供及消费模型。基于dubbo2.7.13,注册中心使用zookeep原创 2022-01-17 10:57:14 · 3045 阅读 · 1 评论 -
Nacos Spring Boot开启权限校验下的使用历程
文章目录Nacos SpringBoot Demonacos客户端鉴权及getConfig流程在此我们假设你已经成功启动了nacos(无论是standalone亦或是cluster模式),并且开启了权限校验 nacos.core.auth.enabled=true,如果您对权限校验还不明了,可以翻看 从nacos的权限控制看nacos的配置热加载 。这里我们开始使用客户端来开启nacos使用之旅。好吧,先提前告知,一切并不顺利,因为我们盲目的去除了客户端依赖的fastjson…Nacos Spring原创 2021-01-21 22:38:15 · 5642 阅读 · 0 评论 -
从nacos的权限控制看nacos的配置热加载
nacos的权限控制及配置热加载nacos的权限控制是什么样的nacos是如何进行权限控制的开启权限控制的开关为什么权限控制开关失效最近在使用nacos,部署在k8s集群上,使用的是从源码自己打的镜像。在配置nacos的权限认证功能时, 发现无法生效,而且所谓的配置修改立即生效也无法实现,下面就探讨下这是什么原因导致的?同时也看下nacos所说配置修改立即生效是如何实现的?nacos的权限控制是什么样的nacos通过将用户绑定到某个角色上,然后赋予某个角色对某个资源(命名空间)的读写权限,假如当前登录原创 2020-12-30 20:55:50 · 2283 阅读 · 0 评论 -
net.sf.json.JSONArray之fromObject的坑
前段时间掀起了风风火火的去fastjson, 其他Json序列化方法, 又"重见天日"; 本来推荐使用gson作为替代(某些场景下Jackson); 但这位同学使用的net.sf.json, 但缺乏认知, 未经测试就上线,导致了问题。Case当JSONArray.fromObject(null)时, 结果也为null吗?JSONArray jsonArray;try { jsonArray = JSONArray.fromObject(value);} catch (Exception e) {原创 2020-08-21 22:36:27 · 1874 阅读 · 0 评论 -
Java移位操作符:操作数小于0时怎么办?
Java移位操作符:操作数小于0时怎么办?long a = -1L >>> -7;long b = 4L >>> 66;看到上述的计算, 首先想到">>>"是一种"无符号"的右移位操作符, 也就是说无论被操作数是正或负, 向右移位后, 高位补0;但脑海未免还会闪现出如下疑问向右移动负数个位置, 咋移? 难道是向左移?Java中long是8字节, 也就是最多64位, 那向右移动66位,咋整?上面移位的结果是:a = 127b = 1原创 2020-07-17 23:23:49 · 385 阅读 · 0 评论 -
Redis之Lua脚本:原子性的执行exsits&incr
Redis提供的命令虽然不少, 但是严格的说计算能力还是比较有限的. 好在Redis2.6版本后引入Lua脚本, 大大增强了这方面的计算能力. 最重要的是执行lua脚本还具备原子性, 所以在对一致性要求高的环境下, lua脚本或许是个不错的选择.本文通过具体的场景来简介下lua脚本的使用.这里,我们基于Springboot框架的RedisTemplate来操作redis.问题抽象:使用redis计数, 计数器的key会在生命周期是15分钟;每次优先查询redis中的计数器,当计数值不存在时,从数据库原创 2020-07-11 17:58:57 · 2247 阅读 · 0 评论 -
Java:List集合中SubList
开始前不妨在心里默算下以下的输出是什么?List集合的subList方法返回的到底是什么?public static void main(String[] args) { List<Integer> list = Arrays.asList(0, 1, 2); System.out.println("before:" + list); truncateFirst(list); System.out.println("after:" + list);}public static原创 2020-07-04 15:07:48 · 310 阅读 · 0 评论 -
modCount:Java集合实现快速失败机制的计数器
快速失败机制,是Java集合框架中的一种错误检测机制。多线程下遍历一个非线程安全的集合对象时,如果一个线程在遍历过程中,另一个线程对集合对象的内容进行了修改(增加、删除),则会抛出ConcurrentModificationException。快速失败机制并不保证在非同步下的修改一定会抛出异常,这种机制一般仅用于检测bug。以ArrayList中的forEach方法为例,看看modCount的作用:modCount定义于ArrayList的父类AbstractList中public abstract原创 2020-07-01 23:02:45 · 502 阅读 · 0 评论 -
SpringBoot多数据源配置
本文介绍springboot结合jpa,在需要多个数据源,多个数据库时,应该怎样配置等。使用mysql存储,使用基于Hibernate的JPA,在下文的demo中两个数据库test,它有一张User表; 另一个库prod,它有一张表名为Person.project目录├─java│ └─com│ └─demo│ └─multi│ ...原创 2020-01-04 22:38:38 · 500 阅读 · 0 评论 -
Java:实现比较接口时,应该全面的进行各种情况的比较
Java中实现类的自定义比较功能,可以通过实现Comparable,或者Comparator,前者是一个内比较器,后者是一个外比较器,但无论是哪种在实现比较方法时,都应该充分考虑各种情况:比较者大于被比较者(也就是compareTo方法里面的对象),那么返回正整数比较者等于被比较者,那么返回0比较者小于被比较者,那么返回负整数假如只考虑了其中的两种情况,会有什么影响了?Bad Cas...原创 2019-03-31 22:38:40 · 1399 阅读 · 0 评论 -
Java:域和静态方法不具有多态性
近日在工程中发现了这么一个bug:妄自以为子类的域可以像方法一样覆盖父类的域或者方法。具体的情景可以抽象为以下:试图在父类中定义一个域(非private)并赋予初始值,各个子类算法默认情况下使用该域的默认初始值,在必要的情况下想覆盖该域重新定义该值,于是有了这样的代码:public abstract class AbstractAlogrithm { protected int nTimeS...原创 2019-01-13 10:41:52 · 503 阅读 · 0 评论 -
Netty介绍及入门使用
Netty是一款用于创建高性能网络应用程序的框架,它相对于原生的Java API更加容易使用,更加高效,性能更好。本文以简单的示例着手,简介Netty的基本概念以及入门使用。Netty提供异步的(非阻塞I/O),基于事件驱动的,它包含了一组设计模式,将应用程序逻辑从网络层解耦。它的高性能得益于它的池化与复用,资源消耗更低。在传统的同步阻塞式I/O模型中,通常由一个独立的Acceptor线程负责监...原创 2018-09-24 10:19:13 · 257 阅读 · 0 评论 -
HBase Java API(1.2.X)使用简介
之前读《HBase权威指南》在实践时,发现API已经发生了一些变化,查阅官方文档,确任HBase的API在1.0版本后已经做了修改。本文介绍在新API下,使用Java访问HBase的方法。 HBase Client通过查询hbase:meta表来确定你所感兴趣的数据行所在的RegionServers。在定位到这些数据所在的region后,client会直接和这些region所在的RegionSe...原创 2018-08-12 11:51:05 · 1230 阅读 · 0 评论 -
Snappy Java API简介
Snappy是Google开源的压缩/解压缩库。和其他压缩库相比,snappy的压缩率并不是最高的,兼容性也并非最好的。相反,它的诞生旨在以极高的压缩/解压缩速率提供合理的压缩率。Snappy官指出:在64位单核core-i7处理器下,snappy的压缩率能够达到250MB/S,而解压缩速度则能达到500MB/S。目前很多软件使用(或支持)snappy作为压缩库,如MongoDB,Cassandr...原创 2018-06-09 20:29:18 · 19418 阅读 · 3 评论 -
使用Hadoop的JAVA API远程访问HDFS
之前分别介绍了使用Hadoop的C API操作HDFS和使用Hadoop的Java API操作HDFS,在介绍Java访问方式时(C API不存在这样的问题),程序是部署在Hadoop安装环境的,这具有一定的局限性,因为客户端不可能总是运行在Hadoop安装节点上。本文介绍以Java方式远程访问/操作HDFS。在Hadoop安装环境中和远程访问的主要区别在于Hadoop环境配置的获取和程序的执...原创 2018-02-10 10:40:58 · 13633 阅读 · 1 评论