[置顶]站内通知

Elasticsearch必知必会的干货知识二:ES索引操作技巧

该系列上一篇文章《Elasticsearch必知必会的干货知识一:ES索引文档的CRUD》 讲了如何进行index的增删改查,本篇则侧重讲解说明如何对index进行创建、更改、迁移、查询配置信息等。 仅创建索引:PUT index PUT /index 添加字段设置(mappings):PUT index/_mapping/type,如:(properties下均为索引字段) PUT /index/_mapping/_doc { "properties": { "email": { "type": "keyword" } } } 添加索引设置(settings):PUT /index/_settings,如: PUT /index/_settings { "number_of_shards":"

详情...

Elasticsearch必知必会的干货知识一:ES索引文档的CRUD

ES索引文档的CRUD(6.X与7.X有区别,6.X中支持一个index创建多个type,而7.X中及以上只支持1个固定的type,即:_doc,API用法上也稍有不同): Create创建索引文档【POST index/type/id可选,如果index、type、id已存在则重建索引文档(先删除后创建索引文档,与Put index/type/id 原理相同),如果在指定id情况下需要限制自动更新,则可以使用:index/type/id?op_type=create 或 index/type/id/_create,指明操作类型为创建,这样当存在的记录的情况下会报错】 POST demo_users/_doc 或 demo_users/_doc/2vJKsm8BriJODA6s9GbQ/_create Request Body: { "userId":1, "username":"张三", "role&quo

详情...

近期在博客园发表的JAVA语言相关的原创系列文章汇总目录

JAVA WEB快速入门原创系列文章:(例序排列) JAVA WEB快速入门之从编写一个基于SpringBoot+Mybatis快速创建的REST API项目了解SpringBoot、SpringMVC REST API、Mybatis等相关知识 梦在旅途 2019-02-13 14:22 JAVA WEB快速入门之从编写一个基于SpringMVC框架的网站了解Maven、SpringMVC、SpringJDBC 梦在旅途 2019-01-03 16:37 JAVA WEB快速入门之通过一个简单的Spring项目了解Spring的核心(AOP、IOC) 梦在旅途 2018-11-29 19:11 JAVA WEB快速入门之从编写一个JSP WEB网站了解JSP WEB网站的基本结构、调试、部署 梦在旅途 2018-11-12 19:39 JAVA WEB快速入门之环境搭建 梦在旅途 2018-11-08 23:32   玩转Spring Cloud原创系列文章:(例

详情...

通过SQL语句快速生成一个C#的类

通过SQL语句快速生成一个C#的类,生成完成后直接COPY到cs文件中,然后格式化一下即可,若有无法识别的类型则默认为变成UNKOWN,手工调整一下即可。

详情...

winfrom无边框四周阴影

说明:非原创,转自网络,以备用 public partial class Form1 : Form { [DllImport("Gdi32.dll", EntryPoint = "CreateRoundRectRgn")] private static extern IntPtr CreateRoundRectRgn ( int nLeftRect, // x-coordinate of upper-left corner int nTopRect, // y-coordinate of upper-left corner int nRightRect, // x-coordinate of lower-right corner int nBottomRect, // y-coordinate of lower-right corner int nWidthEllipse, // height of ellipse in

详情...

自定义winform样式(阴影、窗体移动、圆角)

基于winform无边框窗体实现,具体步骤如下,摘自网络 一、窗体移动: [DllImport("user32.dll")] public static extern bool ReleaseCapture(); [DllImport("user32.dll")] public static extern bool SendMessage(IntPtr hwnd, int wMsg, int wParam, int IParam); public const int WM_SYSCOMMAND = 0x0112; public const int SC_MOVE = 0xF010; public const int HTCAPTION = 0x0002; [DllImport("user32")] private static extern int SendMessage(IntPtr hwn

详情...

近期开发项目中用到的编码小技巧汇总说明(二)

之前有总结发表过《近期开发项目中用到的编码小技巧汇总说明》,虽没有涉及什么高大上的东西,但都是一些很实用的平时大家可能用到的知识,今天继续分享一些小技巧,欢迎大家了解,不足之处,可以直接评论留言谢谢! 接上篇序号 6.解决当同一个类在不同的项目中(命名空间不同,但类的定义完全相同的情况)使用BinaryFormatter进行序列化后再反序列化时出现找不到程序集的问题或反序列化的结果为null 原代码:(DataSetSurrogate分别在API项目中,客户端项目中都存在,类定义一样但由于不在同一个项目,即使命名空间改成一样仍然是会报错的) public static DataSet GZipBytesToDataSet(byte[] data) { byte[] buffer2 = data; BinaryFormatter ser = new BinaryFormatter(); var ms = new MemoryStream(buffer2);

详情...

基于Dapper二次封装了一个易用的ORM工具类:SqlDapperUtil

基于Dapper二次封装了一个易用的ORM工具类:SqlDapperUtil,把日常能用到的各种CRUD都进行了简化封装,让普通程序员只需关注业务即可,因为非常简单,故直接贴源代码,大家若需使用可以直接复制到项目中,该SqlDapperUtil已广泛用于公司项目中。 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Dapper; using System.Data; using System.Data.Common; using System.Reflection; using System.IO; using System.Collections.Concurrent; using System.Data.SqlClient; namespace Zuowj.Common { /// <summary> /// 基于Dapper的数据操作类封装的工具

详情...

站内通知

温馨提示:

1.由于近期本网站遭遇到外部恶意评论,恶意注水,导致垃圾评论数暴增,故暂时禁用评论功能;

2.本站近期将全新改版,从底层框架到页面设置全部重新设计开发,以提供性能及用户体验度,同时还会考虑开源本站新博客网站的源代码,敬请期待,谢谢。

2018-9-12

详情...

关于跨DB增量(增、改)同步两张表的数据小技巧

有些场景下,需要隔离不同的DB,彼此DB之间不能互相访问,但实际的业务场景又需要从A DB访问B DB的情形,这时怎么办?我认为有如下常规的三种方案: 1.双方提供RESET API,需要访问不同DB数据时,可以通过API来获取指定数据; 这种方案优点是隔离性、定制性强,统一出入口,只能通过指定的API访问指定的数据;缺点与优点是对立的,也就是定制性太强,导致每次业务发生变更,需要访问不同数据的时候,需要双方更改API的入参或返参,降低了开发效率;而且无法使用表JOIN,这样在某些情况下也会导致查询数据效率变低。目前主流的方案都是建议使用API方案 2.利用DB的同步技术(如:SQL SERVER的订阅复制、MYSQL的主从复制脚本等)来实现不同DB的数据同步共享 这种方案优点是可以在同一个DB访问到另一个DB中所需表的数据,可以直接JOIN,把原来的跨DB访问变成了同一个DB的事情;缺点是依赖DB的同步技术,而且两台DB服务器的网络必需互通,没有完全的隔离,且往往同步过来的表不允许直接修改,或需修改仍然需要跨DB修改或使用方案1的API来进行修改。 3.通过程

详情...

重复造轮子,编写一个轻量级的异步写日志的实用工具类(LogAsyncWriter)

一说到写日志,大家可能推荐一堆的开源日志框架,如:Log4Net、NLog,这些日志框架确实也不错,比较强大也比较灵活,但也正因为又强大又灵活,导致我们使用他们时需要引用一些DLL,同时还要学习各种用法及配置文件,这对于有些小工具、小程序、小网站来说,有点“杀鸡焉俺用牛刀”的感觉,而且如果对这些日志框架不了解,可能输出来的日志性能或效果未毕是与自己所想的,鉴于这几个原因,我自己重复造轮子,编写了一个轻量级的异步写日志的实用工具类(LogAsyncWriter),这个类还是比较简单的,实现思路也很简单,就是把消息日志先入内存队列,然后由异步监听线程从队列中取出日志并批量输出到本地文件中,同时参照各大日志框架,对单个文件过大采取分割生成多个日志文件。 经测试发现性能非常不错,先看示例使用代码:(采取并发多线程同时写入1000000万条日志)   Task.Factory.StartNew(() => { DateTime startTime = DateTime.Now;

详情...

基于RabbitMQ.Client组件实现RabbitMQ可复用的 ConnectionPool(连接池)

一、本文产生原由:    之前文章《总结消息队列RabbitMQ的基本用法》已对RabbitMQ的安装、用法都做了详细说明,而本文主要是针对在高并发且单次从RabbitMQ中消费消息时,出现了连接数不足、连接响应较慢、RabbitMQ服务器崩溃等各种性能问题的解方案,之所以会出现我列举的这些问题,究基根源,其实是TCP连接创建与断开太过频繁所致,这与我们使用ADO.NET来访问常规的关系型DB(如:SQL SERVER、MYSQL)有所不同,在访问DB时,我们一般都建议大家使用using包裹,目的是每次创建完DB连接,使用完成后自动释放连接,避免不必要的连接数及资源占用。可能有人会问,为何访问DB,可以每次创建再断开连接,都没有问题,而同样访问MQ(本文所指的MQ均是RabbitMQ),每次创建再断开连接,如果在高并发且创建与断开频率高的时候,会出现性能问题呢?其实如果了解了DB的连接创建与断开以及MQ的连接创建与断开原理就知道其中的区别了。这里我简要说明一下,DB连接与MQ连接 其实底层都是基于TCP连接,创建TCP连接肯定是有资源消耗的,是非常昂贵的,原则上尽可能少的去创

详情...

关于站长

  • 姓名:左文俊
  • 职责:负责项目业务接洽与调研、需求分析、数据库建模、系统设计、开发、调试、上线、培训等所有流程;
  • 技术领域:网站设计与开发(前端:JS,JQuery,CSS,HTML;后端:ASP.NET,MVC,Web Service,WCF等),客户端应用程序设计与开发(WinForm,WPF);数据库(MS SQL,ORACLE,ACCESS);
  • 研究领域:分布式开发,移动端网站、APP开发,大数据、高并发解决方案,NOSQL,WF等前沿技术;