自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

grant167的专栏

喫茶去

  • 博客(45)
  • 资源 (2)
  • 收藏
  • 关注

原创 灰度发布--Spring Cloud Gray

特性支持灰度调用通过feign,restTemplate(通过注解@LoadBalanced 基于ribbon实现负载均衡)调用,支持灰度追踪支持自动注册为灰度服务,默认不自动注册优先走灰度服务,其次走正常服务支持修改服务状态,以此实现破窗能力通过破窗能力,实现蓝绿发布其它待补充介绍设计思想见Spring Cloud Gray - 微服务灰度中间件结构划分spring-cloud-gray-client定义了一套灰度路由决策模型,灰度信息追踪模型,以及和spring-clo

2021-08-08 12:11:42 1384 2

原创 主键ID生成方案--类snowflake(雪花算法)方案

雪花算法是什么?雪花算法最早是Twitter内部使用的分布式环境下的唯一ID生成算法,于2014年开源。雪花算法的特性能满足高并发分布式系统环境下ID不重复基于时间戳,可以保证基本有序递增安全性,无规则,不顺序,防止数据被轻易爬取雪花算法的组成使用雪花算法生成的主键,二进制表示形式包含4部分,从高位到低位分表为:1bit符号位、41bit时间戳位、10bit工作进程位以及12bit序列号位。符号位,预留的符号位,恒为零。时间戳位(41bit)工作进程位是java进程内唯一的,10位

2020-11-01 16:51:19 4610

原创 常见负载均衡算法及路由策略

总是第一个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 1111 1

原创 集合类的数据一致性

数据一致性概念数据一致性,通常指数据在某个时间点多个副本中的一致性。比如同一份数据如果既存在关系型数据库汇中,又存在于Redis中,那么如何来保证它的双写一致性呢?除了这种时间点的一致性问题,在数据库中也会要求具备一致性,即ACID中的C(Consistency)。在分布式系统中,通常为了保证AP而采用最终一致性,即BASE理论中的E(Eventual Consitency)。一致性级别强一致性,在任意时刻,所有副本中的数据是一样的。弱一致性,相对于强一致性,即可能存在某些副本中数据是不一致的。

2020-09-20 15:04:32 549

原创 通过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 1465

原创 robots协议限制爬虫

Robots 协议(也称为爬虫协议等)的全称是「网络爬虫排除标准」(Robots Exclusion Protocol)。网站通过 Robots 协议告诉搜索引擎哪些页面可以抓取,哪些页面不能抓取。

2020-09-06 22:51:29 5729

原创 flyway简介

