Redis内存数据库在Exchange会议室的整体应用架构
注:本文是别人写的,感觉写得很好就转过来,版权归原作者所有哦,谁知道出处可以告诉我,谢谢。
根据以上的会议室应用现状分析,该架构的核心是把历史发生的会议室申请数据定时同步到Redis内存数据库中,对于现在和未来时间的会议室数据(目前可以提前7天申请数据)则通过专用接口在Exchange会议室数据库实时查询,根据用户选择查询时间,系统自动判断访问哪个数据库或进行数据合并(历史数据与现在或未来时间的数据),通过减少访问Exchange会议室数据库以提高查询性能,从而大大改善用户体验,通过与Windows活动目录的用户的集成,为会议室分析和考核提供数据支持。
(二)关键技术简介
1、ServiceStack.Redis驱动
ServiceStack.Redis是最受欢迎的开源C#驱动之一,用于访问和读取Redis,它封装了大量方法和对象,这样使二次开发相当容易,如提供了基本KEY/VALUE键值对操作、存储对象、存储表格对象、使用客户端链接池模式提升链接速度等。
本文采用了ServiceStack.Redis进行二次开发,通过二次开发的接口把Exchange的会议室和Windows活动目录的所有在职用户数据同步Redis中,同时对于历史会议室数据提供查询接口。
2、Microsoft.Exchange.WebServices类库
Microsoft.Exchange.WebServices类库是微软官方提供的专门访问Exchange邮件服务器的API,如可以根据此类库编程实现读取会议室数据、邮件、联系人、日程等,可以根据需要进行定制开发以满足不同的应用需求。
本文主要使用此类库读取会议室的数据,并结合SystemComponent.ADHelper类库读取会议申请人和参与人的部门信息。
3、SystemComponent.ADHelper类库
SystemComponent.ADHelper类库是本人为BPM项目开发的操作windows活动目录(组织单位、组、用户)的通用类库,可以进行复用,目前在BPM项目中已有广泛应用。
本文主要使用此类库根据电子邮箱获得会议申请人和参与人的所属部门信息。
4、Quartz.NET作业框架
Quartz.NET是一个开源的作业调度框架,是OpenSymphony 的 Quartz API的.NET移植,它用C#写成,可用于winform和asp.net应用中。它提供了巨大的灵活性而不牺牲简单性。能够用它来为执行一个作业而创建简单的或复杂的调度。它有很多特征,如:数据库支持,集群,插件,支持cron-like表达式等等。
本文主要使用此作业框架进行定制开发同步程序,实现定时同步Exchange会议室数据到Redis中,并在Windows服务中运行(实现自动化作业,无需人工干预)。
Redis内存数据库在Exchange会议室的整体应用架构的更多相关文章
- Redis内存数据库在Exchange会议室的应用
本文论述了现有Exchange会议室应用现状和不足之处,并详细介绍了Redis内存数据库在Exchange会议室的应用,并给出了一种高性能的应用架构及采用关键技术和关键实现过程,最终实现大幅改进系统性 ...
- Nginx+Redis+Ehcache大型高并发高可用三层架构总结
在生产环境中,对于高并发架构,我们知道缓存 是最重要的环节,对于大量的高并发.可以采用三层缓存架构来实现,也就是Nginx+Redis+Ehcache 对于中间件Nginx常来做流量分发,同事ngin ...
- 39、生鲜电商平台-redis缓存在商品中的设计与架构
说明:Java开源生鲜电商平台-redis缓存在商品中的设计与架构. 1. 各种计数,商品维度计数和用户维度计数 说起电商,肯定离不开商品,而附带商品有各种计数(喜欢数,评论数,鉴定数,浏览数,etc ...
- 使用Redis为注册中心的Dubbo微服务架构(基于SpringBoot)
title: 使用Redis为注册中心的Dubbo微服务架构(基于SpringBoot) date: 2019-07-30 14:06:29 categories: 架构 author: mrzhou ...
- Java生鲜电商平台-redis缓存在商品中的设计与架构
Java生鲜电商平台-redis缓存在商品中的设计与架构 说明:Java开源生鲜电商平台-redis缓存在商品中的设计与架构. 1. 各种计数,商品维度计数和用户维度计数 说起电商,肯定离不开商品,而 ...
- 基于redis 内存数据库简单使用
在ecplise中使用内存数据的客端户,前提要准备要下载两个jar包 commons-pool2-2.0.jar jedis-2.4.2.jar 前提准备做好了,那我们就开启redis的服务,打开一个 ...
- Redis学习总结(1)——Redis内存数据库详细教程
1.redis是什么 2.redis的作者何许人也 3.谁在使用redis 4.学会安装redis 5.学会启动redis 6.使用redis客户端 7.redis数据结构 – 简介 8.redis数 ...
- redis内存数据库C客户端hiredis API 中文说明
A)编译安装 make make install (/usr/local) make install PREFIX=$HOME/progs(可以自由指定安装路径) B)同步的API接口 redisCo ...
- Redis内存数据库快速入门
Redis简介 Redis是一个开源(BSD许可),内存数据结构存储,用作数据库,缓存和消息代理.它支持数据结构,如 字符串,散列,列表,集合,带有范围查询的排序集,位图,超级日志,具有半径查询和流的 ...
随机推荐
- openstack网络(三)
openstack网络架构 Neutron中的基本网络元素 插件扩展功能 ML2Modular Layer 2 plugin Neutron架构图 参考资料 openstack网络架构 Neutron ...
- Java修炼——插入排列,选择排列
话不多说,直接上代码: package com.bjsxt.Array; import java.util.Arrays; public class TestSort { //选择排序 //插入排列 ...
- 基于Pact的契约测试
背景 如今,契约测试已经逐渐成为测试圈中一个炙手可热的话题,特别是在微服务大行其道的行业背景下,越来越多的团队开始关注服务之间的契约及其契约测试. 什么是契约测试 关于什么是契约测试这个问题, ...
- 布隆过滤器的demo
/** * 缓存击穿 * @author * */ @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations = ...
- 在 ASP.NET Core 中使用 AutoMapper 使 Entity 和 Resource 之间进行映射
目录 从 NuGet 安装 AutoMapper 添加 Entity类 和 Resource类 添加一个 Profile文件,配置映射关系 在Startup中对AutoMapper进行注册 在项目中使 ...
- webpack学习3.1由浅入深-打包JS
打包JS Step1:在新建的文件夹下新建一个sum.js文件,一个app.js文件 sum.js //es module export default function(a,b){ return a ...
- (Concurrent)HashMap的存储过程及原理。
1.前言 看完咕泡Jack前辈的有关hashMap的视频(非宣传,jack自带1.5倍嘴速,高效),收益良多,所以记录一下学习到的东西. 2.基础用法 源码的注释首先就介绍了哈希表是基于Map接口,所 ...
- CCF-CSP题解 201809-4 再卖菜
碎碎念..近视加老花,还以为第二天除了第二家范围在100以内别的都不确定,于是x**算的记搜复杂度超时了.还鼓捣着什么差分区间最长路,虽然有大神用差分区间做出来了,然而自己并没有看懂. 其实就是一个记 ...
- 约数之和(POJ1845 Sumdiv)
最近应老延的要求再刷<算法进阶指南>(不得不说这本书不错)...这道题花费了较长时间~(当然也因为我太弱了)所以就写个比较易懂的题解啦~ 原题链接:POJ1845 翻译版题目(其实是AcW ...
- 3、看源码MVC中的Controllr的Json方法
无论ViewResult还是JsonResult都继承ActionResult,ActionResult里只有一个方法ExecuteResult 1.Controllr的Json方法 实际上是new ...