月星墙的博客

Better Code, Better Life


  • 首页

  • 分类

  • 关于

  • 归档

  • 标签

  • 站点地图

  • 搜索

Lucene

发表于 2018-03-13 | 分类于 bigdata
简介 Lucene是一个基于java开发的全文搜索框架。本文基于lucene-4.9.1(文档/API在解压文件的/lucene-4.9.1/docs目录) 倒排索引:根据属性的值来查找记录。这种索引表中的每一项都包括一个属性值和具有该属性值的各记录的地址。由于不是由记录来确定属性值,而是由属性值来确定记录的位置,因而称为倒排索引(invertedindex) lucene提供的服务实际包含两部分:一入一出。所谓入是写入,即将你提供的源(本质是字符串)写入索引或者将其从索引中删除;所谓出是读出,即向用户提供全文搜索服务,让用户可以通过关键词定位源 写入流程:源字符串首先经过analyzer分词处理。将源中需要的信息加入Document的各个Field中,并把需要索引的Field索引起来,把需要存储的Field存储起来。将索引写入存储器(内存或磁盘) 读出流程:用户提供搜索关键词,经过analyzer处理。对处理后的关键词搜索索引找出对应的Document。用户根据需要从找到的Document中提取需要的Field 企业海量数据搜索服务器架构 本地文件内容搜索实践 具体参考 smjava/lucene 相关jar包 12345lucene-core-4.9.1.jar # 核心包lucene-queries-4.9.1.jar # 检索lucene-querypar ...
阅读全文 »

Java应用CPU和内存异常分析

发表于 2018-03-13 | 分类于 devops
简介 TODO https://my.oschina.net/xionghui/blog/498785 java应用常见故障:高CPU占用、高内存占用、高I/O占用(包括磁盘I/O、网络I/O、数据库I/O等) 高CPU常见场景:死循环(如while导致的较多)、高内存导致 高内存占用也会引起高CPU占用:内存溢出后,java的GC便会运行非常频繁,从而导致高CPU(此时可能已经产生了dump文件,但是应用还能访问,只是速度较慢。临时可考虑先重启服务) 相关命令参考常用命令介绍:1-4 高内存常见场景:List集合数据量过大(常见从数据库获取大量数据,而没有进行分页获取) ^2 java.lang.OutOfMemoryError: PermGen space,原因可能为 程序启动需要加载大量的第三方jar包。例如:在一个Tomcat下部署了太多的应用 java.lang.OutOfMemoryError: Java heap space,原因可能为 Java虚拟机的堆内存设置不够,可以通过参数-Xms、-Xmx来调整 代码中创建了大量大对象,并且长时间不能被垃圾收集器收集(存在被引用) 在Java虚拟机中,内存分为三个代 新生代New:新建的对象都存放这里 老生代Old:存放从新生代New中迁移过来的生命周期较久的对象。新生代New和老生代Old共同组成了堆内存 ...
阅读全文 »

LVS

发表于 2018-03-04 | 分类于 arch
简介 LVS是Linux Virtual Server的简称,也就是Linux虚拟服务器 负载均衡解决方案主要分为硬件层面和软件层面 硬件如:F5等(一台一般15万) 软件可分为第四层和第七层协议:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层 第四层如:lvs LVS 在实现上,介于网络层(IP)和传输层(TCP)之间;只能操作ip和端口,在操作系统内核中 第七层(应用层:http/ajp/https)如:nginx、httpd(apache)、haproxy LVS 的组成包括 ipvs 和 ipvsadm ipvs(ip virtual server):一段代码工作在内核空间,叫ipvs(所有的linux都有此功能) ipvsadm:另外一段是工作在用户空间,叫ipvsadm,负责为ipvs内核框架编写规则,定义谁是集群服务,而谁是后端真实的服务器(Real Server)。安装yum install ipvsadm -y 相关术语 DS:Director Server。指的是前端负载均衡器节点 RS:Real Server。后端真实的工作服务器 VIP:向外部直接面向用户请求,作为用户请求的目标的IP地址 DIP:Director Server IP,主要用于和内部主机通讯的IP地址 RIP:Real Server IP,后端服务器的IP地址 C ...
阅读全文 »

