java
文章平均质量分 79
grant167
这个作者很懒,什么都没留下…
展开
-
Netty实现WebSocket及分布式解决方案
Override// 处理客户端传输过来的消息log.debug("接收到消息:{}", content);@Overridelog.error("处理命令错误", cause);原创 2024-09-01 23:09:49 · 1133 阅读 · 0 评论 -
灰度发布--Spring Cloud Gray
特性支持灰度调用通过feign,restTemplate(通过注解@LoadBalanced 基于ribbon实现负载均衡)调用,支持灰度追踪支持自动注册为灰度服务,默认不自动注册优先走灰度服务,其次走正常服务支持修改服务状态,以此实现破窗能力通过破窗能力,实现蓝绿发布其它待补充介绍设计思想见Spring Cloud Gray - 微服务灰度中间件结构划分spring-cloud-gray-client定义了一套灰度路由决策模型,灰度信息追踪模型,以及和spring-clo原创 2021-08-08 12:11:42 · 1716 阅读 · 2 评论 -
主键ID生成方案--类snowflake(雪花算法)方案
雪花算法是什么?雪花算法最早是Twitter内部使用的分布式环境下的唯一ID生成算法,于2014年开源。雪花算法的特性能满足高并发分布式系统环境下ID不重复基于时间戳,可以保证基本有序递增安全性,无规则,不顺序,防止数据被轻易爬取雪花算法的组成使用雪花算法生成的主键,二进制表示形式包含4部分,从高位到低位分表为:1bit符号位、41bit时间戳位、10bit工作进程位以及12bit序列号位。符号位,预留的符号位,恒为零。时间戳位(41bit)工作进程位是java进程内唯一的,10位原创 2020-11-01 16:51:19 · 4862 阅读 · 0 评论 -
常见负载均衡算法及路由策略
总是第一个xxl-job的实现方式com.xxl.job.admin.core.route.strategy.ExecutorRouteFirst@Overridepublic ReturnT<String> route(TriggerParam triggerParam, List<String> addressList){ return new ReturnT<String>(addressList.get(0));}最后一个com.xxl.j原创 2020-09-20 16:35:21 · 1191 阅读 · 1 评论 -
集合类的数据一致性
数据一致性概念数据一致性,通常指数据在某个时间点多个副本中的一致性。比如同一份数据如果既存在关系型数据库汇中,又存在于Redis中,那么如何来保证它的双写一致性呢?除了这种时间点的一致性问题,在数据库中也会要求具备一致性,即ACID中的C(Consistency)。在分布式系统中,通常为了保证AP而采用最终一致性,即BASE理论中的E(Eventual Consitency)。一致性级别强一致性,在任意时刻,所有副本中的数据是一样的。弱一致性,相对于强一致性,即可能存在某些副本中数据是不一致的。原创 2020-09-20 15:04:32 · 602 阅读 · 0 评论 -
通过jmx监控jvm信息
jmx概念JMX(Java Management Extensions,即Java管理扩展)是Java平台上为应用程序、设备、系统等植入管理功能的框架。通过JMX,我们可以监控Java应用程序运行状态,如内存、线程等信息。常用的运维监控如jconsole,jvisualvm,Zabbix、prometheus(通过jmx_exporter采集)等工具对JVM本身的监控都是通过JMX获取的信息。MBean托管Bean(Managed Bean,MBean)是一种通过依赖注入创建的JavaBean。托管原创 2020-09-10 22:16:07 · 1557 阅读 · 0 评论 -
ThreadPoolExcutor 线程池
昨天在查看项目时,偶尔看到代码里通过静态代码块实现的单例模式的线程池,如下:public static final ThreadPoolExecutor threadPool;static { int nCpu = Runtime.getRuntime().availableProcessors(); int maxPoolSize = (2 * nCpu) + 1; ...原创 2019-11-09 22:38:59 · 478 阅读 · 0 评论 -
ThreadLocal 线程复用的问题
Java中的ThreadLocal类允许我们创建只能被同一个线程读写的变量。因此,如果一段代码含有一个ThreadLocal变量的引用,即使两个线程同时执行这段代码,它们也无法访问到对方的ThreadLocal变量。在我们日常 Web 开发中难免会遇到需要把一个参数层层的传递到最内层的情况,但是中间层可能根本不需要使用这个参数,因此这样我们完全没有必要在每一个方法里面都传递这样一个通用的参数。...原创 2018-03-19 17:39:58 · 3938 阅读 · 0 评论 -
Java时间类总结
java时间类总结jdk1.8之前java.util.Date包含有年月日时分秒,精确到毫秒级别。// The class Date represents a specific instant in time, with millisecond precision.// 语句Date date = new Date();System.out.println(date);...转载 2018-02-09 11:36:24 · 234 阅读 · 0 评论 -
spring命名空间
XML Schema 配置方式 beans xmlns="http://www.springframework.org/schema/beans" --默认命名空间:表示未使用其他命名空间的所有标签的默认命名空间--> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=原创 2018-01-09 21:50:55 · 171 阅读 · 0 评论 -
枚举
/* * 可以把 enum 看成是一个普通的 class,它们都可以定义一些属性和方法, * 不同之处是:enum 不能使用 extends 关键字继承其他类,因为 enum 已经继承了 java.lang.Enum。 */public enum EnumDemo{ MON("星一",1), TUE("星二",2), WED("星三",3), THU("星四",4), FRI("星五原创 2017-10-09 11:53:04 · 933 阅读 · 0 评论 -
Java BigDecimal详解
原文1.引言 借用《Effactive Java》这本书中的话,float和double类型的主要设计目标是为了科学计算和工程计算。他们执行二进制浮点运算,这是为了在广域数值范围上提供较为精确的快速近似计算而精心设计的。然而,它们没有提供完全精确的结果,所以不应该被用于要求精确结果的场合。但是,商业计算往往要求结果精确,这时候BigDecimal就派上大用场啦。 2.BigDecim转载 2017-10-10 15:14:27 · 256 阅读 · 0 评论 -
IO流
Java流类图结构: 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象。即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输特性将流抽象为各种类,方便更直观的进行数据操作。 流的分类: 1.按照处理数据大小:字节流和字符流 2.按照流的方向:输入流和输出流 3.按照功能分为:分为节点流和处理流四个基本流: 输入流 输出流 字符流 Reade原创 2017-10-09 17:56:50 · 218 阅读 · 0 评论 -
Spring线程池ThreadPoolTaskExecutor
配置<bean id="taskExecutor" class="org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor"> <!-- 核心线程数,维护线程的最少数量 --> <property name="corePoolSize" value="5"/> <!-- 最大线程数,维护线程的最大数量 -原创 2017-10-11 15:40:29 · 890 阅读 · 0 评论 -
Cron表达式详解
在线表达式生成器:http://cron.qqe2.com/Cron表达式是一个字符串,字符串以5或6个空格隔开,分为6或7个域,每一个域代表一个含义,Cron有如下两种语法格式: Seconds Minutes Hours DayofMonth Month DayofWeek Year原创 2017-10-12 18:39:20 · 226 阅读 · 0 评论 -
定时任务
1、Elastic-Job的SimpleJob类型作业2、Spring集成Quartz定时任务原创 2017-10-12 17:29:09 · 479 阅读 · 0 评论 -
java对象拷贝
项目中经常会遇到两个对象之间的拷贝,如果使用set/get方法,则会造成大量代码堆积,而且每次改动对象,又要改动相应的代码。 而利用BeanUtils在对象间复制属性,仅一行代码,就可以得到相同的结果。BeanUtils.copyProperties(dest, orig);当然名称不相同的属性,需要我们手动处理。其它的选择: 除此之外PropertyUtils.copyProperties也可原创 2017-09-15 11:31:02 · 236 阅读 · 0 评论 -
Spring整合Junit4
maven依赖<dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> <version>3.2.2.RELEASE</version></dependency><dependency> <groupId>junit</groupId>原创 2017-12-08 19:07:26 · 279 阅读 · 0 评论 -
gson&&fastjson
Gson String personJsonInfo={&amp;quot;&amp;quot;:&amp;quot;&amp;quot;};Gson gson = new Gson();//Gson gson = new GsonBuilder().excludeFieldsWithoutExposeAnnotation().create();//排除掉bean中没有Expose注解的属性Person person = gson.fr原创 2017-12-05 21:25:58 · 255 阅读 · 0 评论 -
java集合类总结
Java集合类提供了一套设计良好的支持对一组对象进行操作的接口和类。Java集合类里面最基本的接口有: ● Collection:代表一组对象,每一个对象都是它的子元素。 ● Set:不包含重复元素的Collection。 ● List:有顺序的collection,并且可以包含重复元素。 ● Map:可以把键(key)映射到值(value)的对象,键不能重复。原创 2017-10-10 16:30:53 · 295 阅读 · 0 评论 -
equals && hashCode
JDK中equals与hashCode方法介绍如下:hashCodeReturns a hash code value for the object.This method is supported for the benefit of hash tables such as those provided by HashMap.返回对象的哈希码值。支持此方法是为了提高诸如java.ut原创 2017-12-25 23:35:27 · 153 阅读 · 0 评论 -
spring properties的配置与使用
spring配置PropertyPlaceholderConfigurerbean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> property name="systemPropertiesModeNam原创 2018-01-11 20:41:23 · 895 阅读 · 0 评论 -
文件操作(文件过滤,压缩,导出到excel等)
文件过滤 zip压缩导出到excel原创 2017-09-26 18:55:03 · 518 阅读 · 0 评论