自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

zr的博客

欢迎交流

  • 博客(66)
  • 收藏
  • 关注

原创 eventMesh 本地搭建记录

(作为整体了解 可以先看看架构)按照官方文档需要搭建服务。

2023-05-05 18:48:15 760

原创 RocketMQ消费打点监控

背景 :最近我们再用RocketMq 做消息消费 总结一下消费监控打点问题rmq 消费监控 我们需要关注 发送了多少消息 ,然后 消费了多少 ,还有失败重试了多少次 (需要加报警)这几个点, 去整体的看一个消费者的消费情况消费lag 的情况1,消息发送如果是自己是发送方最好自己在发送的时候上报打点2.消息消费消费入口上报3.消息失败代码里tryCatch catch 里打点 并且要返回LATER返回LATER 消息会重试4.消息lag一些业务时..

2022-04-27 21:47:25 617

原创 服务之间通信 用 RPC 还是 MQ

服务之间通信用什么比较好呢?先简单说一下RPC 和 MQ 是什么RPC 远程过程调用 简单说明就是 一个进程提供服务 给另一个服务像调用本地方法一样调用. 如何像本地方法一样调用呢 ?rpc 框架会屏蔽底层逻辑 比如消息通信, 数据序列化和反序列化,服务注册发现等逻辑。网上找的一张图 说明rpc 调用过程MQ消息队列生产者 发送消息到 mq 服务端,服务端保存消息记录 消费者从MQ获取消息一张图大致看下:MQ和 RPC 虽然都是属...

2021-09-05 20:51:22 407

原创 mysql innobd 下count(*) count(1) count(id) 执行情况

