- 博客(37)
- 资源 (7)
- 收藏
- 关注
原创 RabbitMQ之生产端(Producer)消息的确认模式(confirm)-Demo
消息的确认模式Confirm DemoDemo以topic为例:引入依赖(版本自选):<!-- https://mvnrepository.com/artifact/com.rabbitmq/amqp-client --><dependency> <groupId>com.rabbitmq</groupId> <artifactI...
2019-04-25 22:51:01
1200
原创 RabbitMQ快速入门Java Demo
RabbitMQ快速入门Demo快速入门Demodirect:fanout快速入门Demo引入依赖(版本自选):<!-- https://mvnrepository.com/artifact/com.rabbitmq/amqp-client --><dependency> <groupId>com.rabbitmq</groupId> &...
2019-04-25 20:14:09
1970
原创 如何进行消息队列的技术选型
- 大纲1、为什么使用消息队列2、消息队列有什么优点和缺点3、kafka、activemq、rabbitmq、rocketmq都有什么优点和缺点1、为什么使用消息队列先说一下消息队列的常见使用场景吧,其实场景有很多,但是比较核心的有3个:解耦、异步、削峰解耦: A系统发送个数据到BCD三个系统,接口调用发送,那如果E系统也要这个数据呢?那如果D系统现在不需要了呢?现...
2019-03-20 10:22:03
326
原创 基于flume+kafka+logstash+es的分布式日志系统
本文将从以下几点讲解的分布式日志系统1.日志埋点2.日志收集3.日志处理分析4.日志查询展示 先看一下日志数据流程图:flume监听日志文件收集每行日志发到kafka,logstash消费kafka中的消息将日志解析成json插入到es,es提供日志查询1.日志埋点由于我们项目结构是网关+dubbo服务实例的分布式系统,埋点主要在http的网关和rpc的服务...
2018-07-23 15:53:29
3974
2
原创 MongoDB Connector For BI配置使用
MongoDB Connector For BI 允许你以关系型数据库连接mongodb,供BI分析之类的工具读取分析数据,它并不存储数据,仅仅只做为一个数据库查询的转换桥梁新版本的mongo-bi从原来的4个组件减少到了2个组件:mongodrdl 生成 DRDL文件, 用于映射collection的表结构 mongosqld 实际的转换器,启动时至少需要一个DRDL文件(或者指定DR...
2018-07-23 15:48:58
7716
原创 mongodb常用配置及维护
配置: 常用配置如下: 配置示例 net: port: 27017 ##监听端口 systemLog: destination: file path: "mongod.log" ##日志文件存放位置 logAppend: true ##追加模式写日志 storage: engin...
2018-07-23 15:47:23
978
原创 mongodb使用方面的一些建议
所有查询写入尽量都带上一个超时时间 大量写入时,使用批量接口 建索引尽量指定为后台执行 索引建得太多,对写入性能会有一定影响,所以建索引时,以能覆盖大部分数据的几个公共字段为准。确实有需要再加上一些没有覆盖到的字段再建一个新索引。 访问副本集时,确保 MongoDB URI 里包含副本集中的所有机器以实现负载均衡及高可用。 在访问分片集群时,请...
2018-07-23 15:46:47
207
原创 mongodb分片搭建
首先下载安装程序 官方下载地址搭建configserver 由于configserver的重要性,强烈推荐由至少3台机器组成configserver副本集 解压并创建配置文件,并复制到3台机器上 配置文件中增加 配置文件 sharding: clusterRole: configsvr 启动所有实例,并登录其中一台机器,运行mongo程序(如果需...
2018-07-23 15:46:12
254
原创 mongodb分片
mongodb分片共有四个组件:mongos、config server、shard、replica set mongos,数据库集群请求的入口,所有的请求都通过mongos进行协调,不需要在应用程序添加一个路由选择器,mongos自己就是一个请求分发中心,它负责把对应的数据请求请求转发到对应的shard服务器上。在生产环境通常有多mongos作为请求的入口,防止其中一个挂掉所有的m...
2018-07-23 15:45:14
162
原创 为MongoDB添加身份验证
MongoDB 默认没有开户身份验证,除非不开放外网访问,否则这种模式极不安全,现纪录添加身份验证步骤如下: 配置创建用户的时候,需要关闭:#security:##副本集之间通信用到的认证文件# keyFile: /home/soft/mongodb-linux-x86_64-rhel62-3.4.2-shard2/mongo-key# clusterAuthMode: "key...
2018-07-23 15:44:29
1594
原创 副本集的搭建
MongoDB 副本集(Replica Set)是有自动故障恢复功能的主从集群,有一个Primary节点和一个或多个Secondary节点组成。副本集的工作模式如下图: 副本集中数据同步过程: Primary节点写入数据,Secondary通过读取Primary的oplog得到复制信息,开始复制数据并且将复制信息写入到自己的oplog。如果某个操作失败,则备份节点停止...
2018-07-23 15:43:44
305
原创 Redis哨兵架构的相关基础知识的讲解
1、哨兵的介绍sentinal,中文名是哨兵哨兵是redis集群架构中非常重要的一个组件,主要功能如下(1)集群监控,负责监控redis master和slave进程是否正常工作(2)消息通知,如果某个redis实例有故障,那么哨兵负责发送消息作为报警通知给管理员(3)故障转移,如果master node挂掉了,会自动转移到slave node上(4)配置中心,
2017-11-20 17:53:06
495
原创 在项目中部署redis企业级数据备份方案以及各种踩坑的数据恢复容灾演练
企业级的数据备份和各种灾难下的数据恢复,是怎么做得呢?1、企业级的持久化的配置策略在企业中,RDB的生成策略,用默认的也差不多save 60 10000:如果你希望尽可能确保说,RDB最多丢1分钟的数据,那么尽量就是每隔1分钟都生成一个快照,低峰期,数据量很少,也没必要10000->生成RDB,1000->RDB,这个根据你自己的应用和业务的数据量,你自己去决定
2017-11-10 13:36:20
481
原创 分析redis的RDB和AOF两种持久化机制的工作原理
课程大纲1、RDB和AOF两种持久化机制的介绍2、RDB持久化机制的优点3、RDB持久化机制的缺点4、AOF持久化机制的优点5、AOF持久化机制的缺点6、RDB和AOF到底该如何选择我们已经知道对于一个企业级的redis架构来说,持久化是不可减少的企业级redis集群架构:海量数据、高并发、高可用持久化主要是做灾难恢复,数据恢复,也可以归类到高可
2017-11-06 14:24:16
1765
原创 单机版redis的安装以及redis生产环境启动方案
大纲1、安装单机版redis2、redis的生产环境启动方案3、redis cli的使用 ------------------------------------------------------------------------1、安装单机版redis大家可以自己去官网下载,当然也可以用课程提供的压缩包wget http://downloads
2017-11-03 14:13:57
343
原创 在CentOS中都安装Java和Perl(一)
(1)安装JDK 1、将jdk-7u60-linux-i586.rpm通过WinSCP上传到虚拟机中2、安装JDK:rpm -ivh jdk-7u65-linux-i586.rpm3、配置jdk相关的环境变量vi ~/.bashrcexport JAVA_HOME=/usr/java/latestexport PATH=$PATH:$JAVA_HOME/binsource
2017-11-01 14:59:53
495
原创 处理一个字符串多个分隔符
在之前的项目需求中,遇到一个字符串一种字符标识为1种类型。 如字符串: a#aa|b#bb$c#aaa。。。这种其中#号一组的有:[a,aa,bb,aaa]分组为$有:[c]分组|的有:[b].......里面规则是:第一个符号前面没有标识符则列入后面的分组,后面字符串没有标识符则列入前面标识分组,其余中间部分按前面标识符分组如(前无):a 前面没有
2016-05-21 22:51:52
3228
原创 java解析xml文件,返回xml字符串
public static String toStringFromDoc(Document document) { String result = null; if (document != null) { StringWriter strWtr = new StringWriter(); StreamResult strResult = new StreamResult(s
2016-05-04 14:59:29
3778
原创 Android仿微信/支付宝的方块密码输入框
在用到支付类或者验证类app时,都有一个简密的输入框。百度了下有个不错的帖子 点击打开链接 不过自己也写了个简单的类似的。不废话了。没图说个席八。懒得运行,直接截layout.xml的效果图先。布局文件<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
2015-10-30 18:30:56
4379
1
转载 MAC OS X10.10上Android开发环境搭建
转载:http://blog.csdn.net/yanzi1225627/article/details/42040629
2015-09-10 21:59:06
526
原创 Java高级个人笔记(可变参数的使用)
Java1.5增加了新特性:可变参数。适用于参数个数不确定,类型确定的情况,java把可变参数当做数组处理。注意:可变参数必须位于最后一项。当可变参数个数多余一个时,必将有一个不是最后一项,所以只支持有一个可变参数。因为参数个数不定,所以当其后边还有相同类型参数时,java无法区分传入的参数属于前一个可变参数还是后边的参数,所以只能让可变参数位于最后一项/** * 可变参数的使用
2015-07-16 16:12:08
474
原创 Java高级个人笔记(java常用集合总结)
1、线程安全线程安全就是说多线程访问同一代码,不会产生不确定的结果。2、List类和Set类List类和Set类是Collection集合接口的子接口。Set子接口:无序,不允许重复。List子接口:有序,可以有重复元素。Set和List对比:Set:检索元素效率低下,删除和插入效率高,插入和删除不会引起元素位置改变。List:和数组类似,List可以动态增长,查找元素效率高,
2015-07-16 15:54:50
621
原创 Java高级个人笔记(NumberUtils、ArrayUtils和RandomUtils工具类用法)
一、NumberUtils工具类/*1.NumberUtils.isNumber():判断字符串是否是数字*/NumberUtils.isNumber("5.96");//结果是trueNumberUtils.isNumber("s5");//结果是falseNumberUtils.isNumber("0000000000596");//结果是true/*2.NumberUtils.i
2015-07-16 15:33:54
1794
原创 Java高级个人笔记(StringUtils工具类用法)
/*1.字符串以prefix开始*/StringUtils.startsWith("sssdf","");//结果是:trueStringUtils.startsWith("sssdf","");//结果是:trueStringUtils.startsWith("sssdf","s");//结果是:trueStringUtils.startsWith("sssdf","ss");//结果是
2015-07-16 15:27:19
1616
原创 Java高级个人笔记(判断List、Map、Set是否为空及效率比较)
//如果object为null,则设置为defaultValueObjectUtils.defaultIfNull(object, defaultValue);//判断集合是否为nullList list=new ArrayList();System.out.println(list.isEmpty()); //trueSystem.out.println(list.size());
2015-07-08 17:52:46
27474
6
原创 Java高级个人笔记(RandomStringUtils工具类)
//产生5位长度的随机字符串,中文环境下是乱码RandomStringUtils.random(5);//使用指定的字符生成5位长度的随机字符串RandomStringUtils.random(5, new char[]{'a','b','c','d','e','f', '1', '2', '3'});//生成指定长度的字母和数字的随机组合字符串RandomStringUtils.r
2015-07-08 17:50:47
12459
原创 Web Service学习笔记(二)[web service的三大技术基础]
web service的三大技术基础 1、WSDL -— Web Service接口 1、 types(标准的Schenma) 2、 2N个message(input和output)
2015-05-12 02:17:32
703
原创 Web Service学习笔记(一)[web service的本质]
调用一次 web service 的本质:客户端把调用方法的参数,转换成xml文档片段(SOAP消息,input消息) —— —— 该文档片段必须符合WSDL定义的格式通过网络、把XML文档片段传给服务端服务端收到XML文档片段服务端解析XML文档片段,提取其中的数据。并把数据转换调用web service所需要的参数值。服务端执行方法把执行方法得到的返回值,再次转换生成xml文档
2015-05-11 00:08:24
571
原创 Java使用jxl导出Excel表格源码
/** * 导出Excel * * @param list * :结果集合 * @param filePath * :指定的路径名 * @param out * :输出流对象 通过response.getOutputStream()传入 * @param mapFields *
2014-09-02 09:41:44
669
原创 java使用jxl导入Excel
/** * 读取商家列表xls文件 * @param filePath-xls文件路径 * @return 商家的List集合 */ public static List readData(String filePath) { // 用来存储商家 List list = new ArrayList(); try { File file = new File(
2014-08-29 10:59:58
643
转载 Myeclipse10运行web程序时报java.lang.OutOfMemoryError: PermGen space时比较靠谱的解决方法
网上百度一下,很多文章都介绍说是改myeclipse.ini文件中的-Xms128m -Xmx512m -XX:PermSize=128m -XX:MaxPermSize=128m,感觉这些人都是网上抄袭,人云亦云,实际上是解决不了问题的。 比较靠谱解决方案为:Window->Preferences->Myeclipse->Services->Tomcat->Tomcat
2014-08-28 22:30:48
659
原创 作为一个程序员,我是怎样月薪3W的
我对计算机也比较感兴趣,于是大学就报了软件工程专业。 大家都知道软件行业很辛苦,需要学很多东西,而且需要不停的去学习,因为新的技术发展的太快。于是,我认真听课,其实最重要的是要理论和实践结合,于是我就经常泡在机房里做实验。干程序员这一行,首先必须得精通编程语言,C++,JAVA,C#我都有涉猎,Ruby这样的脚本我也尝试过。数据结构这门课也很重要,各种算法、结构必须了然於胸。我平时也比较
2014-08-27 20:37:04
3223
5
翻译 设计模式六大原则
单一职责原则(Single Responsibility Principle)定义:不要存在多于一个导致类变更的原因。通俗的说,即一个类只负责一项职责。问题由来:类T负责两个不同的职责:职责P1,职责P2。当由于职责P1需求发生改变而需要修改类T时,有可能会导致原本运行正常的职责P2功能发生故障。解决方案:遵循单一职责原则。分别建立两个类T1、T2,使T1完成职责P1功能,T2完成职责
2014-06-04 10:29:26
539
原创 SSH整合中电脑有网络正常运行,断网后运行就报错了。
第一次发帖,我把错误发来严重: Exception occurred during processing request: nulljava.lang.reflect.InvocationTargetExceptionat sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.Na
2014-01-03 22:20:14
911
1
Java工程师之道-电子书-PDF
2018-08-15
单机版redis的安装以及redis生产环境启动方案中相应文件
2017-11-03
Libgdx初级盲点:异步加载资源
2015-03-20
Tomcat启动报错 bin\tcnative-1.dll
2013-12-21
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人