Keepalived

发表于 2018-03-03 | 分类于 arch
简介 Keepalived是一个免费开源的,用C编写的类似于layer3, 4 & 7交换机制软件,具备我们平时说的第3层、第4层和第7层交换机的功能 主要提供loadbalancing(负载均衡)和 high-availability(高可用)功能 负载均衡实现需要依赖Linux的虚拟服务内核模块(ipvs),而高可用是通过VRRP(虚拟路由冗余协议Virtual Router Redundancy Protocol)协议实现多台机器之间的故障转移服务 安装使用 yum -y install keepalived 直接安装 或者源码安装 ^1 systemctl start keepalived 启动 (需要关闭SELinux) 启动后自动绑定虚拟ip,通过ip addr可查看绑定的虚拟ip keepalived.conf配置说明 文件位置 /etc/keepalived/keepalived.conf keepalived配置文件主要包含三块:全局定义块、VRRP实例定义块、虚拟服务器定义块(如果keepalived只用来做ha,虚拟服务器是可选的) 配置说明 ^1 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525 ...
阅读全文 »

memcached缓存数据库

发表于 2018-03-03 | 分类于 db
简介 菜鸟教程 memcached集群需要多台服务器时间一致(30s以内) 安装和使用 yum –y install memcached 安装 systemctl start memcached 启动(默认端口11211) 测试存值取值 123456789telnet localhost 11211# 设置变量abc的长度为5set abc 0 0 5# 设置abc的值为12345,长度必须和上面一致12345# 获取abc的值get abc# 退出quit 解决session一致性(session共享)参考《nginx》的【反向代理和负载均衡】部分
阅读全文 »

正则(Regex)

发表于 2017-12-26 | 分类于 lang
简介 regexr JS正则表达式测试 Java正则表达式测试 javascript正则 JS正则表达式测试 参考文章:https://juejin.cn/post/6844903487155732494 语法说明 修饰符 g 全局匹配 i 忽略大小写 m 多行匹配 匹配说明 两种模糊匹配 1234// 横向模糊匹配"abc abbc abbbc abbbbc abbbbbc abbbbbbc".match(/ab{2,5}c/g); // ["abbc", "abbbc", "abbbbc", "abbbbbc"]// 纵向模糊匹配"a0b a1b a2b a3b a4b".match(/a[123]b/g); // ["a1b", "a2b", "a3b"] 字符组 1234// [abc]表示匹配一个字符,它可以是"a"、"b"、"c"之一"abcde".match(/[abc]/g); // ["a", "b", "c"]// [^abc]表示排除字符组,除"a"、"b"、"c"之外的任意一个字符"abcde".match(/[^abc]/g); // ["d", "e"] 贪婪匹配尽可能多的匹配;惰性匹配尽可能少的匹配。惰性匹配可以基于?实现 1234567891011121314var str = "123 1234 12345 ...
阅读全文 »

基于Springboot和Vue前后分离

发表于 2017-12-25 | 分类于 arch
默认配置 后端返回数据字段驼峰(如果通过ObjectMapper字段名转成下划线,前台做好下划线命名的字段映射后传回给后台,此时后台pojo都是驼峰,导致无法转换) 前后台url都以/开头方便全局搜索 url地址和linux文件路径/和//效果是一样的;windows路径则必须是/或者\ Spring 表单操作的dto应该基于业务模式进行解耦,不要耦合到一个dto中 出错场景:使用dto(数据传输对象)接受前端数据后,并BeanUtils.copyProperties将dto复制到po(持久化对象)中,且前端有清除数据库部分字段的需求(此时dto中该字段传入的值为null,并使用mybatis生成的updateByPrimaryKey进行更新)。但是内部字段(一般不会让用户直接修改的)初始化后不应该置空。后来在修改某些需求时(如基于客户直接创建拜访),不小心简单将内部字段(创建拜访时会从客户中查询到CRM_ID并创建拜访记录)加入到dto中加入了部分其他字段导致,此时普通修改时前端并没有传入CRM_ID,导致将内部字段置空 记录数据变动日志 Mybatis 使用mybatis plus进行通用代码生成 Mybatis Generator生成通用代码 可通过自定义Mapper继承生成的Mapper。(如UserMapperExt extend UserMapper, 可防止因 ...
阅读全文 »

