我尝试了一些有关ruby on rails的openid利用率的搜索.但是,虽然出现了一组选项,例如omniauth,authlogic等,但这些gem通常用于构建接受openid身份验证的站点.换句话说,它们适用于开放式消费者设置.
我也想建立自己的openid服务器. 正如在OpenId网站上所建议的那样,我发现像Masquerade和local-openid这样的东西,不幸的是,它们不是非常活跃的项目,下载量非常少.
是否有任何其他设施可用于构建自有的openid提供程序服务器?
非常感谢 !!
干杯,
叶
我正在尝试MongoDB的性能来比较我当前基于MySQL的解决方案。
在具有三个属性A,B和C的集合/表X中,我在MongoDB和MySQL中都为属性A编制了索引。
现在,我在MongoDB和MySQL中投入了1M数据,并在这种简单的情况下尝试了搜索性能。
MongoDB上的插入速度仅比插入MySQL快10%。但这没关系,我知道采用MongoDB不会带来我的CRUD的神奇提升,但是我真的对在没有索引的MongoDB中进行搜索感到惊讶。
结果表明,MongoDB在非索引字段上的选择比在索引字段上的选择慢十倍。
另一方面,非索引字段上的MySQL选择(MyISAM)仅比索引字段上的选择慢70%。
最后但并非最不重要的一点是,在选择索引方案中,MongoDB比我的MySQL解决方案快30%。
我想知道,上述数字正常吗?特别是MongoDB的性能选择没有索引?
我的代码如下:
BasicDBObject query = new BasicDBObject("A", value_of_field_A);
DBCursor cursor = currentCollection.find(query);
while(cursor.hasNext()) {
DBObject obj = cursor.next();
// do nothing after that, only for testing purpose
}
Run Code Online (Sandbox Code Playgroud)
顺便说一句,从业务逻辑的角度来看,我的收藏可能真的很大(TB甚至更多),您对每个物理收藏的大小有何建议?1000万个文档还是10亿个文档?
非常感谢!
------------------------------编辑------------------- -----------
我在MongoDB和MySQL上都尝试了1000万条记录的插入,而MongoDB的行为比MySQL快20%-确实不如我想的那样。
我很好奇,如果我设置了MongoDB自动分片,是否会提高插入速度?如果是这样,我是否需要将碎片放在不同的物理机器上,或者可以将它们放在具有多核的同一台机器上?
------------------------------更新------------------- -----------
首先,我将MongoDB的写关注从ACKNOWLEDGED修改为UNACKNOWLEDGED,然后MongoDB的插入速度提高了3倍。
后来,我并行制作了插入程序(使用8核计算机的8线程),对于MongoDB ACKNOWLEDGED模式,插入也进行了3倍的改进,对于UNACKNOWLEDGED模式,速度实际上降低了50%。
对于MySQL,并行插入模式将速度提高了5倍!这比MongoDB最好的插入盒快!
我知道Spring MVC可以轻松返回Json格式的模型; 但是,我尝试了很多不同的方法来返回CSV格式的模型(通过杰克逊),但无法成功.
我该怎么办?
我附上我的模型代码,控制器代码和gradle.build,如下所示:
非常感谢!
模型:
@JsonPropertyOrder({ "staffName", "name" })
public class Greeter
{
String name;
String staffName[];
public String getName()
{
return name;
}
public void setName(String name)
{
this.name = name;
}
public String[] getStaffName()
{
return staffName;
}
public void setStaffName(String[] staffName)
{
this.staffName = staffName;
}
}
Run Code Online (Sandbox Code Playgroud)
控制器:
@Controller
public class GreetingController {
@RequestMapping(value = "/greeter/json", method = RequestMethod.GET)
public @ResponseBody
Greeter getGreeterInJSON() {
Greeter greeter = new Greeter();
greeter.setName("default");
greeter.setStaffName(new String[] { "ye", "lichi" …Run Code Online (Sandbox Code Playgroud) 我想在我的角度控制器中实现下面的谷歌样本.
https://developers.google.com/maps/documentation/javascript/examples/map-simple
<html>
<head>
<title>Simple Map</title>
<meta name="viewport" content="initial-scale=1.0">
<meta charset="utf-8">
<style>
html, body {
height: 100%;
margin: 0;
padding: 0;
}
#map {
height: 100%;
}
</style>
</head>
<body>
<div id="map"></div>
<script>
var map;
function initMap() {
map = new google.maps.Map(document.getElementById('map'), {
center: {lat: -34.397, lng: 150.644},
zoom: 8
});
}
</script>
<script src="https://maps.googleapis.com/maps/api/js?callback=initMap"
async defer></script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
其中google map api的加载需要在窗口范围内跟踪initMap.
我应该怎样做角度控制器?以下代码不起作用:
angular.module('testApp')
.controller('MainCtrl', function ($scope, $window) {
$window.map;
$window.initMap = function() {
$window.map = new google.maps.Map(document.getElementById('map'), {
center: …Run Code Online (Sandbox Code Playgroud) 我想允许普通用户杀死由 root 用户启动的某个应用程序。
在视觉上:
我添加了这样的一行:
normal_user ALL=(ALL) NOPASSWD: /usr/bin/kill $(ps aux | grep 'target_application' | awk '{print $2}')
Run Code Online (Sandbox Code Playgroud)
但是在保存并以normal_user身份执行以下命令后,我仍然收到输入root密码的提示:
sudo /usr/bin/kill $(ps aux | grep 'target_application' | awk '{print $2}')
Run Code Online (Sandbox Code Playgroud)
那我该怎么办?非常感谢!
我准备了以下SQL语句来比较MyISAM、InnoDB和TokuDB的性能行为(INSERT执行100000次):
MyISAM:
CREATE TABLE `testtable_myisam` (`id` bigint(20) NOT NULL AUTO_INCREMENT, `value1` INT DEFAULT NULL, `value2` INT DEFAULT NULL, PRIMARY KEY (`id`), KEY `index1` (`value1`)) ENGINE=MyISAM DEFAULT CHARSET=utf8;
INSERT INTO `testtable_myisam` (`value1`, `value2`) VALUES (FLOOR(RAND() * 1000), FLOOR(RAND() * 1000));
Run Code Online (Sandbox Code Playgroud)
索引数据库:
CREATE TABLE `testtable_innodb` (`id` bigint(20) NOT NULL AUTO_INCREMENT, `value1` INT DEFAULT NULL, `value2` INT DEFAULT NULL, PRIMARY KEY (`id`), KEY `index1` (`value1`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;
INSERT INTO `testtable_innodb` (`value1`, `value2`) VALUES (FLOOR(RAND() * 1000), FLOOR(RAND() * 1000));
Run Code Online (Sandbox Code Playgroud)
德库数据库:
CREATE TABLE …Run Code Online (Sandbox Code Playgroud) 我正在运行一个包含两列的表A:datetime和value.表A是一个巨大的数据库,里面有数千万个数据.
在我的SQL语句中(在mysql dialet中),我想
1)获取最新值(最新日期时间的值)
2)获取时间范围内的值
我目前的解决方案
1)
SELECT value
FROM A
WHERE datetime = (
SELECT MAX(datetime)
FROM A
ORDER BY datetime
);
Run Code Online (Sandbox Code Playgroud)
2)
SELECT value
FROM A
WHERE datetime IN (
SELECT datetime
FROM A
WHERE datetime > start_time AND datetime < finish_time
);
Run Code Online (Sandbox Code Playgroud)
但是,我怀疑这是一个优化的解决方案,因为内部的SELECT.
是否有更好的方法来实现更好的性能?
非常感谢!