- 博客(43)
- 资源 (4)
- 收藏
- 关注
原创 正则表达式随笔
非贪婪匹配在非贪婪匹配的部分后加?for example:字符串: "public"."test"正则 (?<=\").*(?=\") 匹配结果public"."test正则 (?<=\").*?(?=\") 匹配结果public.test大小写替换\U为大写替换\L为小写替换for example:字符串: "pUblic"."TeSt"正则表达式 匹配结果 替换文本 结果 (?<=\").*?(?..
2021-03-29 09:58:49 128
原创 soul 之 ratelimiter 插件源码分析
首先看入口的 RateLimiterPlugin插件的doExecute方法@Overrideprotected Mono<Void> doExecute(final ServerWebExchange exchange, final SoulPluginChain chain, final SelectorData selector, final RuleData rule) { final String handle = rule.getHandle(); final
2021-02-05 23:12:37 230
原创 【soul】网关之【ratelimiter】插件之初体验
ratelimiter是一款限流插件,限流的级别可以精确到接口级,参数级。使用Redis的令牌桶算法1. 启动【soul-admin】和【soul-bootstrap】2.登录管理界面,开启rate-limiter插件3. 配置用户测试的选择器【ratelimiter-test】4. 配置规则【ratelimiter-test-rule】5. 启动【soul-examples-http】6. 访问 /http/order/findByIdcurl http://..
2021-02-05 00:28:36 278
原创 soul之hystrix源码分析
首先,阅读HystrixPlugin源码@Slf4jpublic class HystrixPlugin extends AbstractSoulPlugin { @Override protected Mono<Void> doExecute(final ServerWebExchange exchange, final SoulPluginChain chain, final SelectorData selector, final RuleData rule) {
2021-02-04 01:26:48 132
原创 【soul】之【hystrix】初体验
1. 打开hystrix2. 【soul-bootstrap】添加hystrix依赖<dependency> <groupId>org.dromara</groupId> <artifactId>soul-spring-boot-starter-plugin-hystrix</artifactId> <version>${project.version}</version></d
2021-02-02 08:06:58 238
原创 soul sofa 插件分析
主要分析SofaPlugin 的代码protected Mono<Void> doExecute(final ServerWebExchange exchange, final SoulPluginChain chain, final SelectorData selector, final RuleData rule) { String body = exchange.getAttribute(Constants.SOFA_PARAMS); // 获取请求体 SoulC.
2021-01-31 01:14:08 138
原创 2021-01-30
1. 启动【soul-admin】2. 登录管理界面,打开 sofa 插件3. 在【soul-bootstrap】里添加如下依赖<dependency> <groupId>com.alipay.sofa</groupId> <artifactId>sofa-rpc-all</artifactId> <version>${sofa.rpc.version}</version><
2021-01-30 02:16:57 213
原创 【soul-admin】SpringCloud元数据注册
在SoulClientController中提供了如下接口:/*** Register spring cloud string.** @param springCloudRegisterDTO the spring cloud register dto* @return the string*/@PostMapping("/springcloud-register")public String registerSpringCloud(@RequestBody final SpringCl
2021-01-29 03:14:46 342 1
原创 soul数据上传之dubbo
【soul-admin】数据获取【soul-admin】开放的dubbo注册接口/*** Register dubbo string.** @param metaDataDTO the meta data dto* @return the string*/@PostMapping("/dubbo-register")public String registerRpc(@RequestBody final MetaDataDTO metaDataDTO) { r
2021-01-28 00:04:06 257
原创 soul数据上传-HTTP
@PostMapping("/springmvc-register") public String registerSpringMvc(@RequestBody final SpringMvcRegisterDTO springMvcRegisterDTO) { return soulClientRegisterService.registerSpringMvc(springMvcRegisterDTO); } @Override @Transac.
2021-01-27 02:31:14 246
原创 soul之http长轮询数据同步
1.【soul-admin】开始http长轮询数据同步soul: sync: http: enabled: true2.【soul-bootstrap】中添加http长轮询<dependency> <groupId>org.dromara</groupId> <artifactId>soul-spring-boot-starter-sync-data-http</artifactId> ...
2021-01-26 00:42:41 252
原创 soul数据同步之nacos(2)
【soul-boostrap】如何更新数据上节第3步开启了如下配置:@Configuration@ConditionalOnClass(NacosSyncDataService.class)@ConditionalOnProperty(prefix = "soul.sync.nacos", name = "url")@Slf4jpublic class NacosSyncDataConfiguration { /** * Nacos sync data service.
2021-01-24 03:55:59 442
原创 soul数据同步nacos(1)
1. 在【soul-admin】中开启zookeeper同步soul: sync: nacos: url: localhost:8848 namespace: 1c10d748-af86-43b9-8265-75f487d20c6c acm: enabled: false endpoint: acm.aliyun.com namespace: accessKey: ...
2021-01-23 02:05:42 238 1
原创 soul数据同步之zookeeper
1. 在【soul-admin】中开启zookeeper同步soul: sync: zookeeper: url: localhost:2181 sessionTimeout: 5000 connectionTimeout: 20002. 在【soul-bootstrap】中添加zookeeper数据同步依赖<dependency> <groupId>org.dromara</groupId&...
2021-01-22 01:33:46 153
原创 soul之websocket数据同步
soul数据同步之websocket1. 在【soul-admin】中开启websocket同步soul: sync: websocket: enabled: true2. 在【soul-bootstrap】中添加websocket数据同步依赖<dependency> <groupId>org.dromara</groupId> <artifactId>soul-
2021-01-21 01:04:37 1150 3
原创 soul SpringCloud插件初体验
soul网关之SpringCloud插件1.在本地服务中引入SpringCloud插件依赖<dependency> <groupId>org.dromara</groupId> <artifactId>soul-spring-boot-starter-client-springcloud</artifactId> <version>${soul.version}</version>
2021-01-20 01:53:21 217
原创 soul带权重的RoundRobin算法
soul的divide插件负载均衡算法之权重轮询算法众所周知,轮询算法是每一次请求访问的服务器是在上一次请求访问的服务器的下一个位置。而soul网关提供了带有权重的轮询。public class RoundRobinLoadBalance extends AbstractLoadBalance { private final int recyclePeriod = 60000; private final ConcurrentMap<String, Concurren
2021-01-19 00:29:59 758
原创 带着问题读源码-soul(2021-01-16)
### 带着问题读源码系列之Dubbo插件像往常一样启动 【soul-admin】 和 【soul-bootstrap】 。然后使用 【soul-examples-apache-dubbo-service】中的 org.dromara.soul.examples.apache.dubbo.service.TestApacheDubboApplication 来注册服务。这是就可以打开 管理界面 查看dubbo插件的信息。发现已经注册完毕了。然后使用soul提供的http请求访问curl
2021-01-17 02:22:14 365
原创 带着问题读源码-soul(2021-01-15)
带着问题读源码系列-soul的本地服务筛选在上一期中,了解到soul的http请求是通过dividePlugin插件完成对本地服务的筛选。总体来说,可以分为两步:1. 选出符合调用要求的服务列表2. 对服务的列表进行负载均衡下面对两部分源码进行分析。在DividePlugin插件中,可以轻松找到对应的步骤。final SoulContext soulContext = exchange.getAttribute(Constants.CONTEXT);assert soulC
2021-01-16 03:26:59 208
原创 带着问题读源码-soul(2021-01-14)
下载编译git clone git@github.com:dromara/soul.gitcd soulmvn clean package install -Dmaven.test.skip=true -Dmaven.javadoc.skip=true -Drat.skip=true -Dcheckstyle.skip=true运行1. 启动一个127.0.0.1:3306,用户名为root,密码为空的mysql实例,用于保存soul元数据2. 使用idea打开maven项目sou
2021-01-14 17:59:32 214
原创 安装thrift一直报失败
Making all in javamake[3]: Entering directory '/opt/thrift-0.13.0/lib/java'./gradlew assemble-Prelease=true-Pthrift.version=0.13.0--console=plainTask :copyDependencies UP-TO-DATETask :comp...
2019-11-12 14:18:00 1012
转载 读郑雨迪《深入拆解Java虚拟机》 -- 第八讲 JVM是如何实现invokedynamic的
本文转自https://time.geekbang.org/column/article/12564以前,我们赛马 只能由马参加,但是对于一些年轻人里流行的鸭子类型(duck typing),只要跑起来像马的,它就是一只马,也可以参加赛马比赛。class Horse { public void race() { System.out.println("Horse....
2018-09-16 20:34:49 1335 2
转载 读郑雨迪《深入拆解Java虚拟机》 -- 第七讲 JVM是如何实现反射的
本文转自https://time.geekbang.org/column/article/12192反射是Java语言中一个相当重要的特性,它允许正在运行的Java程序观测,甚至是修改程序的动态行为。举例来说,我们可以通过Class对象枚举该类中所有的方法,我们还可以通过Method.setAccessible(位于java.lang.reflect包,该方法继承自AccessibleOb...
2018-08-25 14:42:16 952 5
转载 Java反射API简介
通常来说,使用反射API的第一步便是获取Class对象。在Java中常见的有这么三种。使用静态方法Class.forName来获取 调用对象的getClass()方法 直接用类名 + ".class"来访问。对于基本类型来说,它们的包装类型(wrapper classes)拥有一个名为“TYPE”的final静态字段,指向该基本类型对应的Class对象。例如,Integer.TYPE指向...
2018-08-25 14:38:59 1173
转载 读郑雨迪《深入拆解Java虚拟机》 -- 第六讲 JVM是如何处理异常的
本文转自https://time.geekbang.org/column/article/12134众所周知,异常处理的两大组成要素是抛出异常和捕获异常。这两大要素共同实现程序控制流的非正常转移。抛出异常可分为显示和隐式两种。显示抛异常的主体是应用程序,它指的是在程序中使用“throw”关键字,手动将异常实例抛出。隐式拋异常的主体则是Java虚拟机,它指的是Java虚拟机在执行过程中,碰到...
2018-08-20 10:17:31 2469 1
转载 读郑雨迪《深入拆解Java虚拟机》 -- 第五讲 JVM是如何执行方法调用的?(下)
本文转自https://time.geekbang.org/column/article/12098这里我们来聊一聊Java虚拟机中虚方法调用的具体实现。首先,我们来看一个模拟出国边检的小例子abstract class 乘客{ abstract void 出境(); @Override public String toString(){...}}cla...
2018-08-17 15:02:42 693 1
原创 算法设计与分析自学 《算法设计分析的数学基础》习题
1.求解递归方程T(n) = T(5n/6) + n对于Master定理而言,a=1,b=5/6,f(n)=n2.证明或否证明3.证明:设k 是任意常数正整数,则对,欲,必,即容易证得,,所以当时,对即当时,,所以4.证明:不妨设,则,其中综上所述,5.求解递归方程令由于题中没有给出的取值,所以我只能做到这步了。...
2018-08-12 15:09:44 1813 2
转载 读郑雨迪《深入拆解Java虚拟机》 -- 第四讲 JVM是如何执行方法调用的?(上)
本文转自https://time.geekbang.org/column/article/11539在写Java代码的时候,我们可能会遇到可变长参数方法的重载造成的坑。(官方文档建议避免重载可变长参数方法)实例代码如下void invoke(Object obj, Object... args){...}void invoke(String s, Object obj, Objec...
2018-08-12 10:52:56 717 4
原创 Angrew Machine Learning ex8
estimateGaussianmu = mean(X)';sigma2 = mean((X - mu') .^ 2);selectThresholdpredictions = (pval < epsilon);tp = sum(predictions .* yval);rec = tp / sum(yval);prec = tp / sum(predictions)...
2018-08-08 13:21:16 608
转载 读郑雨迪《深入拆解Java虚拟机》 -- 第三讲 Java虚拟机是如何加载Java类的
本文转自https://time.geekbang.org/column/article/11523我们把Java虚拟机加载Java类比作盖房子。那么我们盖房子,首先需要请建筑师出个方案,然后去市政部门报备、验证,通过后才可以开始盖房子。盖好房子还要装修,之后才能住人。从class文件到内存中的类,按先后顺序需要经过加载、链接以及初始化三大步骤。其中,链接过程中同样需要验证;而内存中的类没...
2018-08-05 00:50:07 685 2
原创 Angrew Machine Learning ex7
findClosestCentroidsfor i=1:size(X,1) result = 99999; for j=1:K temp = sum((X(i, :) - centroids(j, :)) .^ 2); if temp < result result = temp; idx(i) = j; end end...
2018-08-04 15:02:04 603
转载 读郑雨迪《深入拆解Java虚拟机》 -- 第二讲 Java的基本类型
本文转自https://time.geekbang.org/column/article/11503 Java不仅是一门面向对象的语言,它还引进8种基本数据类型来支持数值运算。Java这么做的原因多半是工程上的考虑,因为使用基本数据类型可以在内存使用和运算效率两方面获得显著提升。今天,我们来了解一下基本数据类型在Java中的实现public class Foo { publi...
2018-07-31 22:22:42 1557 2
原创 Angrew Machine Learning ex6
gaussianKernelsim = exp(-sum((x1 - x2) .^ 2) / (2 * sigma ^ 2)); dataset3Paramsrel_vec = [0 0 9999];val_vec = [0.01 0.03 0.1 0.3 1 3 10 30];for i = 1:length(val_vec) for j = 1:length(val_v...
2018-07-26 21:36:09 545
转载 读郑雨迪《深入拆解Java虚拟机》 -- 第一讲 Java代码是怎么运行的
本文转自https://time.geekbang.org/column/article/11289Java代码有很多运行方式。在开发工具中运行 双击jar文件运行 在命令行中运行 在网页中运行当然,上述运行方式都离不开JRE, 也就是Java运行时环境。JRE仅包含Java程序的必须组件,包括Java虚拟机以及Java核心类库等。而我们Java程序员经常接触到的JDK(J...
2018-07-21 16:45:05 4750 3
原创 Angrew Machine Learning ex5
linearRegCostFunctionh = X * theta; %Linear Regression doesn't need sigmoid while Logistic Regression need it;theta(1,:) = 0; %This is the same with the file 'costFunctionReg.m' of ex2 except thi...
2018-07-19 20:07:01 632
原创 Angrew Machine Learning ex4
sigmoidGradient.mt = sigmoid(z);g = t .* (1 .- t);randInitializeWeights.m% Randomly initialize the weights to small valuesepsilon_init = 0.12;W = rand(L_out, 1 + L_in) * 2 * epsilon_init - ...
2018-07-17 12:33:54 440
asmtools.jar
2018-07-21
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人