flyway是什么,为什么需要flywayFlyway是一款管理并跟踪数据库迁移(migrate)的数据库版本管理工具。它可以像SVN管理不同人的代码那样,管理不同人的sql脚本,从而做到数据库同步。它可以帮助我们在不同环境保持数据库的同步,减少手工操作,同时也减少了遗漏的机会。flyway可以集成在项目中,可以与Spring 框结合。在项目发版时,自动执行数据库脚本,无需人为执行数据库同步操作。flyway工作原理一言以蔽之:flyway通过历史记录表(flyway_schema_histor

2020-09-02 00:11:56 8902 1

原创 flyway项目中集成方式

项目集成方式springboot&springmvc&多数据源配置方式注意事项文件路径、命名方式、repair方式、回调时间、并发支持

2020-09-02 00:10:40 1951

原创 模板方法模式

概念模板方法模式属于行为型模式。它定义了一个操作中算法的骨架, 并将一些步骤延迟到子类中。模板方法模式可以让子类在不改变算法整体结构的情况下,重新定义算法中的某些步骤。模板方法模式的优点如下:方法分为不变部分、可变部分。不变部分的算法封装在父类中实现,可变部分算法由子类继承实现,便于在子类中继续扩展。这符合开闭原则。在父类中提取了公共的部分代码,便于代码复用。缺点如下:对每个不同...

2020-04-22 17:48:53 144

原创 单例模式

单例的概念、创建方式,序列化&克隆&反射对单例的破坏,单例与垃圾回收、spring

2019-12-07 23:07:34 122

原创 mysql ONLY_FULL_GROUP_BY

背景 select user_id, max(create_time) as create_time,is_success from user_login_log group by user_id上面的sql与上篇博文一致,由于之前接触过其它数据库,比如sqlserver,oracle,初看这条语句时,我认为它是有问题的,因为is_success并不在group by子句中。直到今天,...

2019-11-24 02:07:30 222

原创 mysql派生表合并

前几天笔者在CR一段sql时,发现一处逻辑问题,原sql如下: select user_id, max(create_time) as create_time,is_success from user_login_log group by user_id这里是想取分组后最新的一条记录,但事实上is_success字段与最新时间并不是同一条记录于是,改写如下:select user_i...

2019-11-21 00:37:19 448

原创 工厂模式

概念工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的方式。主要思想就是替代new为我们创建对象,工厂可以选择创建对象的方法,对这个构造过程(创建方法)进行选择的逻辑就是工厂模式的逻辑。 这样也是为了给以后的系统带来更大的可扩展性,实现低耦合。工厂模式有三种,简单工厂模式,工厂方法模式,静态工厂模式。先说下...

2019-11-14 00:13:42 72

原创 ThreadPoolExcutor 线程池

昨天在查看项目时,偶尔看到代码里通过静态代码块实现的单例模式的线程池,如下:public static final ThreadPoolExecutor threadPool;static { int nCpu = Runtime.getRuntime().availableProcessors(); int maxPoolSize = (2 * nCpu) + 1; ...

2019-11-09 22:38:59 446

原创 mysql排序不稳定问题

现象当order by中的列具有相同的值时,每次查询到的顺序存在不一致的现象,如下:类似的,在分页排序中,有的数据会在页面连续出现多次,有的数据则在数据中一次也不能出现。为什么会出现此现象PageHelper首先将前端传递的参数保存到page这个对象中,接着将page的副本存放入ThreadLoacl中,这样可以保证分页的时候,参数互不影响,接着利用了mybatis提供的拦截器,取得T...

2019-11-03 16:23:59 2990

原创 RocketMQ消费重试问题

异常现象监控日志展示如下:[2019-10-30 14:31:23.339 INFO ] [ConsumeMessageThread_7] (com.xxx.service.mq.MQConsumerService:93) - 消费消息:msgId=0A064C3E000179C63692734B339201B0 topic=topic_xxx tag=yyy reconsumeTimes=1...

2019-10-30 23:13:51 2551

原创 观察者模式

观察者模式,是对象行为型模式中的一种。观察者模式的主旨是定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。观察者模式也可以称为发布/订阅模式,发布者发布信息,订阅者获取信息,订阅了就能收到信息,没订阅就收不到信息。观察者模式提供了一种对象设计,让主题和观察者之间耦合度降得很低,为什么呢?关于观察者的一切,主题只知道观察者实现了Obser...

2018-03-21 14:32:39 130

原创 ThreadLocal 线程复用的问题

Java中的ThreadLocal类允许我们创建只能被同一个线程读写的变量。因此,如果一段代码含有一个ThreadLocal变量的引用,即使两个线程同时执行这段代码,它们也无法访问到对方的ThreadLocal变量。在我们日常 Web 开发中难免会遇到需要把一个参数层层的传递到最内层的情况,但是中间层可能根本不需要使用这个参数,因此这样我们完全没有必要在每一个方法里面都传递这样一个通用的参数。...

2018-03-19 17:39:58 3873

原创 Redis基本类型及Jedis对其的操作

Redis数据结构类型简介Redis是一种高级的key:value存储系统,其中value支持五种数据类型:String、Hash、List、Set和Sorted Set。 每种数据类型可以用多种方式编码:字符串(String)可以被编码为 raw (常规字符串) 或者int (用字符串表示64位无符号整数这种编码方式是为了节省空间).列表类型(List)可以被编码为ziplist 或...

2018-03-17 16:33:51 1071

转载 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 212

原创 Maven配置详解

setting.xml主要用于配置maven的运行环境等一系列通用的属性,是全局级别的配置文件 所在目录1. ${M2_HOME}/conf/settings.xml2. ${user.home}/.m2/settings.xml //需自1处拷贝样例: settings xmlns="http://maven.apache.org/SETTINGS/1.0.0

2018-01-26 16:48:55 270

原创 spring properties的配置与使用

spring配置PropertyPlaceholderConfigurerbean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> property name="systemPropertiesModeNam

2018-01-11 20:41:23 850

原创 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 150

原创 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 130

原创 SQL

SQL-执行顺序(8)SELECT (9)DISTINCT (11)<Top Num> <select list>(1)FROM [left_table](3)<join_type> JOIN <right_table>(2)ON <join_condition>(4)WHERE <where_condition>(5)GROUP BY <group_by_list>(6)WITH <

2017-12-12 19:50:07 180

原创 js常用方法总结

多级复选框联动效果图: vm:#foreach($categoryGrand in ${categoryList}) #if($!{categoryGrand.canChoose}==0) #set($visibility = "hidden") #else #set($visibility = "visible") #end <div class="top">

2017-12-11 20:21:43 202

原创 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 240

原创 Mybatis分页插件PageHelper

maven依赖<dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper</artifactId> <version>4.0.3</version></dependency>在Mybatis配置xml中配置拦截器插件<plugins> <!-- com.github.pag

2017-12-08 11:47:52 144

原创 Wdatepicker日期控件

My97DatePicker是很不错的一个日期选择插件,体积只有几十k但是功能非常强大,能满足很多苛刻的要求。 官网:http://www.my97.net/各目录及文件的用途:目录lang 存放语言文件 目录skin 存放皮肤的相关文件 calendar.js 日期库主文件 WdatePicker.js 配置文件,在调用的地方仅需使用该文件调用模式触发WdatePicker函数来调用弹出日

2017-12-07 11:40:48 415

原创 gson&&fastjson

Gson String personJsonInfo={&amp;amp;quot;&amp;amp;quot;:&amp;amp;quot;&amp;amp;quot;};Gson gson = new Gson();//Gson gson = new GsonBuilder().excludeFieldsWithoutExposeAnnotation().create();//排除掉bean中没有Expose注解的属性Person person = gson.fr

2017-12-05 21:25:58 232

原创 Velocity快速入门教程-脚本语法详解

1.变量(1)变量的定义:#set($name = "hello") 说明:velocity中变量是弱类型的。当使用#set 指令时,括在双引号中的字面字符串将解析和重新解释,如下所示:#set($directoryRoot = "www" )#set($templateName = "index.vm" )#set($template = "$directoryRoot/$templ

2017-12-04 17:27:09 240

原创 cookie

/** * 写cookies函数 */ function setCookie(sName, sValue, days) { var expires = new Date(); expires.setTime(expires.getTime() + parseInt(days) * 24 * 60 * 60 * 1000); document.cookie =

2017-11-30 14:35:09 132

原创 Cron表达式详解

在线表达式生成器:http://cron.qqe2.com/Cron表达式是一个字符串,字符串以5或6个空格隔开,分为6或7个域,每一个域代表一个含义,Cron有如下两种语法格式: Seconds Minutes Hours DayofMonth Month DayofWeek Year

2017-10-12 18:39:20 204

原创 定时任务

1、Elastic-Job的SimpleJob类型作业2、Spring集成Quartz定时任务

2017-10-12 17:29:09 458

原创 Spring线程池ThreadPoolTaskExecutor

配置<bean id="taskExecutor" class="org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor"> <!-- 核心线程数,维护线程的最少数量 --> <property name="corePoolSize" value="5"/> <!-- 最大线程数,维护线程的最大数量 -

2017-10-11 15:40:29 866

转载 优化网站性能必备的6种架构方案

前言 一个成熟的大型网站(如淘宝、天猫、腾讯等)的系统架构并不是一开始设计时就具备完整的高性能、高可用、高伸缩等特性的,它是随着用户量的增加,业务功能的扩展逐渐演变完善的,在这个过程中,开发模式、技术架构、设计思想也发生了很大的变化,就连技术人员也从几个人发展到一个部门甚至一条产品线。所以成熟的系统架构是随着业务的扩展而逐步完善的,并不是一蹴而就;不同业务特征的系统,会有各自的侧重点,例如:淘

2017-10-11 11:33:50 330

原创 java集合类总结

Java集合类提供了一套设计良好的支持对一组对象进行操作的接口和类。Java集合类里面最基本的接口有: ● Collection:代表一组对象,每一个对象都是它的子元素。 ● Set:不包含重复元素的Collection。 ● List:有顺序的collection,并且可以包含重复元素。 ● Map:可以把键(key)映射到值(value)的对象,键不能重复。

2017-10-10 16:30:53 269

转载 Java BigDecimal详解

原文1.引言        借用《Effactive Java》这本书中的话,float和double类型的主要设计目标是为了科学计算和工程计算。他们执行二进制浮点运算,这是为了在广域数值范围上提供较为精确的快速近似计算而精心设计的。然而,它们没有提供完全精确的结果,所以不应该被用于要求精确结果的场合。但是,商业计算往往要求结果精确,这时候BigDecimal就派上大用场啦。 2.BigDecim

2017-10-10 15:14:27 176

原创 IO流

Java流类图结构: 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象。即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输特性将流抽象为各种类,方便更直观的进行数据操作。 流的分类: 1.按照处理数据大小:字节流和字符流 2.按照流的方向:输入流和输出流 3.按照功能分为:分为节点流和处理流四个基本流: 输入流 输出流 字符流 Reade

2017-10-09 17:56:50 200

原创 枚举

/* * 可以把 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 917

丰田汽车召回问题--数学建模论文

汽车召回问题 问题重述 模型建立与求解 模型评价与推广 参考文献

2010-07-05

汽车召回的总体价值评估

数学建模 市场价值 召回制度 召回成本 汽车销售 信用度

2010-07-05

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除