自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(52)
  • 资源 (7)
  • 收藏
  • 关注

原创 【dubbo triple provider 底层流转】

dubbo triple provider 底层流转

2023-06-27 15:49:30 267

原创 关于业务代码扩展点保留的想法

关于业务代码扩展点保留的想法

2022-10-01 11:49:04 225

原创 jvm 指令意义

Java 指令

2022-09-03 13:29:04 180

原创 spring的一些设计理念(个人感悟)

spring的外层组件可以对内层组件及其管理的内容进行改变。越是大的范围,改变越多。

2022-08-16 08:18:19 165

原创 项目分支管理

分支管理目的:1、更好的管理代码,避免代码混乱2、出现问题可以及时回退到稳定的版本分支类型master分支: 1、主版本分支 2、每次往这个分支合并代码 需要至少2个开发 review代码 3、发布前要打tagdevelop分支: 1、master代码的副本 2、日常迭代的分支 从这个分支上拉release分支: 1、回归测试分支 2、从develop拉取 且要合并当前开发分支 3、发布时候这个分...

2021-12-25 09:35:53 553

原创 rabbitmq confirm机制路由不到队列无法触发handleNack

以下是官网原话https://www.rabbitmq.com/confirms.html#when-publishes-are-confirmedWhen Will Published Messages Be Confirmed by the Broker?For unroutable messages, the broker will issue a confirm once the exchange verifies a message won't route to any queu...

2020-10-28 23:49:29 828

原创 什么的代码才算好代码

毕业三年,说实话到现在 还是很浮躁 今天学学这个 明天学学那个,虽然一方面和自己的自控能力有关,但其实跟多的是有点着急吧 被这些个焦虑的软文给带的。什么样的代码算是好代码?我曾想过会有这么一本书 教我怎么写好 一个项目 从技术选型 到模块设计 到包命名 到类命名 到方法字段命名,找了找没发现 后来看到一本 叫做 代码质量管理的书(大致这个书名)看了看里面的内容 还是和我期望的有所偏颇。因为我现在 自己写一个项目 后端就我一个,慢慢的代码行数上来了 逻辑也变得复杂起来觉得 有必要这么弄一下了,不然..

2020-09-19 21:51:33 952

原创 Ubuntu的shell脚本踩keng-unexpected operator

