自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

wuychn

学习永无止境

  • 博客(158)
  • 资源 (1)
  • 收藏
  • 关注

原创 策略迭代和价值迭代

在策略改进中,我们根据当前状态的价值函数来更新策略,使得策略更加贴近最优策略。价值迭代的基本思想是,通过迭代计算状态的价值函数,直到这些价值函数不再发生变化,从而得到最优的状态价值分布。是-4,往下走是-3.875,往左走是-4,往右走是-3.9375,我们在这四个数中选一个最大的,显然,往下走是最大的。相对于策略迭代,值迭代的计算量较小。策略迭代的大概思想是:首先给定一个任意策略,迭代贝尔曼方程,求得当前策略下的值函数,然后根据值函数更新策略,调整后的策略又可以计算值函数,这样循环往复,直到策略收敛。

2024-03-12 17:11:11 1135 2

原创 马尔可夫决策过程

马尔可夫决策过程马尔可夫过程马尔可夫性值马尔科夫过程马尔可夫奖励过程回报与价值函数贝尔曼方程马尔可夫决策过程策略马尔科夫决策过程中的价值函数状态价值函数和动作价值函数的 关系贝尔曼期望方程最优价值函数最优策略寻找最优策略贝尔曼最优方程马尔可夫过程马尔可夫性值在随机过程中,马尔可夫性质(Markov property)是指一个随机过程在给定现在状态及所有过去状态情况下,其未来状态的条件概率分布仅依赖于当前状态。即P(st+1∣st)=P(st+1∣s1,⋯ ,st)P(s_{t+1}|s_t)=P(

2024-02-29 14:02:56 626

原创 Flink Idle Source

flink 的 watermark 前进是靠数据推动的,如果没有数据进来,watermark 就无法前进。需要特别注意的是,这个配置在某些情况下可能会导致数据丢失. 例如有一个 partition 由于某些原因一直没有读到数据,idle-timeout 时间之后,下游将不再等这个 source subtask 的 watermark,这样下游的 watermark 将会前进,如果这个 partition 后续正常读到了数据,可能会因为比 watermark 晚而丢弃。active 是正常运行状态。

2022-10-18 17:22:15 3124 1

原创 MQ为什么比数据库快

假定我们的架构是一个水平分层架构,那么,用户请求就会首先由网关层接收,再到业务逻辑层,再到数据访问层,然后,再逐级返回。如下:这样的架构,称之为同步架构。如果再任意两层之间引入一个第三方(通常是MQ),就可以将同步架构转换成异步架构。一般情况下,MQ会被插到业务层和数据层之间,或者是业务层与业务层之间(业务层本身会被细化拆分成多层),如下:在异步架构的情况下,请求会先落到MQ,之后就会返回。从MQ到数据访问层,会有另外的线程去异步执行。

2022-09-19 17:14:39 3229

原创 时间轮

什么是时间轮直接上图:上面是一张时间轮的示意图,可以看到,这个时间轮就像一个钟表一样,它有刻度,图中画了9个格子,每个格子表示时间精度,比如每个格子表示1s,那么转一圈就是9s,对于钟表上的秒针来说它的最小刻度是1s,秒针转一圈就是60s。时间轮上每个格子储存了一个双向链表,用于记录定时任务,当指针转到对应的格子的时候,会检查对应的任务是否到期,如果到期就会执行链条上的任务。为什么使用时间轮我认为这个世界上任何事物的出现都有它的原因,只是大部分事物我们都无法找到它的原因而已,好在技术的出

2022-04-29 15:29:04 1152

原创 DelayQueue原理及应用场景

DelayQueue的原理DelayQueue是一个使用优先级队列实现的无界阻塞队列,加入其中的元素必需实现Delayed接口。当调用put之类的方法加入元素时,会触发接口中的compareTo方法进行排序,也就是说队列中元素的顺序是按到期时间排序的(当然,compareTo方法需要我们自己去实现,如果实现不当,可能导致队头元素是没有过期的,而其他元素可能已经过期了),而非它们进入队列的顺序。排在队列头部的元素是最早到期的,越往后到期时间赿晚。没有过期元素的话,使用poll()方法会返回null值,超时

2021-12-31 14:04:44 887

原创 线程池是如何重复利用空闲的线程来执行任务的

在Java开发中,经常需要创建线程去执行一些任务,实现起来也非常方便,但如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的效率,因为频繁创建线程和销毁线程需要时间。此时,我们很自然会想到使用线程池来解决这个问题。使用线程池的好处降低资源消耗。java中所有的池化技术都有一个好处,就是通过复用池中的对象,降低系统资源消耗。设想一下如果我们有n多个子任务需要执行,如果我们为每个子任务都创建一个执行线程,而创建线程的过程是需要一定的系统消耗的,最后肯

2021-09-05 14:55:52 864

原创 java.util.BitSet

我们已经了解了BitMap,在Java中已经提供了BitMap的实现,即java.util.BitSet类。BitSet内部维护了一个long型的数组,long的大小是8 Byte,即 64 位,所以每个元素可以存储64个数字: /** * The internal field corresponding to the serialField "bits". */ private long[] words;存储元素: /** * Set.

2021-07-22 15:34:39 400

原创 RKE添加节点报 FATA[0265] [ “10.16.17.180“ not found]

......INFO[0102] [sync] Syncing nodes labels and TaintsFATA[0265] [ "10.16.17.180" not found]Issue:https://github.com/rancher/rke/issues/1416经排查,是节点的时间与Master不同步导致,更新节点时间即可。

2021-07-19 15:48:02 654

原创 Kubernetes删除不掉命名空间

https://blog.csdn.net/weixin_44953658/article/details/115963541(一定要开启代理,kubectl proxy --port)

2021-07-16 15:37:11 1044

原创 Kubernetes核心组件运行机制

2021-07-14 17:15:48 100

原创 Istio架构概述

2021-07-13 15:20:44 114

原创 @Value注入List、数组、Set、Map

https://blog.csdn.net/weixin_39581716/article/details/111170059

2021-07-12 16:39:29 30916 4

原创 你好,Istio

2021-06-17 17:16:56 81

原创 插件配置

一、输入插件Logstash配置一定要有一个input和一个output。如果没有写明input,默认会使用logstash-input-stdin,没有写明output,默认会使用logstash-output-stdout。1.1 标准输入示例配置如下:input { stdin { add_field => {"key" => "value"} ...

2021-06-16 16:06:22 954

原创 Logstach入门

一、下载安装下载地址:https://www.elastic.co/cn/downloads/past-releases#logstash。下载完成后直接解压即可。二、Hello World1、创建配置文件 logstash.conf:input { stdin { } }output { elasticsearch { hosts => ["localhost:92...

2021-06-16 16:05:46 632

原创 hashCode真的是内存地址吗

本文内容基于 JAVA 8 HotSpot

2021-06-15 17:00:57 1023

原创 @Conditional

@Conditional是Spring 4新提供的注解,它的作用是按照指定的条件进行判断,满足条件时容器才会注册bean。@Conditional的源码如下:

2021-06-15 15:14:53 96

原创 大 数 相 乘

package com.wuychn.bigcount;public class BigCount { /** * @param args */ public static void main(String[] args) { // 太大的数不能用int,会内存溢出,所以用字符串 String str1 = "113423423"; String str2 = "999423432"; int le.

2021-06-03 17:22:56 74

原创 【分布式事务】分布式事务

一、什么是分布式事务分布式事务就是指事务的参与者、支持事务的服务器、资源服务器以及事务管理器分别位于不同的分布式系统的不同节点之上。简单的说,就是一次大的操作由不同的小操作组成,这些小的操作分布在不同的服务器上,且属于不同的应用,分布式事务需要保证这些小操作要么全部成功,要么全部失败。本质上来说,分布式事务就是为了保证不同数据存储的数据一致性。二、分布式事务产生的原因2.1 数据库分别库分表当数据库单表一年产生的数据超过1000W,那么就要考虑分库分表。这时候,如果一个操作既访问01库,又访

2021-04-25 11:36:21 8693 4

原创 除了解析域名,DNS还能干吗?

原文:https://mp.weixin.qq.com/s/LKPSbD35NQ-Kb9w8LEsLQA一个http请求,典型的执行流程是怎么样的呢?可以看到,典型流程为:(1)客户端请求dns-server,发起域名解析;(2)dns-server返回域名对应的外网ip(1.2.3.4);(3)客户端通过外网ip(1.2.3.4),访问反向代理;(4)反向代理通过内网ip(192.168.x.x),将请求分发给web-server;(5)web-server对请求进行处理;

2021-03-24 17:32:48 223

原创 Kubernetes获取客户端真实IP(docker部署nginx获取真实ip/客户端真实ip)

一、没有使用Istio的情况(需要关闭Istio):1、Service的类型为NodePort:把相应的Service的externalTrafficPolicy改为Local,默认为Cluster。但是需要使用pod所在节点的ip进行访问,不能使用集群中其他的ip(设置 service.spec.externalTrafficPolicy 为 Local 会将请求代理到本地端点,不将流量转发到其他节点,从而保留原始IP地址。)。https://www.codercto.com/a/82398.

2021-01-26 15:37:39 3267

原创 Netty获取客户端真实IP(使用Nginx代理TCP)

原文:https://blog.csdn.net/k1215400017/article/details/109247122场景描述:netty tcp 服务端与客户端进行交互,之前采用服务器直连的方式,即:客户端 -----------> 服务端(tcp)此时服务端可以通过 ctx.channel().remoteAddress() 获取客户端IP进行相关的业务使用。但是后续随着客户端增加,服务端就上来了,此时使用nginx代理的方式增加netty服务端数量一次来处理更多的连接数

2021-01-21 15:12:51 5586

原创 使用Redis生成全局唯一自增ID

@Componentpublic class RedisSequence { @Autowired private RedisTemplate<String, Serializable> redisTemplate; public long generate(String key) { RedisAtomicLong redisAtomicLong = new RedisAtomicLong(key, redisTemplate.getConnec.

2020-12-29 19:52:31 2674

原创 Spring Boot动态创建Bean

通常我们是使用@Component等注解某个类让其被Spring IoC容器扫描,或者使用@EnableXXX(@Import)注解来导入,或者在META-INF/spring.factories中指定配置类(key是org.springframework.boot.autoconfigure.EnableAutoConfiguration)。但是,某些情况下,我们需要更加灵活的创建Bean,此时可以使用如下的形式:public void register() { ApplicationC

2020-12-23 13:32:47 2172

原创 使用Nginx代理后出现426

在location中加入:proxy_http_version 1.1;proxy_set_header Connection "http://www.manongjc.com/detail/12-iblkciiutcyenwg.html

2020-12-11 15:48:02 3596 2

原创 分治法(Divide and Conquer)

121

2020-11-03 11:04:37 1313

原创 回溯法(八皇后)

21

2020-11-03 11:01:21 154

原创 动态规划(最长公共子序列、最长公共子串)

package com.wuychn.lcs;public class LCS { public int findLCS(String A, String B) { int n = A.length(); int m = B.length(); char[] a = A.toCharArray(); char[] b =...

2020-11-03 10:20:02 109

原创 基数排序

完全

2020-09-01 14:17:23 82

原创 Nginx的Docker镜像读取环境变量

在nginx 1.19之后的版本中,nginx的Docker镜像可以读取环境变量的值,具体方式如下:1、在/etc/nginx/templates/目录下创建一个*.template文件,比如default.conf.template(可以挂载到容器的指定目录)2、在default.conf.template文件中,使用${}将环境变量包含起来,比如:listen ${NGINX_PORT};3、启动docker的时候,使用如下的方式为环境变量赋值:docker run

2020-07-31 11:20:21 2931

原创 查看运行中的容器的启动参数

docker run --rm -v /var/run/docker.sock:/var/run/docker.sock assaflavie/runlike YOUR-CONTAINER-NAME例如:docker run --rm -v /var/run/docker.sock:/var/run/docker.sock assaflavie/runlike csf-redis结果:docker run --name=csf-redis --hostname=7be1611bf865.

2020-07-14 14:37:26 256

原创 Gitlab CICD

本文将概述持续集成、持续交付和持续部署的概念,并介绍GitLab CI / CD,最后将Gitlab CI/CD与Jenkins做简单的对比。一、CI/CD简介软件开发的连续方法是建立在自动执行脚本的基础上的,以最小化在开发应用程序时引入错误的机会。从新代码的开发到部署,它们需要的人工干预更少,甚至根本不需要干预。它涉及在每个小的迭代中不断地构建、测试和部署代码更改,从而减少了基于有缺陷的或失败的以前版本开发新代码的机会。CI/CD主要包含以下三种。1.1 持续集成(Continuous

2020-05-29 09:55:53 483

原创 HashMap为什么是线程不安全的⭐

https://blog.csdn.net/loveliness_peri/article/details/81092360主要是同一个hashmap在多线程情况下执行扩容方法后,再去调用Get方法可能会发生死循环的。

2020-04-27 17:21:00 126

原创 Java字节码增强

原文地址:https://mp.weixin.qq.com/s/Wa4JKQ5NAN_4_TVSO67ehQ一、字节码1.1 什么是字节码Java之所以可以“一次编译,到处运行”,一是因为JVM针对各种操作系统、平台都进行了定制,二是因为无论在什么平台,都可以编译生成固定格式的字节码(.class文件)供JVM使用。因此,也可以看出字节码对于Java生态的重要性。之所以被称之为字节码,...

2020-04-27 11:18:56 1348

原创 Spring Boot yml读取环境变量的值

公司项目有个需求,某个配置值需要从环境变量读取(docker),搜索了一下,原来在SpringBoot中非常简单,使用如下方式即可:xxx: yy: ${JAVA_HOME}当然,如果环境变量JAVA_HOME不存在,我们也可以指定一个默认值:xxx: yy: ${JAVA_HOME:zzz}以上的zzz就是当环境变量JAVA_HOME不存在时的默认值。...

2020-04-22 15:01:15 5211

原创 四则运算表达式求值(后缀表达式、逆波兰表示法)

一、后缀(逆波兰)表示法小学的时候我们就学过数学运算的规则:先乘除后加减,从左算到右,先括号内后括号外。对于9 + (3 -1) ×3 + 10 ÷ 2这样一个表达式,我们很快就知道结果是20。但是在计算机内部,是如何计算的呢?20世纪50年代,波兰逻辑学家Jan Łukasiewicz想到了一种不需要括号的后缀表示法,我们称之为逆波兰表示(Reverse Polish Notatio...

2020-04-19 19:02:53 846

原创

121

2020-04-15 21:32:34 512

原创

21

2020-03-24 22:12:06 104

原创

21

2020-03-22 16:16:20 487

[jojozhai]Spring Security开发安全的REST服务源码完整版

Spring Security开发安全的REST服务源码完整版,注意是源码,没有视频

2018-11-22

空空如也

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

TA关注的人

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