基于Istio的灰度发布架构方案实践之路
灰度发布,是指能够平滑过渡的一种发布方式。尤其是对于toB业务和SAAS类平台,很多情况需要根据租户或用户维度进行灰度控制,实现业务上的A/Best功能。尽管几经迭代,但仍存在系统入侵性强、新版本接口异常等问题。因此,探索了一条基于Istio的服务流量治理方案下的灵活可配置的灰度发布方案。
Wesley13 Wesley13
3年前
Java中的native关键字
一. 什么是NativeMethod  简单地讲,一个NativeMethod就是一个java调用非java代码的接口。一个NativeMethod是这样一个java的方法:该方法的实现由非java语言实现,比如C。这个特征并非java所特有,很多其它的编程语言都有这一机制,比如在C++中,你可以用extern"C"告知C++编译器去
Stella981 Stella981
3年前
Mybatis拦截器
1.介绍:   我自己理解中的mybatis拦截器,和普通拦截器一样,在执行一段程序之前对其做一些特殊处理,网上一般都是用其做分页处理、日志记录...,实现原理就是在预处理前对其进行一些处理2.简单说明:  mybatis提供了一个Interceptor接口,方便扩展所需的操作  Object intercept(Invocation in
Wesley13 Wesley13
3年前
PHP的超时实现
我们知道PHP可以设置一个脚本执行的超时时间,也就是脚本的执行时间不能超过设置的超时时间.那么PHP是怎么做到这个功能的呢?  其实PHP的超时功能利用了操作系统的定时信号来实现的,在一个请求开始时(php\_request\_startup),PHP便会利用zend\_set\_timeout()接口来设置一个定时器信号,
Stella981 Stella981
3年前
HashMap的实现原理
HashMap概述HashMap是基于哈希表的Map接口的非同步实现。此实现提供所有可选的映射操作,并允许使用null值和null键。此类不保证映射的顺序,特别是它不保证该顺序恒久不变。HashMap的数据结构在Java编程语言中,最基本的结构就是两种,一个是数组,另外一个是模拟指针(引用),所有的数
Stella981 Stella981
3年前
HTML5中Canvas元素的使用总结
HTML5中Canvas元素的使用总结  Canvas提供了开发者自定义绘图的接口,我们可以公国getContext()函数来获取绘图上下文进行绘制操作,这个函数中可以传入两个参数,其中第1个参数设置绘图上下文的类型,比较常用的是"2d",我们也可以使用"webgl"来使用webOpenGL实现3D绘制。本篇博
Easter79 Easter79
3年前
SpringBoot校验参数
前言做web开发有一点很烦人就是要校验参数,基本上每个接口都要对参数进行校验,比如一些格式校验非空校验都是必不可少的。如果参数比较少的话还是容易处理的一但参数比较多了的话代码中就会出现大量的IFELSE就比如下面这样:!(https://oscimg.oschina.net/oscnet/up5b6e114567bc70667
Stella981 Stella981
3年前
SpringBoot校验参数
前言做web开发有一点很烦人就是要校验参数,基本上每个接口都要对参数进行校验,比如一些格式校验非空校验都是必不可少的。如果参数比较少的话还是容易处理的一但参数比较多了的话代码中就会出现大量的IFELSE就比如下面这样:!(https://oscimg.oschina.net/oscnet/up5b6e114567bc70667
Stella981 Stella981
3年前
Dubbo本地存根
  在远程调用服务提供者的实现之前,如果需要做一些参数验证、缓存、判断、小功能等等,满足要求再调用服务提供者的远程服务,则我们可以通过编写一个本地存根来实现这种功能。(1)、在公共项目中或服务消费者项目中编写一个远程接口的本地存根实现。1packagecn.coreqi.service.stub;23impo
Wesley13 Wesley13
3年前
Java Concurrent包学习之BlockingQueue
BlockingQueue是一个接口,它从Queue继承而来,包含了Queue的所有功能,并在Queue的基础上提供了2个新的功能:1.检索元素时等待队列变为非空2.存储元素时等待空间变得可用。下面抄录一些JDK文档中关于BlockingQueue的介绍:BlockingQueue 可以是限定容量的。它在任意给定时间都可以有一个