Java基础

发表于 2017-12-12 | 分类于 java
安装123# JDK 下载镜像网站https://repo.huaweicloud.com/java/jdk/http://www.codebaoku.com/jdk/jdk-index.html 命令 打包jar 123# 将当前目录下所有目录/文件及子目录打包成jarjar cvf demo.jar *jar cvf demo.war * 运算/控制语句 常用 12345678910// 取余int c = 10 % 3; // 1// 取整int c = 10 / 3; // 3// 精度double c = 10 / 3; // 3.0double c = (double) 10 / 3; // 3.3333333333333335// 向上取整int c = (int) Math.ceil((double) 10 / 3); // 4int c = NumberUtil.ceilDiv(10, 3); // 4 cn.hutool.core.util.NumberUtil << 左移,乘以2^x。如:3 << 4 = 3 * 2^4 = 48 >> 右移,除以2^x,被除数比除数小则为0。如:32 >> 3 = 32 / 2^3 = 4; 4 >> 3 = 4 / 2^3 = 0 goto写法 1234 ...
阅读全文 »

OFBiz源码

发表于 2017-12-09 | 分类于 java
模型模型列表 webapp 中类图 Event 调用过程 Contorl 处理过程 登录 校验登录 extensionCheckLogin view 渲染 screen 渲染 服务/任务机制模型图 服务服务调用 ServiceDispatcher getInstance(Delegator) 基于Delegator组装ServiceDispatcher实例(传入Delegator是需要考虑Tenant机制) runSync(String localName, ModelService service, Map<String, ? extends Object> context) 调用服务方法 invokeResult = engine.runSync(localName, modelService, context); 基于engine实例调用服务,如StandardJavaEngine StandardJavaEngine#serviceInvoker: result = m.invoke(null, dctx, context); dctx为服务DispatchContext对象, context为Map参数 ServiceDispatcher的创建 ServiceContainer#getLocalDispatcher(String dispa ...
阅读全文 »

OFBiz

发表于 2017-12-09 | 分类于 java
简介安装编译启动安装下载 下载:http://ofbiz.apache.org (http://www.apache.org/dyn/closer.lua/ofbiz/apache-ofbiz-13.07.02.zip) 解压:apache-ofbiz-13.07.02.zip到D:\java\apache-ofbiz-13.07.02(路径可自己更改) 使用版本apache-ofbiz-13.07.02的要求是JDK版本至少1.7以上(ofbiz已经封装好了tomcat,在framework-catalina-lib下) 启动 命令行启动 先cmd进入到命令行模式下,cd到你当前的OFBiz的工作环境(D:\java\apache-ofbiz-13.07.02),也就是你的解压环境。 然后运行 ant load-demo。第一次编译大概需要10分钟。提示”BUILD SUCCESSFUL”即表示部署成功 再运行ant start 。出现类似“finished in [1328] milliseconds”就表示启动服务器成功 访问前台http://localhost:8080/ecommerce 可设置语言为中文,现点击几个链接体验一下。 访问后台https://localhost:8443/ordermgr 提示:此网站的安全证书存在问题。点击“继续浏览此网站(不推荐)。 ...
阅读全文 »
1…8910…17
smalle

smalle

162 日志
14 分类
150 标签
RSS
欢迎关注公众号:阿壹族 欢迎关注公众号:阿壹族
© 2016 - 2024 smalle    
由 Hexo 强力驱动
主题 - NexT.Mist
站长统计
AD    
阿里云大礼包
©AEZO.CN    
圣骑科技
【One能抽屉】小程序
杂货铺(省钱小助手)