首先说明是在 mysql innodb 下比较count(*) count(1) count(id) 三种类型的区别创建表CREATE TABLE `t_user` (`id` bigint(20) NOT NULL AUTO_INCREMENT,`name` varchar(255) DEFAULT NULL,`age` tinyint(4) DEFAULT NULL,`create_time` datetime DEFAULT NULL,`up...

2021-08-16 14:53:30 125

原创 python 迭代器和生成器,序列化和反序列化

#列表生成式a = [i*2 for i in range(10)]print(a) #[0, 2, 4, 6, 8, 10, 12, 14, 16, 18]#生成器 generator 节省空间 不会立刻生成列表 只有在用的时候才会生成b = (i * 2 for i in range(10))print(b) #<generator object <genexpr...

2019-01-01 17:42:11 436

原创 python 装饰者模式

装饰者模式'''装饰器:本身就是第一个函数作用: 装饰其他函数,为其他函数提供附加功能原则:不能修改被装饰的函数的源代码,不能修改被装饰的函数的调用方式 装饰器对装饰的函数是完全透明的,对调用方也是不可知的实现装饰器的知识储备1.函数即"变量"2.高阶函数3.嵌套函数高阶函数+嵌套函数=>装饰器'''import timedef timer(func):...

2018-12-30 20:48:55 350

原创 安装redis 中遇到的问题

首先 解压 tar zxvf redis-4.0.6.tar.gz 然后make 编译c++的时候报错了 找解决办法 需要进行安装gccyum install -y gcc g++ gcc-c++ make  但是 gcc也编译报错yum clean allyum makecache在这个过程中 yum makecache 也是报错 最后 这种错误,是因为没有配...

2018-12-16 22:30:05 134

原创 python set 集合,文件操作,函数以及函数的参数

集合set# -*- coding:utf-8 -*-# Author:Jone#集合 无序不可重复list1 = [2,1,4,6,4,5]list1 = set(list1)print(list1)#定义set的两种方式#list2=set([2,2,5,6])list2 = {2,2,5,6,7}print(list2)#取交集print(list1.inter...

2018-12-16 22:27:27 431

原创 python list 列表 ,string 字符串 ,dict字典

list 类型 names = ["123","324"]names.append("123")names.append("1243123")icount = names.count("123")print(icount)print(names)print(names[:])#对list的浅拷贝print(names[0:-1:2])print(names[::2])pri...

2018-12-15 18:31:04 180

原创 python 第一天

环境安装window环境1.下载官方的包2. 配置环境变量 helloworld 程序first.py 内容如下print("hello world")执行方式python first.py second.py 内容如下#!/usr/bin/env pythonprint("hello world")执行方式 ./second.py ...

2018-12-12 23:09:18 185

原创 vm下设置桥接模式连接物理机

1.修改虚拟就网络配置    改为桥接模式2.查看自己物理机的ip,子网掩码 网关 在虚拟几下 修改网络配置的文件vi /etc/sysconfig/network-scripts/ifcfg-eth0最后重启 网络服务 service network restart...

2018-05-13 11:21:11 1104

原创 intellij 下 使用maven +mybatis的generator 生成代码的配置

1.首先 在maven的pom文件中 添加插件<!-- mybatis generator 自动生成代码插件 --><plugin> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-maven-plugin</artifact...

2018-05-02 22:39:35 222

原创 并发和并行有什么区别?

1.并行是在同一时刻执行多个事件,并发是在同一事件段内执行多个事件2.并行发生在不同的实体上,并发发生在同一个实体上。并发编程可以充分的利用cpu的,达到最高的处理性能那为什么并发就能充分利用cpu的执行能力首先执行多个任务如果是串行执行那么cpu一定会存在等待一个任务执行完去执行下一个任务但是如果是并发开启多个线程去分别执行不同的任务的时候,这个时候便可以充分的利用cpu,多个线程进行切换去抢占...

2018-03-13 22:20:23 5825

原创 Collections.synchronizedMap(new HashMap())的问题

Map m = Collections.synchronizedMap(new HashMap()); Set s = m.keySet();  // Needn't be in synchronized block synchronized(m) {  // Synchronizing on m, not s!     Iterator i = s.iterator(); // Must be

2018-01-17 22:15:19 2120

原创 js 运算的字符串 判断运算是否合法

var str="21/3+6*6*(5-8)";try{alert(eval("str="+str));}catch(err){alert("表达式错误")}

2017-12-05 10:30:38 2913

转载 ssm 配置多数据源

原文链接:http://blog.csdn.net/q908555281/article/details/50316137总体大概流程:1. 拷贝所需jar2.写一个数据库切换的工具类:DataSourceContextHolder,用来切换数据库3.写一个DynamicDataSource类来继承AbstractRoutingDataSource,并重写det

2017-11-09 10:42:49 552

原创 idea 使用

找不见  创建package  和 class右键点击项目 打开open Modeles settings 把选中src目录 然后点击Sources

2017-11-09 10:22:56 151

原创 java多线程核心技术 第五章 定时器Timer

实现指定时间执行任务实现按指定周期执行任务Timer 主要作用是设置计划任务,但封装任务的类却是TimerTask方法 schedule(TimerTask task,Date time) 在指定的日期执行一次某一任务。 计划时间晚于当前 按照计划时间执行,计划时间早于当前那么立即执行在new一个Timer 的时候如果不设置为守护线程那么这个线程调度类Timer 将会一直执行

2017-10-31 19:04:04 173

原创 java 多线程核心技术 第四章 lock的使用

1.使用ReentrantLock类jdk1.5 新加 ReentrantLock 比synchronized更加灵活lock.lock 获得对象锁lock.unlock释放锁lock 中实现wait notify 的功能 需要借助Condition对象Condition 也是jdk1.5 出现的 可以实现多路通知 也就是在一个lock对象中可以创建多个conditio

2017-10-30 22:51:11 188

原创 java多线程核心技术 第三章线程间通信

1.等待通知机制wait/notify如果有多个线程等待的时候 notify会随机挑出一个wait状态的线程发出notify通知,并使它等待获取该对象的对象锁。 注意:在执行notify方法后,当前线程不会马上释放该对象锁,呈wait状态的线程并不能马上获取该对象锁,要等到执行notify方法的线程将程序执行完,也就是退出synchronized代码块后,当前线程才会释放锁,而呈wait状

2017-10-28 23:05:03 169

原创 jquery html() text() val() 区别

Hello fine Thank you! alert($("p").html());//获取的是p下的第一个html元素 alert($("p").text());//获取的是p的所有的文本值 alert($("p").val());// 必须是有value属性的才能获取

2017-10-24 18:58:06 137

原创 java 多线程核心技术第二章笔记

1.synchronized 同步方法注意点:方法内部的变量是不会存在线程安全的问题的实例变量 也就是成员变量吧 才会出现线程安全的问题两个线程访问同一个对象中的实例变量可能会出现非线程安全的问题。要防止这个问题的发生可以在方法上加同步synchronized关键字 对这个方法加锁。这样的话一个线程持有这把同步锁那么其他线程在执行这个方法的时候就会等待。注意:java中

2017-10-23 21:43:30 143

原创 java多线程编程核心技术第一章笔记

1.实现线程的两种方式继承Thread类实现Runnable接口在源码总其实Thread 是继承Runnable接口的启动线程调用的是线程的start方法,并不是run方法如果调用run方法,只是和普通的方法调用时一样的并没有启动一个线程另外start方法 调用 不代表线程的执行顺序,只是表明线程处于就绪状态随时都可以执行两种方式的对比使用继

2017-10-19 22:18:08 158

原创 端口号和PID互相查询

1.查看系统下所允许的所有端口情况sudo netstat -antup在sudo的权限下查看 不然会有部门进程看不到2.用PID查询端口号sudo netstat -antup | grep PID3.用进程名查询PIDsudo ps -ef |grep 进程名

2017-10-11 14:55:59 5588

原创 String源码总结

1.indexof 方法 if (fromIndex >= sourceCount) {return (targetCount == 0 ? sourceCount : -1);}if (fromIndex fromIndex = 0;}if (targetCount == 0) {return fromIndex;}char first =

2017-10-10 21:36:02 189

原创 process

创建 Process的方法1.Runtime.getRuntime().exec()2.ProcessBuilder的start方法,这个方法是调用了java.long包中的ProcessImpl类中的start()方法 这个类的修饰符是默认的 只能在本包中访问Process 中的 waitFor() 等进程执行完 才会向后执行 是一个阻塞的方法

2017-10-10 21:35:02 126

原创 java 中的四种引用

public class YyPractice { public static void main(String[] args) { // 强引用 不会被回收 User u = new User(); // 软引用 内存紧张的时候会被回收 SoftReference sr = new SoftReference(new User()); // 弱引用 不管内存是否足够 系统

2017-09-28 21:52:26 158

原创 jdk1.7 try-with-resource

import java.io.BufferedReader;import java.io.FileInputStream;import java.io.InputStreamReader;public class AutoCloseblePractice {public static void main(String[] args) {try ( A a = new A

2017-09-25 22:59:54 144

原创 找出字符串中连续的子字符

public class StringUtil {public static String[] lxString(String str) {char[] chars = str.toCharArray();List list = new ArrayList();for (int i = 0; i System.out.println(i);int a = chars[i +

2017-09-24 22:03:57 781

原创 springmvc学习3 ContextLoaderListener 初始化webApplicationContext

在web.xml 中会配置一个listener监听器 这个监听器是来初始化webApplicationContext  当tomcat启动的时候会首先进入到这个监听器中 contextInitialized方法 调用了父类ContextLoader 中的initWebApplicationContext 方法看看这个方法都干了什么public WebApplicationC

2017-09-20 22:03:20 241

原创 ServletContextListener

在Servlet API中有一个ServletContextListener接口,它能够监听ServletContext对象的生命周期,实际上就是监听Web应用的生命周期。当Servlet容器启动或终止Web应用时,会触发ServletContextEvent事件,该事件由ServletContextListener 来处理。在 ServletContextListener 接口中定义了处理S

2017-09-19 21:23:19 240

原创 springmvc学习2 dispatcherservlet 中初始化策略

2017-09-18 22:35:20 285

原创 httpservlet 中的两个service方法

1.public void service(ServletRequest req, ServletResponse res)2.protected void service(HttpServletRequest req, HttpServletResponse resp)void service这个方法 是tomcat 中请求调用  在这个方法内部在调用 protected void se

2017-09-18 21:56:11 3417

原创 PostConstruct 注解 配合 spring注解使用

在springmvc 中 配置加载缓存需求:缓存的初始化是要在web项目启动的时候加载的,用PostConstruct注解配合 被注解的方法的这个类也要被spring管理 因为 PostConstruct这个注解的方法会在 类的构造器执行完成后调用 所以需要spring管理这个类 那样就会在spring容器启动的时候PostConstruct注解的方法

2017-09-15 14:54:24 538

原创 springmvc 学习1 springmvc的入口

学习springmvc 首先了解springmvc大致都有什么Springmvc 的几大模块 1. dispatcherServlet 2.handlermapping 3。controller 4.model 5modelandview 6.view首先看dispatcherservlet 他是一个前端控制器  配置springmvc框架的时候 要在web.xml 中配置

2017-09-14 21:46:54 7783

原创 css 中 强制不换行和超出省略

text-overflow:ellipsis;white-space:nowrap;在文本框比较短的时候 这两个可以配合使用

2017-09-08 18:00:43 400

原创 linux 下 的tail 命令

tail 的作用是查看文件 tail -n filename 查看文件中末尾的n行 不加参数 默认 10行 在使用 tail 命令的一个突出特性 允许在其他进程使用该文件时 查看文件的内容,tail 命令会保持活动状态,并不断显示添加到文件中的内容 ,这个是监测系统日志的方式。但是使用 ubuntu过程 中 tail -f 命令 没有更新到文件末尾的内容

2017-09-07 21:38:00 10833

原创 spring+springmvc+mybatis 中 对静态资源的拦截

首先 web.xml 的配置 是           SpringMVC          org.springframework.web.servlet.DispatcherServlet                       contextConfigLocation              classpath:spring-mvc.xml       

2017-09-06 14:43:41 478

原创 js实现复制到剪切板

1.代码  function click1() {var name = document.getElementById("name");name.select();document.execCommand("Copy");alert("已复制好,可贴粘。");}2.

2017-09-04 21:40:51 276

原创 servlet 回顾

servlet 是一个继承了 HttpServlet的类

2017-09-03 13:39:11 177

空空如也

空空如也

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

TA关注的人

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