sh-test-02.shif [ "y" == "y" ] ; then echo "ok"; fi如上图简单的shell脚本我们用如下执行zywgp@zywgp-Lenovo-G50-70:~/bin$ sh sh-test-02.sh sh-test-02.sh: 2: [: y: unexpected operatorzywgp@zywgp-Lenovo-G50-70:~/bin$ 在用其他方式分别执行zywgp@zywgp-Lenovo-G50-...

2020-08-25 00:10:17 160

原创 并发修改数据的处理

场景有一个数据是中心数据,另外一些数据是次要的数据,这些数据的修改是不确定的,并且他们的修改,会引起一些中心的数据的变化,次要数据进行修改,与中心数据的一起发生的变动要放在一个事务里面,但是次要数据的修改可能会是不同的用户发起的 换言之可能是并行的。解决方案1. 首先对于中心数据而言,不能被并行修改,这样的修改会有类似 ABA问题的产生,锁是必须的2.锁可以使用数据库层面的 也可以使用代码层面的,不过一般不推荐使用数据库层面的,这里使用代码层面的3.锁的用法 1. 在将要对中心数..

2020-06-20 10:28:24 788

原创 类加载的处理

java的类加载处理的原则是 用的时候再加载 如果在main方法的启动的时候 有import或者 在后续的延伸的类中 有用到这个类 就会把这个类加载进去 具体可以通过参数-XX:+TraceClassLoading 进行查看。我们有如下类 a.A.java b.B.java 我们在B.java 里面写一个main方法 不引入A.java的时候 在控制台是不会打印加载A的信息的...

2019-12-09 14:41:30 169

原创 引入jar依赖却无法import类

* compile,缺省值,适用于所有阶段,会随着项目一起发布。* provided,类似compile,期望JDK、容器或使用者会提供这个依赖。如servlet.jar。* runtime,只在运行时使用,如JDBC驱动,适用运行和测试阶段。* test,只在测试时使用,用于编译和运行测试代码。不会随项目发布。* system,类似provided,需要显式提供包含依赖的...

2019-09-21 11:42:44 1506

原创 classloader的工作模式

先说一下我的得出的结论 : 1. 在java中 当你用一个类加载器 去加载一个类的时候 这个类里面所有的出现的过得类 都会通过这个类加载器加载在这个类后续 的操作中,只要是有由这个类衍生出的 那么涉及的类 都由这个类加载器进行加载 该类加载器为默认加载器。2. 每个类加载器(应该说是类加载器的实例) 后面对应的其实是一堆class元信息 一个类加载器(应该是实例)的后面的东西,...

2019-07-07 21:04:00 624

转载 redis4.0以上版本开启bloomfilter插件的方法

原文链接 https://mrxin.github.io/2018/11/28/redis-4-0-bloom/安装redis4.0参考CentOS7 下 Redis4 安装与配置教程(Redis开机启动)安装基础依赖sudo yum install -y gcc gcc-c++ make jemalloc-devel epel-release下载最新版redis并解压到指定目录...

2019-05-21 15:33:41 3239 4

原创 位图指令

位图指令===========setbit 指令===================setbit key offset value 下标从0开始eg setbit w 1 1; 在第一位(高位) 设为1 如果返回为0 则则设置成功 返回为1 表示该位原来有值 覆盖成功getbit key offset 同时也可以执行 get key 零存整取 所以也有整存零取的操...

2019-05-20 15:02:38 353

原创 不同的线程交替打印数字 按照升序或者倒序输出

package coma.laozhao.resume;import java.util.ArrayList;import java.util.List;import java.util.concurrent.CountDownLatch;/** * 指定线程数 * 按序输出**/public class OrderNumWithNumThreadWithDESC {...

2019-05-16 19:05:07 270

原创 logstash 多索引设置

数据输入input{ tcp{ host => "127.0.0.1" port => 9100 codec => "json" }}数据过滤filter{ mutate{ lowercase=>["springAppName"] 转为小写 索引不能有大写 } ...

2019-05-05 16:29:39 3185

原创 logstash 写入elasticsearch 多索引设置

文章目录logstash的配置logback的输入设置与springCloud的整合pslogstash的配置启动命令 logstash.bat -f **.conf 配置文件数据输入input{ tcp{ host => "127.0.0.1" port => 9100 codec => "json"...

2019-04-11 19:33:12 3167 1

原创 java的执行为什么一定是从main方法开始的

这应该是一个传统,作为之后的语言,对之前的语言的一种致敬。首先按照程序运行的机制,一个程序的执行必然是由另一个更之前的程序去启动的 最原始的就到了操作系统。首先说下汇编的执行。汇编的代码 要由与操作系统配合的编译器,连接器进行处理,处理成当前操作系统可以识别的可执行文件,然后在由操作系统将这些数据读到内存中进行执行. 单是有一点,汇编的代码里面的数据也是分很多种,简单点可以分为两类数据...

2019-03-23 10:12:00 4378 3

原创 zk-leader选举 流程描述

zk的选举流程涉及很多个线程的并发控制 明确每个线程的职责后 进行流程的具体分析首先准备好环境 https://blog.csdn.net/zhaoyu_nb/article/details/88663599正式开始 其实是从makeLEStrategy().lookForLeader()方法的调用开始的 这里根据配置文件的electorArg来指定具体的选举算法,一般默认使用3 其他的都弃...

2019-03-19 16:52:50 504

原创 zk-leader选举

文章目录选举环境QuorumCnxManagerFastLeaderElection消息体的定义消息组装两个线程选举流程主要逻辑梳理选举环境QuorumCnxManagerQuorumCnxManager QuorumCnxManager.Listener QuorumCnxManager.SendWorker final ConcurrentHashMap&lt...

2019-03-19 15:30:50 374

原创 单点登录

git地址 https://github.com/zhaoyuasd/loginCenter.git总结:单点登录 主要是使用 http的重定向技术 每次登录时 会将此次的请求 转发到 登录中心,登录中心 根据携带的cookie或者其他参数 获取用户信息 如果没有 就验证用户信息, 然后生成token或者cookie 同时 返回转发的状态码 让其携带对应的参数转发到之前登录的 服务器...

2019-03-08 20:05:37 215 1

原创 Springboot - 项目的全部可配置属性及其说明

debug=false # Enable debug logs.trace=false # Enable trace logs.LOGGINGlogging.config= # Location of the logging configuration file. For instance, `classpath:logback.xml` for Logback.logging.exce...

2019-02-18 09:19:35 3434

原创 kafka源码环境搭建

我在实际操作的时候 使用下面的步骤 出了很多错 然后自己摸索了一下首先 java8 gradle 4.10.2在本地安装好可以 配置环境变量 也可以在cmd 中手动setset java_home=C:\ThsSoftware\JDK8\jdkset path=%Path%;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin ;D:\myprogram\...

2019-02-14 10:54:48 322

原创 zk的客户端发送请求

客户端的发送数据核心代码如下org.apache.zookeeper.ClientCnxn.SendThread.run()while (state.isAlive()) { try { if (!clientCnxnSocket.isConnected()) { ......

2019-02-12 14:36:44 540

原创 zookeeper请求处理流程

zk的服务端处理接入请求的时候 使用多种工厂 如果没有在配置文件中进行申明则使用默认配置 这里默认的工厂是NIOServerCnxnFactory  我们下面的分析围绕NIOServerCnxnFactory进行开展 static public ServerCnxnFactory createFactory() throws IOException { String se...

2019-02-11 11:09:56 1476

原创 zk服务端代码启动流程

以下是启动的时序图:以上两张是zk源码单机下启动的流程 下面对的每一个流程进行描述第一张图1. 在zk的启动脚本中zkServer.cmd中setlocalcall "%~dp0zkEnv.cmd"set ZOOMAIN=org.apache.zookeeper.server.quorum.QuorumPeerMainecho onecho %JAVA% "-D...

2019-02-11 10:40:54 786

原创 寄存器用途介绍

以 x 结尾的是通用寄存器: AX ,BX,CX,DX 同时在这里面 又分高8位和低8位 分别对应 AH(high) AL(low)  这些一般用来存放具体的数据 以 S(segment)段寄存器:  这些寄存器的值对应的我们所指定的定西 包括数据 执行的操作(代码)临时存储(栈)DS (data segment)   数据段CS (code segment)  代码段SS...

2019-02-09 14:21:38 837

原创 关于zookeeper数据 set与get 一致性问题

public void run() { try { while (true) { Request request = submittedRequests.take(); // 这里 使用队列来存储来自 long traceMask = ZooTrace.CLIENT_REQUEST_TRA...

2019-01-31 16:15:50 916

原创 scala-mongo-driver使用mongo的问题

一月 26, 2019 5:23:06 下午 com.mongodb.diagnostics.logging.JULLogger log 信息: Cluster created with settings {hosts=[47.105.94.110:27017], mode=SINGLE, requiredClusterType=UNKNOWN, serverSelectionTim...

2019-01-28 10:23:09 1955

原创 为什么现代系统需要新的编程模型

原文地址:https://doc.akka.io/docs/akka/current/guide/actors-motivation.html 几十年前,Carl Hewitt提出了演员模型,作为在高性能网络中处理并行处理的一种方式 - 这是当时还没有的环境。如今,硬件和基础设施能力已经赶上并超越了休伊特的愿景。因此,构建具有苛刻要求的分布式系统的组织遇到了传统的面向对象编程(OOP)模型...

2019-01-24 10:03:37 260

原创 scala求list长度

//右折叠 从最右端开始真正的计算 def foldRight[A, B](as: List[A], z: B)(f: (A, B) => B): B = as match { case Nil => z case Cons(t, h) => f(t, foldRight(h, z)(f)) case Cons(t, h) => foldLeft...

2019-01-05 10:52:59 2806

原创 java的权限控制

custom.policy 文件 grant codeBase "file:C:/Users/viruser.v-desktop/Desktop/testPolicy/*"{ //permission java.security.AllPermission; permission java.io.FilePermission "C:/Users/viruser.v-deskt...

2018-12-29 08:56:31 1268

原创 spring-gateway请求流程 源码分析

DispatcherHandlerpublic Mono<Void> handle(ServerWebExchange exchange) { if (logger.isDebugEnabled()) { ServerHttpRequest request = exchange.getRequest(); logger.debug("Processing " + r...

2018-12-13 10:51:52 1484

原创 kafka消息加密(SASL/PLAIN)

kafka消息加密(SASL/PLAIN)具体的配置方式官网已经说的很清楚了(尽量去官网看)官网配置分为以下几个步骤1、 在conf文件目录下添加文件kafka_server_jaas.conf(文件目录 文件名随意)内容如下KafkaServer { org.apache.kafka.common.security.plain.PlainLoginModule req...

2018-11-21 15:48:40 8271

原创 zookeeper服务注册中心

zookeeper服务注册中心服务配置文件spring: application: name: has-zk-app cloud: zookeeper: discovery: #register: true root: /zk-service connect-string: localhost:2181 ...

2018-11-06 14:17:25 982

原创 zk微服务数据

 

2018-11-06 13:57:07 191

原创 springboot-admin项目分析

springboot-admin-self-real项目git地址spring-admin-server-cloud通过微服务的注册中心 根据三个事件(这三个事件 是springboot框架的 要严格按照这个来写)来重注册中心 获取微服务的使用情况这个模块在使用微服务的时候要添加 这里面获取信息最主要的事件是HeartbeatEvent另外 在获取完信息后,需要进行数据信息的转换 以...

2018-11-02 10:52:50 1433

原创 webflux的一点学习感悟

首先 我想说的是 这个东西 写起来 真的很优雅 很舒服 看着也清晰  感觉代码就应该这么写其次 我想说 如果只是用于数据的展示 (不提交数据 或者只是将数据取出来 然后处理)这个用起来 是非常棒的 但是要是处理业务的话  最好还是用原生的Java代码说一下和原生的servlet的区别 我们之前用的东西(servlet) 都是将结果 处理处理好 然后 返回 一层一层的返回  就是说 在m...

2018-10-31 13:25:54 4078

原创 重放攻击的一点想法

http请求是短连接 每次有请求接入  服务器都要重新核实一遍 请求里面用户的身份信息,而这个往往是通过浏览器的cookie来实现的  目前好像这个是 各种五花八门 登录,实现b/s会话的基础  什么单点登录  ,oauth2.0都是围绕这个在做事 只是组件数量和 过滤器多少 过滤条件 多少的问题。重发攻击 说的简单点 就是把你这个请求的数据包 给抓下来 然后 在次提交一遍 (当然 这里面 肯...

2018-10-26 13:59:40 929

原创 scala 函数式编程学习笔记

sealed trait List[+A]case object Nil extends List[Nothing]case class Cons[+A](head:A,tail:List[A]) extends List[A]object List { def apply[A](as: A*): List[A] = { if (as.isEmpty) Nil ...

2018-10-23 14:33:29 161

classLoad.rar

https://blog.csdn.net/zhaoyu_nb/article/details/95026115 在java中 当你用一个类加载器 去加载一个类的时候 这个类里面所有的出现的过得类 都会通过这个类加载器加载在这个类后续 的操作中,只要是有由这个类衍生出的 那么涉及的类 都由这个类加载器进行加载 该类加载器为默认加载器。

2019-07-07

mongo-scala-drive的使用demo

基于最新的scala-mongo-driver使用scala操作mongo数据库,不是mongo-java-driver,网上很多教程都是基于java的不是mongo的,研究两天才知道咋用,一起学习哇

2019-01-28

java权限安全

java权限控制的测试代码 包含一个java类 权限文件 一个txt文件 直接下cmd下运行txt中的命令即可 需要javac一下

2018-12-29

webflux的基于zk的微服务注册 事件发布订阅处理demo

使用zk 作为注册中心 使用webflux 进行微服务的监控 当有微服务注册时 通过心跳机制 获取该微服务的信息 并使用webflux的 事件的发布订阅模式 这个是基于spring-admin的服务发现 以及消息获取 编写的demo

2018-11-01

springboot整合mongo自定义Converter 实现字符串和Date类型互转 并且查询陈宫

使用自定义了时间和字符串的转换规则 存的时候 存字符串 读取的时候 转换为日期类型 但是在按时间查找的时候 也可以使用 下载后 直接运行 Test类 修改下MongodbConfiguration的mongoUrl 写的时候将时间转为字符串 读的时候将字符串转为日期 查找的时候可以使用时间类型 Test类里面都有展示

2018-06-20

springcloud处理文件上传

使用springcloud的负载均衡 以及网关 实现文件的上传处理参看链接 https://blog.csdn.net/zhaoyu_nb/article/details/80579918

2018-06-05

httpclient使用post方法上传多个图片个其他参数的demo源码

完整的上传实例包括图片和参数配置,可以通过该样例进行扩展使用

2018-01-12

空空如也

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

TA关注的人

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