在 mono 下使用微软的 OWIN 认证中间件 使用 Microsoft.Owin.Security 中间件作为 OWIN 应用的标准验证在 IIS 下面工作良好, 不过最近在将 WebAPI 应用迁移到...Linux + Mono 的环境时, 发现这个中间件不能运行, 在启动时会抛出下面的异常: ?...win32 函数实现, 因此,不能直接在非 windows 环境下运行。...不过, Microsoft.Owin.Security 中预留了扩展接口 IDataProtectionProvider , 可以实现自定义的 IDataProtector, Mono 内置了 AesManaged..., 使用自己实现的 AesDataProtectionProvider 就非常简单了, 只要在 UseCookieAuthentication 之前加上一句 UseAesDataProtectionProvider
这篇文章记录的是在CentOS 6.3下安装《OpenPetra 以及CentOS Mono 3.0 部署包》提到的 Mono 3.0.6 部署包。...可以使用下面的命令查看rpm包是否可以重定位,也就是安装到另一个目录 [azureuser@mono local]$ rpm -qpi mono-openpetra-3.0.6-1.x86_64.rpm...的路径,然后运行Mono就可以了。.../jws regsvr 访问 http://mono.cloudapp.net/ 可以了,登陆的时候发生了异常 System.DllNotFoundException /opt/mono-openpetra.../opt/mono-openpetra/etc/mono/config 里头的dllmap 映射到正确的地址就可以了 <dllmap dll="gdiplus" target="/usr/
慢慢的,整个知乎上便是充满了一些戾气,开始了无尽的网络暴力。 于是,我想分享一下之前使用这些 MV* 框架的经验。...在一些复杂的情况下,还会有 SubListPageView 这样的情况。 如我们所知,JavaScript 并不是一门完整面向对象语言。...一般的情形下,当两端的业务是一致的,那么必然有大量 Angular.js 的 services 和 factory可以复用,甚至是共用模块。...为什么 Angular 在选型里失去优势? 在 Angular 1.x 到 Angular 2.x 这段期间里,有大量的技术人员因为奥斯本效应而选择了其他框架。...奥斯本效应,在IT业界有一个比较出名的“奥斯本效应”(Osborne Effect),源于电脑先驱亚当·奥斯本。
应用 rocket-mq有四个概念 consumer producer name-server broker 如果我要建一个队列,需要建立一个topic,topic支持group,group下支持两种模式...集群就是所有的Consumer合起来消费一份全部消息,广播所有consumer都消费一份全部消息 name-server存储了所有broker的状态,存储消息到内存里面 broker控制消息的写入文件和内存队列
由于mono3.0开始,.NET4是以.NET4.5为默认环境,所以,当服务器升级到mono3后,原来的ASP.NET4网站会出现问题,比如“System.ArgumentNullException”的错误等...为了能让原来的ASP.NET4网站在mono3(asp.net4.5)环境中正常运行,需作如下处理: 一、关于web.config: 1、把 节中,System.Web.WebPages...,的Version的值从1.0.0.0改为2.0.0.0,同样,Views中的Web.config文件“configSections”一节中Version是1.0.0.0的值,都需要改为2.0.0.0。...2、把 节中的 uiCulture的值改为"en-US",culture的值可以设为"zh-CN"。...二、关于ASP.NET4的类库的处理 由于mono3已经含有兼容asp.net4的4.5类库,所以,网站bin文件夹原有的asp.net4/mvc3/razor的类库不能再用,需要把它们全部删除
前言 今天跟大家分享一个在实际软件开发过程中,很有用的一个设计原则即KISS原则(Keep It Simple, Stupid)。...主要想跟大家分享一下其核心理念,重点介绍一下我是怎么利用它来设计软件项目的,以此来降低软件开发的整体复杂性,降低出错率,并使得系统更加易于理解和维护。...(其他细节这里就过多展开了) 刚有提到,这次新的协同工单需求功能,和以往的工单功能有很多相似性,如果单从这个角度出发,那是不是代表可以照搬照抄,以往的一系列方案呢,比如Mysql分库分表、ES存储查询等等...主要都是内部客服人员在界面手动提交产生,它不像外部工单,有超多外部来源➕内部界面提交产生。 所以在这样的背景下,如果用以往的工单方案来做设计,明显不适合,架构显得太过重且复杂。...简单的给大家阐述了其语义,重点跟大家介绍了一下,在实际的软件开发过程中,我是怎么利用它,来指导软件架构设计,以此来降低软件开发的复杂度,做到快速交付需求。
对于不熟悉数据可视化领域的人来说,最好的方法是尝试一些现成的解决方案来快速制作标准化的图表。对于拥有更多技术专长、经验丰富的用户,最好的办法是使用更灵活的库。...D3 是如此的受欢迎,以至于有许多其它的库在 D3 的基础上被创造出来,为人们提供更多“开箱即用”的解决方案,如 NVD3。...事实上,就像 D3 一样,有许多其它的库在 Raphael 的基础上被创造出来,其中最受欢迎的是 morris.js。 ? 4....所有的图形都以 HTML5 的形式呈现,默认情况下是响应式的,可进行交互。它是一个非常轻量化的库,其压缩版本大小只有 11kb。 ? 8....它允许您处理密集、紧凑和高容量的数据,并会自动调整缩放比例和时间戳。它还提供互动性(包括移动设备),即在无需额外设置的情况下就可以拖动、缩放图形。Dygraphs 是一个非常快速和高度可定制的库。 ?
2、使用git commit -m “说明” ;完成提交到分支 *查看工作区状态,使用git status 命令;如果提示有修改可使用git diff filename 查看修改内容...的版本 *回退版本之后如果想再看改回来,可以使用git reflog 查看历史命令,找出想改回的版本号,再使用git reset hard commit_id 返回即可。...*分支: 1、创建分支 git checkout -b branchname 创建并切换到改分区,相当于一下两个命令: git branch branchname ...使用git push origin branchname 推送自己的修改 2、如果推送失败,因为远程分支比本地更新,先使用git pull 合并 3、如果合并有冲突,解决冲突,在本地提交...branch --set -upstream branch origin/branchname *在本地创建与远程对应的分支:git branch -b branchname origin/
在springboot下操作rabbitMQ。 1.pom文件配置 pom文件配置如下: <!...concurrency: 5 #消费端最小并发数 max-concurrency: 10 #消费端最大并发数 prefetch: 5 # 一次请求中预处理的消息数量...} catch (IOException e) { log.error("RabbitMQ,IO异常,异常原因为:{}", e.getMessage()); } } } 4.测试 上述代码在springboot...45.515 INFO 14692 --- [ntContainer#0-4] com.dhb.rabbitmq.demo.Consumer : 消费者获取消息内容:testmsg 在RabbitMQ...的后台界面,队列queue的绑定关系如下:
的网络有三种模式 1、较为常用是端口映射,就是将虚拟机中的端口映射到宿主机对应的端口直接使用 ,在Vagrantfile中配置: config.vm.network :forwarded_port, guest...开启这个后,如果vagrant已经启动了,在命令行输入 vagrant reload 重启机器,就可以再宿主机伤使用 localhost:8080来访问虚拟机的localhost:80 。...2、如果需要自己自由的访问虚拟机,但是别人不需要访问虚拟机,可以使用private_network,并为虚拟机设置IP ,在Vagrantfile中配置: config.vm.network :private_network...默认情况下,当前的工作目录,会被映射到虚拟机的 /vagrant 目录,当前目录下的文件可以直接在 /vagrant 下进行访问,当然也可以在通过 ln 创建软连接,如 ln -fs /vagrant/...中的配置都不会保留) vagrant reload (重启) ==============补充===================== 在本地使用vagrant up命令是不能正常启动,(未知原因
第一个是增加对比度的函数,就是变亮。...,并传出指向这条链表表头的指针。...51 //第二个参数表示指向轮廓链表的指针。 52 //第三个参数和第四个参数表示颜色,绘制时会根据轮廓的层次来交替使用这二种颜色。...55 //第六个参数表示轮廓线的宽度,如果为CV_FILLED则会填充轮廓内部。 56 //第七个参数表示轮廓线的类型。...可以说是大家来找茬的外挂代码。
自上次发表了 Grunt:初次使用及前端构建经验 后,前端同学 cobish 对笔者说,grunt 不太好用,现在我们项目中已经不用了,现在用 glup。什么?那你赶紧给笔者我介绍一下。...cobish 抠着鼻屎对我说,你去看我的笔记就好啦!好吧,看完后,笔者又整理了一篇关于我们在项目中,使用 glup 的前端文章分享给大家。...Grunt 与 gulp 编译同一套 sass 代码下所花费的时间: 并不是说 Grunt 就比 gulp 不好,也有 gulp 办不到 Grunt 办得到的事情。...在使用了 Grunt 的一段时间后,我发现了 gulp 的运行速度比 Grunt 快很多,于是便从 Grunt 转移阵地到了 gulp。以下的构建思路跟 Grunt 的构建很类似。...,唯一不同的是它在执行后会监听某个端口,一旦有文件改动它会帮你自动刷新浏览器,帮你省下了按 F5 的力气。
lombok是一款可以精减java代码、提升开发人员生产效率的辅助工具,利用注解在编译期自动生成setter/getter/toString()/constructor之类的代码。...代码越少,意味着出bug的可能性越低。 官网地址:https://projectlombok.org/ 首页有一段几分钟的演示视频,看完就明白是怎么回事了。...,各种注解的详细用法,请参考:https://projectlombok.org/features/index.html IDEA下使用时,可以通过插件的形式安装,插件下载地址:https://github.com...选择下载的zip包安装,重启idea即可。 另外,还有一个关键设置: ?...为了让设置生效,建议再重启一次idea,然后就可以开心的编码了,可以ide里可以直接看到生成的方法:(下图中打红圈的都是自动生成的) ?
最近有个业务数据变更的需求,要将1个已生成的500w记录写回到另一个表里面。 这里的需求比较简单,可以通过pt-archiver来做,也通过kettle之类工具来做。...kettle的话比较重,可支持的数据整型功能也更强大。...我这里是用kettle来搞的(复习下kettle,弄个demo,指不定后面有更复杂的业数据需求要找DBA介入) 配置JDBC连接的时候,建议加上字符集设定等几个参数: defaultFetchSize...文件的时候,建议使用相对路径: 写法 ${Internal.Job.Filename.Directory}/xxxx.ktr kettle自定义JVM内存大小: vim spoon.sh 找到下面...if [ -z "$PENTAHO_DI_JAVA_OPTIONS" ]; then PENTAHO_DI_JAVA_OPTIONS="-Xms2048m -Xmx2048m" fi job命令行下的启动
对于linux运维工作者而言,使用ssh远程远程服务器是再熟悉不过的了!对于ssh的一些严格设置也关系到服务器的安全维护,今天在此,就本人工作中使用ssh的经验而言,做一些总结记录来下。...)中 对于非22端口(比如22222)情况下的ssh-copy-id的使用,需要这样用: ssh-copy-id -i /root/.ssh/id_rsa.pub '-p 22222 root@192.168.18.18...如果显示空白,表示没有设置, 等于使用默认值0, 一般情况下应该是不超时....需要特别注意的是: GSSAPI是公共安全事务应用程序接口(GSS-API) 公共安全事务应用程序接口以一种统一的模式为使用者提供安全事务,由于它支持最基本的机制和技术,所以保证不同的应用环境下的可移植性...但是在特定情况下,严格的 SSH 公钥检查会破坏一些依赖SSH协议的自动化任务,就需要一种手段能够绕过SSH的公钥检查。 SSH连接远程主机时,会检查主机的公钥。
具体victoriametrics的功能和使用,我这里就不介绍了,官方文档上很全面的。 这里说下我的拓扑和架构。...prometheus的部署使用kube-prometheus的 operator方式部署。 victoriametrics的部署使用sts方式部署。...prometheus的数据通过remote_write方式写到victoriametrics里面,victoriametrics的压缩比较高,可以轻松存储数月的历史数据。...victoriametrics在我们这是作为历史数据存储用,非核心的监控数据库。 victoriametrics全套的技术栈组件也很多,引入太多,人力不足。... storage: 300Gi storageClassName: alicloud-nas-prometheus volumeMode: Filesystem 几个apply下,
Atomikos是一个轻量级的分布式事务管理器,实现了Java Transaction API (JTA)规范,可以很方便的和Spring Boot集成,支持微服务场景下跨节点的全局事务。...三个服务需要加入到一个全局事务中,要么全部成功,任何一个服务失败,都会造成事务回滚,数据的状态始终保持一致性。 蚂蚁金服开源的Seata就是为了解决这类问题,在微服务架构下提供分布式事务服务。...传统的应用服务器通过JTA/JTS也能解决分布式场景下的事务问题,但需要和EJB绑定在一起才能使用。...:StorageService的具体实现 business-service:用户访问入口 事务上下文的传播 在项目主工程的pom文件中引入Atomikos依赖,注意要包括transactions-remoting...version>5.0.6 transactions-remoting支持jaxrs,Spring Remoting和Spring rest等几种RPC方式,我们使用的是
Hazelcast是一款由Hazelcast开发的基于jvm环境的为各种应用提供分布式集群服务的分布式缓存解决方案。可以嵌入到java、c++、.net等开发的产品中使用。...,在Hazelcast中创建了一个map之后,在节点A通过put方法添加数据,在节点B就能通过get方法获得该数据。...是一个非常好用的分布式缓存。 本文介绍在springboot环境中,如何使用hazelcast。 1.pom配置 需要导入的包: 在springboot的web环境中来使用的话,spring-boot-starter-cache是必须的。...这样就实现了要给简单的hazel的使用demo。
https://hadoop.apache.org/releases.html图片解压后配置相关环境图片系统变量新增HADOOP_HOME图片Path配置图片四、winutils安装windows环境下还需要装个东西来替换掉...hadoop里的bin文件才行图片下载地址:https://github.com/steveloughran/winutils使用了和hadoop相近的版本,测试没问题直接复制替换图片再次测试:spark-shell...图片五、pyspark使用# 包的安装pip install pyspark -i https://pypi.doubanio.com/simple/pyspark测试使用from pyspark import...local[K]: 指定使用几个线程来运行计算,比如local[4]就是运行4个worker线程。...通常我们的cpu有几个core,就指定几个线程,最大化利用cpu的计算能力local[*]: 这种模式直接帮你按照cpu最多cores来设置线程数了。'''
最近开始使用git对kohana3的文档做一些补充的工作,使用了git 和 github ,从了解到使用,还是有一点距离,下面是总结的一些方法。...1、Git的安装 我使用了ubuntu 10.04 ,默认情况下,ubuntu 中并没有安装,所以首先需要在系统中进行 git 的安装。...使用命令:ssh-keygen -C 'you email address@gmail.com' -t rsa 会在用户目录 ~/.ssh/ 下建立相应的密钥文件 可以使用 ssh -v git@github.com...管理自己的项目 这种情况是自己在本地有一些代码,需要利用 github 来管理自己的项目,可以按照下面的步骤进行。 1、建立仓库 在需要建立项目的文件夹中,使用 git init 进行仓库的建立。... # 若想知道目前工作树的状态,可以輸入 git status 参考资料: 1、Git与Github在Windows环境下的使用指南 2、使用GIT管理源代码 3、git/github使用小记
领取专属 10元无门槛券
手把手带您无忧上云